Jmeter3.1、Ant、Jenkins接口自动化平台配置
安装操作详见:https://www.cnblogs.com/jxba/p/9218407.html
本文配置参考:
https://testerhome.com/topics/13389 等
jmeter
追加jmeter安装目录下的\bin到path环境变量后,dos中输入jmeter,windows会直接打开jmeter
数据准备
1、脚本存放路径:D:\01Test\02Jmeter\scripts
如:
2、build执行文件存在了D:\01Test\02Jmeter\scripts\reports,命名为:build_report_module.xml。(注:一般build文件存放在ant/bin目录下,本人测试使用,每个项目build文件不一定要一致,所以存放在此处,该文件可任意存放,只要用的时候其目录填写正确即可)
未来test下jmx的执行结果报告也将存放在此目录D:\01Test\02Jmeter\scripts\reports(在build文件中配置,内容如下)
<?xml version="1.0" encoding="UTF-8"?> <project name="ant-jmeter-test" default="run" basedir="."> <tstamp> <format property="time" pattern="_yyyyMMdd_HHmmss" /> </tstamp> <!-- 需要改成自己本地的Jmeter路径,路径根据自己情况更改--> <property name="jmeter.home" value="D:\01Test\02Jmeter\apache-jmeter-3.1" /> <property name="report.title" value="接口测试"/> <!-- jmeter生成jtl格式的结果报告的路径,路径根据自己情况更改--> <property name="jmeter.result.jtl.dir" value="D:\01Test\02Jmeter\scripts\reports" /> <!-- jmeter生成html格式的结果报告的路径,路径根据自己情况更改--> <property name="jmeter.result.html.dir" value="D:\01Test\02Jmeter\scripts\reports" /> <property name="detail" value="_detail" /> <!-- 生成的报告的前缀--> <property name="ReportName" value="Report" /> <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" /> <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" /> <property name="jmeter.result.jtlNamedetail" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" /> <property name="jmeter.result.htmlNamedetail" value="${jmeter.result.html.dir}/${ReportName}${time}${detail}.html" /> <target name="run"> <antcall target="test" /> <antcall target="report" /> </target> <target name="test"> <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /> <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"> <!--要运行的脚本"*.jmx"指包含以下路径下的所有jmx,如需执行多路径下的脚本,则将路径分别加载testplans里,路径根据自己情况更改--> <testplans dir="D:\01Test\02Jmeter\scripts\test3N" includes="*.jmx" /> <testplans dir="D:\01Test\02Jmeter\scripts\test3" includes="*.jmx" /> <testplans dir="D:\01Test\02Jmeter\scripts\test2" includes="*.jmx" /> <testplans dir="D:\01Test\02Jmeter\scripts\test" includes="*.jmx" /> <property name="jmeter.save.saveservice.output_format" value="xml"/> </jmeter> </target> <path id="xslt.classpath"> <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/> <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/> </path> <!-- 生成2个报告,一个概要的,一个详细的 --> <target name="report"> <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="dateReport" expression="${report.datestamp}"/> </xslt> <xslt classpathref="xslt.classpath" force="true" in="${jmeter.result.jtlNamedetail}" out="${jmeter.result.htmlNamedetail}" style="${jmeter.home}/extras/jmeter-results-shanhe-me.xsl"> <param name="dateReport" expression="${report.datestamp}"/> </xslt> <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 --> <copy todir="${jmeter.result.html.dir}"> <fileset dir="${jmeter.home}/extras"> <include name="collapse.png" /> <include name="expand.png" /> </fileset> </copy> </target> </project>
build_report_module.xml
jenkins插件下载
需要下载的插件,包括但不不限于以下:
Localization: Chinese (Simplified) 中文显示
Ant Plugin
Email Extension Plugin
Build Pipeline Plugin
Performance Plugin
HTML Publisher plugin
Groovy
Groovy Postbuild
Groovy Remote Control Plugin
系统管理--系统设置
配置如下信息信息配置
该邮箱地址需要记住,job中的邮件配置会用到
以上配置中的密码非邮箱登录密码,而是QQ邮箱的授权码,
SMTP服务开启操作见:https://service.mail.qq.com/cgi-bin/help?subtype=1&&no=166&&id=28
QQ邮箱授权码查看:https://service.mail.qq.com/cgi-bin/help?subtype=1&&no=1001256&&id=28
jenkins创建job
job名字自定义,选择自由风格软件项目
本人命名为:HTTP_baidu
配置job
工作区
在general-高级中设置,(下面的构建后操作的配置需要用到,本项目所有的脚本、报告、执行文件都将在该目录下存放和生成)
构建触发器
根据操作说明(点击?可查看)编写,如定时任务
构建信息
build file:build文件的路径,本人build文件命名为:build_report_module.xml,存放在:D:\01Test\02Jmeter\scripts\reports下
构建后操作(如果没有,需要下载插件)
publish HTML reports
注:
HTML directory to archive:是指需要jenkins加载在jenkins上的html文件所在的路径,这些html文件为我们执行自动化测试后生成的reports文件,该路径为工作区的相对路径,工作区的设置见上面。如本人工作区路径为:D:\01Test\02Jmeter\scripts,ant执行后生成的report文件存放路径是在在build文件中配置,将存放在D:\01Test\02Jmeter\scripts\reports下,也就是本插件所用到的html文件将在D:\01Test\02Jmeter\scripts\reports下生成,所以直接写reports即可。(这些目录需提前建好)
Index page[s]:*。html,即将所有的html文件加载在jenkins的页面上。
publish performance test result report
Source data files (autodetects format):是指需要jenkins加载在jenkins上的jtl文件所在的路径,这些jtl文件为我们执行自动化测试后生成的文件,该路径为工作区的相对路径,工作区的设置见上面。如本人工作区路径为:D:\01Test\02Jmeter\scripts,ant执行后生成的jtl文件存放路径是在在build文件中配置,将存放在D:\01Test\02Jmeter\scripts\reports下,也就是本插件所用到的jtl文件将在D:\01Test\02Jmeter\scripts\reports下生成,所以直接写reports\*jtl即可。(这些目录需提前建好)
其他配置信息默认~
Editable Email Notification
default content内容如下
<!DOCTYPE html> <html> <body> <h3>以下是Jenkins自动发送的邮件,请勿回复!</h3> </body> </html> <hr/ 项目名称:$PROJECT_NAME<br/><hr/> 构建编号:$BUILD_NUMBER<br/><hr/> 构建状态:$BUILD_STATUS<br/><hr/> 触发原因:${CAUSE}<br/><hr/> 构建日志地址:<a href="${BUILD_URL}console">${BUILD_URL}console</a><br/><hr/> 构建地址:<a href="$BUILD_URL">$BUILD_URL</a><br/><hr/> 变更集:${JELLY_SCRIPT,template="html"}<br/><hr/>
default content
在Editable Email Notification中点击高级,设置发送邮件触发器
job保存,配置完成
另一个前置的job
因为jenkins加载的html会出现显示不正常的现象,所以创建另一个job,名字随意命名(本人命名:Build when job nodes start),配置其构建条件和构建执行的脚本即可。
脚本:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
构建
选择创建的job,选择构建
首次构建先执行前置job:Build when job nodes start (以后都不用执行了~)
再执行本次测试job:HTTP_baidu
构建成功,自动发送测试报告邮件
截图如下
至此,over
一路上遇到很多拦路虎,不过按照这样设置,应该不会再有问题了~,拦路虎以后有时间再梳理。