陆续给不同项目做了Web接口自动化测试,在尝试不同方法的同时会有新的体会。最近用到了HttpRunner3,本文将记录使用HttpRunner3+Allure+Jenkins在项目中快速实现Web接口自动化测试的过程。
HttpRunner3
安装
安装HttpRunner3: pip install httprunner
脚手架
使用HttpRunner提供的脚手架工具,能够快速创建项目目录,输入命令: httprunner startproject xxx
比如我通过"httprunner startproject demo"创建了名为demo的项目,创建完成后目录结构如下图所示:
生成测试用例
创建完项目目录后,如何快速生成测试用例呢?
为方便我们写用例,HttpRunner提供了录制工具,能够将har文件转换成pytest类型或者yaml/json类型的用例。而har文件可以通过抓包软件获得,以Charles举例:右键选择想要转换成用例的http请求->Export Session->文件类型选择.har格式保存。
此时,我们就完成了har文件的提取工作,那么如何转换成用例呢?HttpRunner提供了命令: har2case xxx.har 用har文件生成对应的pytest类型的测试用例。还是以demo项目举例,进入项目根目录下,har2case demo/har/github.har将在har目录下生成github_test.py文件,该文件即为pytest格式的用例。
为了便于分类管理,将生成的github_test.py文件从har文件夹移至testcases文件夹下。此外,很多时候,我们需要对初步生成的pytest用例进行修改,由于本文篇幅有限,请参考官方文档查阅方法。
运行用例
HttpRunner提供hrun命令用于运行测试用例,官方文档解释 hrun 等于 pytest 。所以,我们可以输入命令 pytest demo/testcases/github_test.py 来运行pytest类型用例。运行完成后,会在logs文件夹下生成对应的log文件,里面记录了测试过程及结果,如下图所示。
当然,为了操作方便,建议编写runner.py用于运行测试用例,而不是敲命令行的方式。
Allure测试报告
安装allure环境
Step1:安装java环境,因为allure依赖。然后安装allure,下载地址https://github.com/allure-framework/allure2/releases,解压后将allure/bin目录添加至系统环境变量中。
Step2:安装allure-pytest插件: pip install allure-pytest
运行用例并生成Allure测试报告
继续上述例子,分别输入命令行:
pytest demo/testcases/github_test.py --alluredir=demo/reports/allure_results
allure generate --clean demo/reports/allure_results -o demo/reports/allure_reports
将在demo项目的reports目录下生成allure测试报告,如下图所示。
经过上述步骤,已经能在本地使用HttpRunner录制脚本、执行测试及生成测试报告了。如需进一步远程定时运行测试用例、生成测试报告及邮件通知,我们可以通过jenkins实现它。
配置Jenkins
添加插件
安装并启动Jenkins服务后,在Manage Jenkins->Manage Plugins添加以下插件:
- Allure Jenkins Plugin : 用于生成Allure测试报告
- Email Extension :用于发送邮件
修改系统配置
添加号插件后,需要修改Jenkins的系统配置:
- 配置Allure:在Manage Jenkins->Global Tool Configuration中配置allure系统路径
- 发送邮件:在Manage Jenkins->Configure System中配置邮件服务器
修改Job配置
完成上述操作后,接着需要在Jenkins Job中完成相应的配置。新建或者打开一个Job,修改它的配置项。
设置定时
编写批处理命令
配置生成allure
配置发送邮件
Job配置完成后,便可根据实际的项目节奏定时运行测试,生成Allure测试报告及邮件通知相干人员了。当然,后续也可通过jenkins pipeline进一步达到CI/CD的目的。
参考资料