Linux搭建jmeter+ant+jenkins持续集成接口自动化框架
1、本次安装的版本为unzip apache-jmeter-5.0.zip
export JMETER_HOME=/root/apache-jmeter-5.0
exportCLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin
3、执行: source /etc/profile ,让配置生效
如果出现:-bash: /root/apache-jmeter-5.0/bin/jmeter: Permission denied
执行:chmod 777 /root/apache-jmeter-5.0/bin/jmeter
地址:http://shanhe.me/download.php?file=jmeter.results.shanhe.me.xsl
/root/apache-jmeter-5.0/extras
下载地址:https://jmeter-plugins.org/install/Install/
本次的版本为:jmeter-plugins-manager-1.3.jar
把这个jar包放到jmeter的:/root/apache-jmeter-5.0/lib/ext目录下面
1、下载地址:https://ant.apache.org/bindownload.cgi
本次下载版本为:apache-ant-1.10.6-bin.tar.gz
2、上传到服务器与jmeter同一目录,本次的目录为/root
解压文件执行:tar -zxvf apache-ant-1.10.6-bin.tar.gz
3、配置环境变量,在/etc/profile后面添加如下信息
ANT_HOME=/root/apache-ant-1.10.6 CLASS_PATH=.:$JRE_HOME/lib PATH=$JRE_HOME/bin:$ANT_HOME/bin export ANT_HOME CLASS_PATH PATH
下载地址:https://tomcat.apache.org/download-80.cgi
本次所用的版本为:apache-tomcat-8.5.35.tar.gz
解压执行: tar -zxvf apache-tomcat-8.5.35.tar.gz
执行:mv apache-tomcat-8.5.35 tomcat-jenkins
4.1、执行: cd /data/tomcat-jenkins/bin
:Cannot find ./catalina.sh.The file is absent or does not have execute permission.This file is needed to run this program
则权限不足:执行chmod 777 /data/tomcat-jenkins/bin/startup.sh
下载地址:https://jenkins.io/doc/book/installing/
执行:vim /root/.jenkins/secrets/initialAdminPassword
1、vim /usr/tomcat-jenkins/bin/catalina.sh
2、在# OS specific support. $var _must_ be set to either true or false.在上面添加一行
export JENKINS_HOME=/usr/local/jenkins
4、添加:export JENKINS_HOME=/usr/local/jenkins
/usr/local/jenkins/hudson.model.UpdateCenter.xml
把extras目录下面的ant-jmeter-1.1.1.jar 拷贝到ant 的lib目录
cp ant-jmeter-1.1.1.jar /root/apache-ant-1.10.6/lib/
6.1、将文件中#jmeter.save.saveservice.output_format=csv改为jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
# response_data is not currently supported for CSV output
jmeter.save.saveservice.response_data=true
# Save ResponseData for failed samples
jmeter.save.saveservice.response_data.on_error=false
jmeter.save.saveservice.response_message=true
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=true
jmeter.save.saveservice.assertions=true
jmeter.save.saveservice.latency=true
jmeter.save.saveservice.connect_time=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.responseHeaders=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.encoding=false
jmeter.save.saveservice.bytes=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.filename=true
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=true
jmeter.save.saveservice.idle_time=true
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="all" basedir=".">
<format property="time" pattern="yyyyMMddhhmm" />
<property name="jmeter.home" value="/root/apache-jmeter-5.0"/>
<property name="jmeter.result.jtl.dir" value="/root/apache-jmeter-5.0/report"/>
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="/root/apache-jmeter-5.0/report"/>
<property name="ReportName" value="TestReport" />
<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" />
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
<testplans dir="/root/apache-jmeter-5.0/testcases" includes="*.jmx" />
<!-- 增加如下一行代码,否则会报错误,经测试使用jmeter3.0版本不增加下面一行代码不会报告错误-->
<!--<property name="jmeter.save.saveservice.output_format" value="xml"/>-->
<!-- html报告中时间显示为NAN,原因是ant中缺失了两个lib库 xalan-2.7.2.jar和serializer-2.7.2.jar ,将这两个库拷贝到ant的lib目录下,或者在这里增加如下代码均可解决-->
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
<!-- html报告中Date report这里的时间没有正确显示出来,原因是未设定report.datestamp 属性值-->
<tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
out="${jmeter.result.htmlName}"
style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl">
<param name="dateReport" expression="${report.datestamp}"/>
<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
查看报告如下,感觉确实丑了一些,后面有空再优化一下
则在命令行执行:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")