总篇152篇 2022年第27篇
首先要明确进行接口自动化需要的步骤,如下图所示:
2)数据准备:根据开发文档确定接口的基本情况,知晓接口的url、请求方式、入参等信息,然后根据业务逻辑以及入参来预期接口的输出- 需要有一个excel或者yaml格式文件来存储测试数据;
- 需要有一个方法来把读取到的配置文件和测试数据组装成测试执行时需要的参数化数据;
如果预期结果是需要根据入参查数据库来得到的时候还需要一个能执行sql的方法3)设计&执行测试:生成一个测试文件,可以来根据入参调用接口获得接口输出然后验证- 根据pytest的特性可以把准备参数化的数据的工作放到conftest.py下;
- 需要有一个调用接口以及断言验证的测试文件,命名规则为xxx_test.py或者test_xxx.py;
- 为了更好的对输出和预期输出做验证准备封装一下系统自带的断言;
- 为了能更好执行测试封装一下requests模块,制定统一的输入输出标准;
1、这里每一个文件对应一个接口所需要的测试数据,命名规则为nameA.xlsx或者nameA.yaml(nameA泛指待测接口名称),文件里面可以存放调用接口所需的参数name、参数value、所需cookie、预期输出结果
--封装的断言方法,用于验证接口返回值和预期结果是否一致--封装的https请求方法,主要是post和get--查询sql并把结果加工成[dic1,dic2,dic3....]这种格式,每个dic是一条数据--这个是根据caseparams文件夹下的测试数据自动在testcase文件夹下生成测试文件的脚本
interface.ini是所有测试接口需要的配置
log.log是当天文件,其他的是对应日期下的历史日志
5、conftest.py固定名称的一个文件,放在被测接口脚本同一个文件夹下,此处的作用是为每个被测脚本提供参数化支持
test_XXX.py这种文件是接口的测试文件,XXX为被测接口的名称
6、run.py ---测试执行的主入口,如果把该接口自动化测试框架放到jenkins上做持续集成的时候,可以通过配置jenkins来代替这个入口
当我们需要有一个接口(假定名称为abc)需要用本框架进行自动化测试的时候,操作步骤如下:
1、interface.ini文件下添加名称为abc的节点,然后在该节点下配置好接口的参数文件格式、http请求方式、接口url、接口wiki
2、casefparams文件夹下创建名称为abc.xlsx的用例数据文件3、执行common文件夹下的testcasetemplate.py,执行的结果是会自动根据前两步配置的内容在casefile文件夹下生成test_abc.py的脚本文件4、编辑test_abc.py添加所需要的断言,来验证接口的准确性
测试执行详情为run.py指定要执行测试的测试文件的路径testcase目录,根据pytest的运行机制这之前会先调用testcase目录下的conftest.py,这个文件在此处的作用就是通过遍历testcase目录下以test_为开头的测试文件,然后调用读取配置文件config.py、读取并组装参数的get_caseparams.py将测试用例数据参数化传递给test_开头的测试文件,test_开头的测试文件执行的时候会把之前步骤传递过来的参数拆分,然后调用request.py发送http请求,获得接口的json格式的返回结果,然后通过以下方式对接口返回结果做验证1)根据产品业务逻辑知道入参的情况下很简单就能得出预期结果的时候,可以直接把预期结果放到和入参一起的excel或者yaml测试数据文件中,在执行测试的时候这些参数也会一并传递给测试文件,直接取出来和接口输出做验证即可2)需要查库验证的情况需要把需要把接口的入参作为sql的条件写好sql后调用selectDB.py得到查询结果再拿sql返回的结果和接口输出做验证3)还有一些复杂的场景可能会根据接口入参,根据业务逻辑自己写脚本去获得预期结果,然后和接口输出做验证2016年加入汽车之家二手车事业部,主要负责二手车C端相关系统、服务以及接口的测试工作
阅读更多:
▼ 关注「之家技术」,获取更多技术干货 ▼