UI 自动化测试实战(二)| 测试数据的数据驱动

【摘要】数据驱动就是通过数据的改变驱动自动化测试的执行,最终引起测试结果的改变。简单来说,就是参数化在自动化测试中的应用。测试过程中使用数据驱动的优势主要体现在以下几点:1.提高代码复用率,相同的测试逻辑只需编写一条测试用例,就可以被多条测试数据复用,提高了测试代码的复用率,同时提高了测试代码的编写效率。2.异常排查效率高,测试框架依据测试数据,每条数据生成一条测试用例,...


数据驱动就是通过数据的改变驱动自动化测试的执行,最终引起测试结果的改变。简单来说,就是参数化在自动化测试中的应用。
测试过程中使用数据驱动的优势主要体现在以下几点:
1.提高代码复用率,相同的测试逻辑只需编写一条测试用例,就可以被多条测试数据复用,提高了测试代码的复用率,同时提高了测试代码的编写效率。
2.异常排查效率高,测试框架依据测试数据,每条数据生成一条测试用例,用例执行过程相互隔离。如果其中一条失败,不会影响其他的测试用例。
3.代码可维护性高,清晰的测试框架利于其他测试工程师阅读,提高代码的可维护性。
数据量小的测试用例可以使用代码的参数化来实现数据驱动,数据量大的情况下建议大家使用一种结构化的文件(例如 YAML,JSON 等)来对数据进行存储,然后在测试用例中读取这些数据。
Pytest 提供了 @pytest.mark.parametrize 装饰器来进行参数化,可以使用参数化来实现数据驱动。代码如下:
上面的代码首先使用 @pytest.mark.parametrize 装饰器,传递了两组数据,测试结果显示有两条测试用例被执行,而不是一条测试用例。也就是 Pytest 会将两组测试数据自动生成两个对应的测试用例并执行,生成两条测试结果。
当测试数据量大的情况下,可以考虑把数据存储在结构化的文件中。从文件中读取出代码中所需要格式的数据,传递到测试方法中执行。这里推荐大家使用 YAML 类型的文件来存储测试数据。YAML 使用动态字段进行结构化,它以数据为中心,比 Excel、CSV、JSON、XML 等更适合做数据驱动。
下面,我们将上面参数化的两组数据存储到 YAML 文件中,创建一个 data/searchdata.yml 文件,代码如下:
上面的代码定义了一个 yaml 格式的数据文件 searchdata.yml ,文件中定义了一个列表,列表中有两组数据,最后生成的是这样的数据格式:[[“alibaba”, “BABA”, 200],[“JD”, “JD”, 20]] 。
下一步将测试用例中参数化的数据改造成从 searchdata.yml 文件中读取,代码如下:
上面的代码,只需要使用 yaml.safe_load() 方法,就来读取 searchdata.yml 文件中的数据,分别传入到用例 test_search() 方法中完成数据的输入与结果的验证。而如果使用 Excel、CSV 文件格式进行数据的存储,需要先从 Excel 文件中读取数据,再解析成需要的格式。而使用 YAML 则完全省去了这个过程。
以上,关于其他环节的数据驱动,在后续章节分享。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/351892.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

python数据可视化--matplotlib库

目录 python数据可视化--matplotlib库0、前言1、饼图2、直方图3、折线图4、散点图5、柱状图6、箱线图7、极坐标图8、步阶图9、谱图10、功率密度图11、相干谱图 python数据可视化–matplotlib库 0、前言 在进行数据分析的过程中,正所谓“一图胜千言”,一…

【文生图系列】 Stable Diffusion v1复现教程

文章目录 Stable Diffusion v1环境配置权重下载txt2imgbug超参数 Diffusers 参考 Stable Diffusion v1 stable diffusion是一个潜在的文本到图像的扩散模型,能够在给定任何文本输入的情况下生成照片逼真的图像。 环境配置 https://github.com/CompVis/stable-diff…

excel相同内容单元格数值等于固定值怎么做?

如下表,让该表格所有“苹果”内容的单价都等于D3的20元,怎么批量操作? 可以使用Excel的条件格式功能来实现该需求,具体步骤如下: 1. 选中表格中所有的“苹果”单元格,可以使用鼠标拖动或者按住Ctrl键单击选…

奇门遁甲

奇门遁甲应用 一:奇门总要 奇门是中国古代的一种兵学,分为高层应用和中低层应用,高层应用主要用在战争,低层主要是民用预测、风水选择等等。当然这是和当时所处时代是分不开的,奇门在预测方面属于阴性预测学的一种。奇…

程序猿的创业故事:一个游走于计算机编程、高中数学、高中物理、爱好木工的全栈工程师,转行做高中教学的亲生经历!

这个故事有点长 上帝视觉:“转行穷三年,不转穷一生!” 我的视觉:“我命由我不由天!这个哲理仅仅是正态分布下的一个理论,我是不会服从正态分布的。” 问题1:转不转,为什么转&#…

【Linux初阶】基础IO - 简易 shell添加重定向功能

🌟hello,各位读者大大们你们好呀🌟 🍭🍭系列专栏:【Linux初阶】 ✒️✒️本篇内容:shell重定向功能的代码实现 🚢🚢作者简介:计算机海洋的新进船长一枚&#…

惊人的磁场定律:你是谁,就会遇见谁

作者:洞见ADC 生命里的磁场无法被看见,但它却在改变我们的人生。 点我 物理学上存在万有引力定律,即自然界任何两个物体,都是存在相互吸引的。 人与人之间,也不例外。 朗达拜恩在《力量》中写道: “每个人身…

基于RPC协议的接口自动化测试可以用Python语言实现

基于RPC协议的接口自动化测试可以用Python语言实现。下面是实现步骤: 1、安装依赖库,如protobuf、grpc。 2、编写.proto文件定义接口参数和返回值。 3、使用protoc编译.proto文件生成Python代码。 4、编写客户端代码调用远程接口进行测试。 具体实现…

【软件测试】cookie、session和token的区别

今天就来说说session、cookie、token这三者之间的关系!最近这仨玩意搞得头有点大 为什么会有它们三个 我们都知道 HTTP 协议是无状态的,所谓的无状态就是客户端每次想要与服务端通信,都必须重新与服务端链接,意味着请求一次客户…

阿宝的成长记录

宝宝需要减肥了,翻身有点困难!

阿宝的生日礼物

阿宝的生日蛋糕很好吃,很难的事情,在任何时候,都会有自己的判断和想法。

图片主色调提取

本文主要阐述用传统图像处理的手段来解决RGB图的颜色量化问题; 简单解释下颜色量化,一张RGB图,图上每个像素点分别有R、G、B三个分量,每个分量由一个字节表示,那么颜色空间大小是256^3。显然人眼观测的时候&#xff0…

如何获得完美的调色板?完美的配色素材专辑拿走!

第1步--原色和系统色 从一个主色开始,根据喜好、研究颜色含义来确定。 选择的主色是品牌色。 一旦有了主色,就需要文字、背景、容器等的颜色。 通常情况下,会选择一个深色的颜色,用于文本,而背景则是浅灰色的颜色。…

Seaborn的调色板(palette)

Seaborn的调色板(palette) Seaborn可以很容易地使用适合数据特征和可视化目标的颜色。本章讨论了指导您选择的一般原则和帮助您快速找到给定应用程序的最佳解决方案的seaborn工具。 由于我们眼睛的工作方式,一种特定的颜色可以用三个成分来定…

图片色调识别

图片色调识别 色调定义色调提取方法中位切分法RGB与色调 色调定义 (1) 暖色调温暖与热烈是暖色的基调。当人们见到红、橙、黄、红紫等暖色调后,比较容易联想到太阳、火焰、热血等事物,会有温暖、欢乐、刺激等感觉。按照给人温暖感觉的强度有高到低排序:…

Haishoku识别图片主色调和配色方案

对于图片分析,一直觉得很高大上,从来不动这方面。今天翻看python weekly,发现一个很有趣的库-Haishoku。 简介 haishoku 是一个日语词, 意思是配色. Haishoku 是一个用来获取图片主色调和主要配色方案的python库,依赖于python3和…

半色调技术

这个主要是为了对付作业,对各处找到的资料缝缝补补的整合,因为比较杂乱,已经忘记是在哪儿看到大佬们的文章了,整理一下思路。 背景 半色调图像如常见的印刷品图像,其由浅到深或由淡到浓的变化,是靠网点面…

DaVinci:调色版本

调色版本 Grade Version记录着片段的全部调色信息。 将一种调色风格或效果,保存为一个调色版本,从而可在多个调色版本之间查看、比较、挑选或者渲染输出。 调色版本类型 本地版本 Local Versions 在没有创建新的调色版本之前,片段的调色信息默…

seaborn库调色板color设置【知识整理】

seaborn库的使用(color设置) 综述代码模块调色板分类色板(离散)颜色的亮度及饱和度颜色对比xkcd选取颜色连续色板(连续)cubehelix_palette调色板RGB值选取颜色 小结 综述 学生党整理一些关于数据分析的知识…