文章目录
1、HTTPRUNNER_DEMO说明:
httprunner初始化json格式的接口测试框架Demo:实现了swagger自动生成json测试用例,测试用例文件对比及备份测试用例数据,日志收集器等功能。
2、安装python3运行环境
- 大家都不建议安装python2,因为已经不再维护了;
- pip大法安装httprunner,使用规则请参考中文使用文档。
3、介绍httprunner框架两个命令
- httprunner/hrun --startproject your_projectName 快速生成项目结构
-
- api:生成的api接口测试用例目录
-
- reports:执行测试用例默认的报告目录
-
- testcases:测试用例目录
-
- testsuites:测试用例套件
-
- debugtalk.py:是个热处理文件,默认就叫这个名字,其他名字框架不认
-
- .env:环境管理,这个暂没用到
-
-
- 关键信息可以写入这里进行管理,如何在测试用例中引用呢?示例:${ENV(PARAM)}表示调用.env这个环境变量文件中的param参数
-
- 使用fiddler/charles抓包工具,导出为har数据文件,执行har2case命令默认生成json格式的测试用例,带上参数-2y生成yaml格式,默认执行顺序:是自上往下执行
-
- config 为全局配置项,作用域为整个测试用例
-
- test 对应单个测试步骤,作用域仅限于本身
- hrun可以执行单个测试用例也可以在testcases/testsuites目录执行测试套件
-
- hrun testcases\ 执行下面的所有测试用例
4、接口测试中的动态关联实现
接口不是单接口,而是有一定的依赖,也就是存在业务场景关系
- httprunner支持参数提取,参数引用的功能:extract,在测试用例中加入"extract": [ {“token1”: “content.token1”}]
-
- content是默认响应参数,.点后面的才是json对象目录层级
-
- token会作为引用变量,$token在下面关联的接口中直接使用
- httprunner支持实现动态运算逻辑,也就是上文中提到的debugtalk.py文件
# 实例:
import random
def gen_random_num(min_num,max_num):
return random.randint(min_num,max_num)
-
- 在api测试用例下修改数据引用函数:${gen_random_num(1,3)}即可
-
- 需要注意的是执行hrun命令需要与debugtalk文件同级目录,不然会提示找不到func:httprunner.exceptions.FunctionNotFound: gen_random_num is not found.
5、再说httprunner接口测试框架中的参数数据驱动
滚来滚去又到了数据驱动模块,人为来添加参数,难免报错,还是测试平台好啊
- 在 HttpRunner 中,若要采用数据驱动的方式来运行测试用例,需要创建一个文件,对测试用例进行引用,并使用 parameters 关键字定义参数并指定数据源取值方式。
- 关于这个参数暂时没有调试出来,目前主要使用httprunner框架监控现网单线程接口
- 详见使用手册!
6、万年不变梗:封装大法
真心讲封装,简单粗暴的讲别人封装好的方法API再次封装一次,自定义能明了的方法。
- configparser:配置文件读取类库
- celery:作为系统目录对比文件
- requests:HTTP协议接口请求类库,当然不止http协议,有webservice
- logging:日志收集器,需要对脚本进行日志跟踪
7、重点:swagger接口文档自动生成json格式的测试用例
python脚本就是对swagger接口返回的json格式的响应参数进行清洗加入定义的json对象中去
- 考虑第一次生成json测试用例,然后完善接口测试用例之后,如果接口有变动,再次执行swagger脚本,就会覆盖原已经完善的接口测试用例<相当于白做了>
-
- 需要每次执行swagger对api目录下的用例进行备份,并生成html报告
日拱一卒无有尽,功不唐捐终入海!