使用Jmeter和Jenkins自动化测试OpenAPI

随着微服务OpenAPI在企业应用系统中使用越来越多,一般OpenAPI接口达到几百甚至上千个,每个接口手工测试既费时又费力而且质量无法保证;而且OpenAPI往往会存在多个版本同时使用,如何保证OpenAPI多种语言开发,运行在不同平台上,如何建立一个统一自动化测试平台。该平台既可以对OpenAPI做功能和回归测试,又可以针对OpenAPI做性能压力测试。本文主要介绍小工蚁如何使用Jmeter压力测试工具和Jenkins自动化构建工具配合,实现自动化测试OpenAPI。

1.安装Jmeter

Jmeter是一个被广泛应用的开源压力测试工具,基于JAVA语言开发,因此它可以运行在各种操作系统中。它既有图形化操作界面,又可以通过server-master分布式运行模式。Jmeter对HTTP和Json支持程度非常好,OpenAPI基于HTTP Json协议因此使用Jmeter进行开发测试生成测试脚本jmx文件。

下载安装Jmeter参考文档http://jmeter.apache.org

运行bin/jmeter.sh,运行画面如下图所示:

Jmeter

2.安装Jenkins和插件

有了测试脚本jmx文件后,可以利用Jenkins自动化构建和配置管理流水线帮助自动化运行测试脚本,并且自动产生测试报告将结果通知相关人员。jenkins也是使用Java开发,可以运行在web容器中,下载安装jenkins请参考文档。

要实现Jenkins自动化测试需要安装和配置Jenkins插件Performance Plugin(生成性能趋势测试报告)、HTML Publish Plugin(生成HTML Jmeter测试报告)、Startup Trigger Plugin和 Groovy Plugin(每次build设置系统环境参数)。

 

 3.Jmeter 与 Jenkins 搭配使用实现自动化测试

添加自动化测试任务了,选择新建—>构建一个自由风格的软件项目。

QQ20190211-234118@2x

接下来进入 Jenkins 配置页面。
根据需要配置好相应的源码管理,触发器和环境后,添加构建,
在Build Triggers模块下,勾选Build when job nodes start;
在Build模块下,Add build step->Execute system Groovy script,在Groovy Script中输入配置命令,System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”, “”)。
需要注意的是,添加构建步骤的时候,应该选择Execute system Groovy script,而不是Execute Groovy script。关于这两者之间的差异,简单地说,Groovy Script相当于是运行在master/slave系统JVM环境中,而system groovy script,则是运行在Jenkins master的JVM环境中,与前面提到的Jenkins Script Console功能相同。如需了解更多信息,可查看Groovy plugin的详细说明。

以上操作为了解决解决HTML样式展示异常的问题了。

Add build step->Execute  Shell,使用的命令如下图,该命令是跨平台的,不管 win,unix 还是 mac 都可以使用。
命令格式为:jmeter.sh -n -t <测试脚本文件路径> -l <日志保存路径> -e -o
-n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
-t 测试文件 -> 要运行的 JMeter 测试脚本文件
-l 日志文件 -> 记录结果的文件,文件必须不存在
-e 设置测试完成后生成测试报表
-o 指定报表生成文件夹,文件夹必须为空或者不存在
-r 分布式远程执行 -> 指定远程slave节点执行测试任务
-R 设置分布式服务器列表 -> 配置远程服务器ip列表
-H 代理主机 -> 设置 JMeter 使用的代理主机
-P 代理端口 -> 设置 JMeter 使用的代理主机的端口号

QQ20190211-234138@2x

接下来配置构建后操作:
选择添加构建后操作,在列表中首先是选择 Publish HTML Reports。
选择增加。

HTML directory to archive 中指定 Jmeter 生成报告的相对路径output。
剩余配置一般默认就可以了。
接下来继续添加构建后操作,选择 Publish Performance test result report:

QQ20190211-234152@2x

source data files:日志文件所在的相对路径。
evaluation mode:选择判断模式,一般来说选择 standard mode (标准模式), 标准模式中可以选择 relative threshold(相对阀值)或者 error threshold (相对错误数),这里因为是只执行一次的业务测试,所以选择 error threshold,并在下方配置1次测试失败就将 job 状态改为 failed。
如果是测试数量较多,且容忍一定的错误率可以选择 relative threshold,根据错误的百分比来修改 job 状态。

这里配置好以后就可以添加自己的后续部署任务了,再次选择增加构建后操作,选择 trigger parameterized build on other projects。
填写测试结束后需要部署的项目,并选择 job 状态为什么时才会触发这个构建。
以上就是一个完整的根据测试结果自动部署任务了,接下来我们保存,选择立即构建。

构建成功后,会出现如下图所示界面

QQ20190211-234026@2x

性能趋势测试报告

QQ20190211-234037@2x

Jmeter测试结果报告

推荐文章

沪公网安备 31010702002009号