使用HttpRunner3+Allure+Jenkins实现Web接口自动化测试

陆续给不同项目做了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的目的。

参考资料