搜索

欧宝体育娱乐平台:UI 自动化测试实战(二) 测试数据的数据驱动

发表时间: 2022-05-01 02:33:12 来源:欧宝体育首页APP 作者:欧宝体育app客户端


  数据驱动就是通过数据的改变驱动自动化测试的执行,最终引起测试结果的改变。简单来说,就是

  提高代码复用率,相同的测试逻辑只需编写一条测试用例,就可以被多条测试数据复用,提高了测试代码的复用率,同时提高了测试代码的编写效率。

  异常排查效率高,测试框架依据测试数据,每条数据生成一条测试用例,用例执行过程相互隔离。如果其中一条失败,不会影响其他的测试用例。

  代码可维护性高,清晰的测试框架利于其他测试工程师阅读,提高代码的可维护性。

  数据量小的测试用例可以使用代码的参数化来实现数据驱动,数据量大的情况下建议大家使用一种结构化的文件(例如 YAML,JSON 等)来对数据进行存储,然后在测试用例中读取这些数据。

  上面的代码首先使用 @pytest.mark.parametrize 装饰器,传递了两组数据,测试结果显示有两条测试用例被执行,而不是一条测试用例。也就是 Pytest 会将两组测试数据自动生成两个对应的测试用例并执行,生成两条测试结果。

  当测试数据量大的情况下,可以考虑把数据存储在结构化的文件中。从文件中读取出代码中所需要格式的数据,传递到测试方法中执行。这里推荐大家使用 YAML 类型的文件来存储测试数据。YAML 使用动态字段进行结构化,它以数据为中心,比 Excel、CSV、JSON、XML 等更适合做数据驱动。

  下面,我们将上面参数化的两组数据存储到 YAML 文件中,创建一个 data/searchdata.yml 文件,代码如下:

  下一步将测试用例中参数化的数据改造成从 searchdata.yml 文件中读取,代码如下:

  上面的代码,只需要使用 yaml.safe_load() 方法,就来读取 searchdata.yml 文件中的数据,分别传入到用例 test_search() 方法中完成数据的输入与结果的验证。而如果使用 Excel、CSV 文件格式进行数据的存储,需要先从 Excel 文件中读取数据,再解析成需要的格式。而使用 YAML 则完全省去了这个过程。

  - UI 自动化测试实战(一) 测试框架设计与 PageObject 改造

欧宝体育娱乐平台_欧宝体育首页APP_欧宝体育app客户端 Copyright © 2011-2020 www.gzsenjie.com All Rights Reserved  双视角安检机

Design by:lxhd.cn

客服中心
热线电话
0755-29651618
上班时间
周一到周五
二维码