目录
httprunner代码分层
概括来说,测试用例分层机制的核心是将接口定义、测试步骤、测试用例、测试场景进行分离,单独进行描述和维护,从而尽可能地减少自动化测试用例的维护成本。
api:是接口的定义模版,他里面描述了接口的公共部分,api是无序的
testcase: 是接口模版的具体实现,里面的teststep就是接口的测试用例,testcase应当每条都可以独立运行,相互不干涉,而里面的teststep是有序的
testsuit: 是业务测试的集合,里面是测试用例的 无序 集合,集合中的测试用例应该都是相互独立,不存在先后依赖关系的;如果确实存在先后依赖关系,那就需要在测试用例中完成依赖的处理
httprunner环境安装
安装命令
pip install httprunner
验证是否安装成功,出现版本号说明安装成功
hrun -V
测试数据准备
使用fiddler抓包工具抓包,导出har格式的接口数据,选择File->Export Sessions->Selected Sessions->HTTPArchive v1.1
创建httprunner项目
创建命令
httprunner startproject 项目名
创建成功
注:如果创建失败了可能是httprunner的版本和环境不兼容,安装一个版本低一点的就可以了,如果创建失败会出现如下图显示
生成的文件目录如下
把har文件转换成yml文件
#生成yaml格式的测试用例
har2case get_token.har -2y
创建一个package包,把生成的yaml用例放到api中
引用全局变量和局部变量
通过$变量名称的方式引用,config下的variables是全局变量,teststeps下的variables是局部变量
动态参数热加载
debugtalk.py文件中编写函数,然后在api的yaml文件中通过${函数名()}的方式调用
环境变量设置
在.env配置url,然后在config下添加base_url,通过${ENV(变量名)}方式引用
接口关联
在request标签下添加一个extract标签提取返回值,通过content或body提取,然后通过$变量名使用
创建测试用例层
新建testcases包,复制api中的yaml文件,只保留config和teststeps
创建测试套件层
生成allure报告
第一步:
1.官网下载allure文件https://github.com/allure-framework/allure2/releases
2.下载之后解压到非中文目录
3.把bin路径配置到系统变量path中 D:\allure-2.17.3(注意分号不要是中文的)
第二步:
安装allure报告,安装后输入allure --version验证,出现版本号说明安装成功(可能需要重启pycharm)
pip install allure-pytest
第三步:
1.在reports目录下生成temps目录,并在temps目录下生成临时的json格式的临时报告
os.system("hrun testsuites/demo_suit.yml --alluredir=reports/temps --clean-alluredir")
#加上--clean-alluredir表示:每执行一次把原来的清除
2.根据临时json报告生成allure报告
os.system("allure generate reports/temps -o reports/allures --clean")
#加上--clean表示:每执行一次把原来的清除
运行all.py文件,生成的报告如下:
完结~撒花❀❀❀(ps:httpruner高级用法后续再更新)