搭建目的:能在web页面去触发执行jmeter测试脚本,并且在web页面看到html测试结果报告。
了解下来通用做法:jenkins+ant+jmeter
jenkins: 是开源的、提供友好操作界面的持续集成工具,主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。jenkins用java语言编写,可在Tomcat等流行的servlet容器中运行,也可以独立云溪。通常与版本管理工具(SVN,GIT)、构建工具(MAVEN,ANT,GRADLE)结合使用。
ant: apache ant是一个将软件编译、测试、部署等步骤联系在一起加以自动化的工具。Ant是纯java语言编写的,具有跨平台性。Ant运行时需要一个XML文件(构建文件),Ant通过调用target树,可以执行各种task,每个task实现了特定接口对象,它很容易集成到开发环境中去。
jmeter:
apache jmeter: 是基于java的压力测试工具。
整体过程理解如下
这个最终需要部署到专门测试linux机器上,现阶段在本地window机器搭建完善好后,再部署到测试服务器上。
搭建环境:
JDK: jdk1.8.0_281
ANT: apache-ant-1.10.9
JMETER: apache-jmeter-5.4.1
JENKINS:jenkins-war:2.263.3
JMETER搭建
下载地址:https://archive.apache.org/dist/jmeter/binaries/
1、解压apache-jmeter-5.4.1.zip到D:\software目录下
2、配置环境变量
1)新建:JMETER_HOME ,变量值输入:D:\software\apache-jmeter-5.4.1_A5
2)环境变量:CLASSPATH,添加
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar;
3)环境变量:Path,添加 %JMETER_HOME%\bin
4)测试 jmeter -v
ANT安装
下载地址:https://ant.apache.org/bindownload.cgi
1、解压apache-ant-1.10.9-bin.zip到D:\software目录下
2、配置环境变量
1)新建环境变量 ANT_HOME ,变量输入:D:\software\apache-ant-1.10.9
2)环境变量 PATH添加,%ANT_HOME%\bin
3)测试 ant -v
ANT、JMETER其它设置
1、 jmeter结果文件默认保存的是.csv格式的文件,因为后面要生成html,所以要修改下默认配 置,修改文件“apache-jmeter-5.4.1_A5\bin\jmeter.properties”,设置:jmeter.save.saveservice.output_format=xml
2、 将apache-jmeter-5.4.1_A5\extras\ant-jmeter-1.1.1.jar拷贝到“\apache-ant-1.10.9\lib\”下
3、 在D:\software\apache-jmeter-5.4.1_A5下新建JmeterSpace目录,
Script 目录用来存放.jmx测试文件
ResultLog\html 目录存放生成的html文件
ResultLog\jtl 目录存放生成的jtl文件
4、创建built.xml,配置如下
<?xml version="1.0" encoding="UTF8"?>
<project name="ant-jmeter" default="run" basedir=".">
<property name="jmeterPath" value="D:\software\apache-jmeter-5.4.1_A5"/>
<tstamp><format property="time" pattern="yyyyMMddHHmm" /></tstamp>
<!-- jmeter环境配置 -->
<property name="jmeter.home" value="D:\software\apache-jmeter-5.4.1_A5"/>
<!-- jtl测试结果存放路径 -->
<property name="jmeter.result.jtl.dir" value="D:\software\apache-jmeter-5.4.1_A5\JmeterSpace\ResultLog\jtl"/>
<!-- html测试结果存放路径 -->
<property name="jmeter.result.html.dir" value="D:\software\apache-jmeter-5.4.1_A5\JmeterSpace\ResultLog\html"/>
<property name="htmlReportNameSummary" value="TestReport"/>
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${htmlReportNameSummary}.jtl"/>
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${htmlReportNameSummary}.html"/>
<target name="run">
<antcall target="test"/>
<antcall target="report"/>
</target>
<!-- 执行接口测试 -->
<target name="test">
<echo>执行接口自动化测试用例</echo>
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 声明要运行的脚本“*.jmx”指包含此目录下的所有jmeter脚本-->
<testplans dir="D:\software\apache-jmeter-5.4.1_A5\JmeterSpace\Script" includes="*.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<!-- 解决报告中NAN字段显示问题-->
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar" />
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar" />
</path>
<target name="report">
<echo>生成接口自动化测试报告</echo>
<tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
<xslt
classpathref="xslt.classpath"
force="true"
in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlName}"
style = "${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" >
<param name="titleReport" expression="${mailsubject}${time}"/>
<param name="dateReport" expression="${report.datestamp}"/>
</xslt>
<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy file="${jmeter.home}/extras/expand.png" tofile="${jmeter.result.html.dir}/expand.png" />
<copy file="${jmeter.home}/extras/collapse.png" tofile="${jmeter.result.html.dir}/collapse.png" />
</target>
</project>
5、测试
在D:\software\apache-jmeter-5.4.1_A5\JmeterSpace打开cmd
执行: ant -Dtest=Script (Script这边我已经放入了.jmx测试文件)
执行成功后,可在html目录下,看到执行生成的html结果文件。
接下来就是jenkins了。
JENKINS安装
下载地址:https://get.jenkins.io/war-stable/2.263.3/
1、将下载的war包放入到D:\software\jenkins目录下,在该目录下执行cmd,启动jenkins.war包
java -jar jenkins.war
2、默认端口是8080,启动成功后,访问http://localhost:8080/
密码可以从路径找,也可以从控制台找
这边选了了安装推荐插件,安装需要一段时间,耐心等待安装完
更具体的安装步骤,可百度查找。
安装完成后,检查是否有这几个插件:Ant Plugin,Performance plugin,HTML publisher plugin,Groovy,若没有则依次安装
安装插件步骤
首页点击系统管理Manage Jenkins->管理插件Manage Plugins
在可选插件里搜索 上述几个插件的名称,例如 Groovy
上述jenkins准备就绪,开始配置项目。
1、新建item>Freestyle project,创建一个自由风项目
2、general,源码管理使用默认无,构建触发器,环境搭建使用默认空,
3、构建:增加Invoke Ant
Ant Version选择,选择前需先在全局工具配置里面配置好
Jenkins配置全局工具ANT
点击Manage Jenkins>Global Tool Configuration
Ant >新增Ant
Name: 确定ant名称
ANT_HOME: 配置ANT的安装路径,D:\software\apache-ant-1.10.9
应用,保存。
Targets: build.xml文件里标签维护的name:“run”
Build File: ant 构建文件build.xml的文件路径:D:/software/apache-jmeter-5.4.1_A5/JmeterSpace/build.xml
4、构建:新增Execute Grooxy script(解决Jenkins,查看配置HMTl测试报告样式丢失,未加载JS和CSS问题)
在Grooxy script ,输入命令:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
5、构建后操作:增加构建后操作步骤Pubulish Performance test result report
Source data files (autodetects format): 生成的jtl文件路径,D:\software\apache-jmeter-5.4.1_A5\JmeterSpace\ResultLog\jtl\TestReport.jtl(现在还是固定一个文件,这边能到目录,还未尝试),
StandModle: 生成的jtl文件内容格式
6、构建后操作:增加构建后操作步骤Pubulish HTML reports
HTML directory to archive: 生成的html文件路径,D:\software\apache-jmeter-5.4.1_A5\JmeterSpace\ResultLog\html
index pages: *.html展示所有的html文件
7、保存,执行构建
可在控制台看到执行过程中输出的log日志
8、查看生成的html结果
点击HTML Report
9、生成带图标格式的,待完善;
总结:
通过jenkins+ant+jmeter,可以通过web友好页面,手动或者自动(现在还没有这个需求,触发条件还没用到),去执行已经设置好的.jmx测试用例,并在HTML Report插件里,直接看到生成的结果页面。因为初学的原因和目标要求结果不明确,某些过程配置还有待完善的地方,后面会根据实际情况逐步完善。记录下博文刚好自己把整个过程和理解理了下,看了好多个别人的博客凑出来的,最终发现有点凌乱,下次再搭建可能还是乱的。