我在搭建环境时,将jmeter、ant、jdk、Tomcat都放在陆opt文件夹下
1.下载jmeter、ant、Jenkins(Jenkins.war包)、jdk、Tomcat
Linux环境下安装Jenkins,需要jdk版本大于11
2.环境配置
jdk配置
vim /etc/profile
添加配置信息:
export JAVA_HOME=/opt/jdk-17.0.1
(export JAVA_HOME=/opt/jdk-17.0.1)
export CLASSPATH=.:${JAVA_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
配置完成按esc--》:wq!退出,执行source /etc/profile
输入java -version验证是否配置成功
jmeter配置
export JMETER_HOME=/opt/apache-jmeter-5.4.1
export CLASSPATH=$JMETER_HOME/lib/ext/AacheJMeter_core.jar:$JMETER_HOME/libjorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin
配置完成按esc--》:wq!退出,执行source /etc/profile
输入jmeter -v 验证是否配置成功
ant配置
export ANT_HOME=/opt/apache-ant-1.9.16
export PATH=$ANT_HOME/bin:$PATH
配置完成按esc--》:wq!退出,执行source /etc/profile
输入ant -version验证是否配置成功
安装Tomcat:
1.tomcat是需要有jdk环境才可以正常运行。
2. /opt/apache-tomcat-8.5.88/bin
进入bin目录后 ./startup.sh 运行(若报错: -bash: ./startup.sh: Permission denied 说明权限不够,如果你是root账号,直接执行指令: chmod u+x *.sh 赋予权限即可)
3.tomcat默认端可是8080
4.关闭 ./shutdown.sh 关闭后即不可访问,先关闭,等配置好Jenkins后再重启
Tomcat配置Jenkins
1. 将Jenkins.war 复制到tomcat的webapp目录下后启动tomcat :
cd /opt
cp jenkins.war apache-tomcat-8.5.88/webapps/
cd /opt/apache-tomcat-8.5.88/bin
./startup.sh运行
2. 浏览器输入: http://ip:8080/jenkins 打开jenkins页面
cat /root/.jenkins/secrets/initialAdminPassword 获取验证密码
接下来就是推荐安装程序,创建账号密码。
Admin默认密码就是 :cat /root/.jenkins/secrets/initialAdminPassword
Ant配置Jmeter
1. 为了方便管理,在Jmeter主目录下创建一个report文件夹
cd /opt/apache-jmeter-5.2.1
mkdir report
2. 进入report目录创建 cd report/
3. 创建3个文件夹 分别为jtl、html(存放测试报告目录)、run(存放测试脚本目录)
mkdir jtl html run
4. 把jmeter目录下的extras目录下的ant-jmeter-1.1.1.jar文件复制到ant目录下的lib文件夹中
cp /opt/apache-jmeter-5.2.1/extras/ant-jmeter-1.1.1.jar /opt/apache-ant-1.10.7/lib
5. 配置ant的编译文件 build.xml
将编译好的build.xml放置Jmeter目录的report目录下
代码如下:请看备注进行修改
<?xml version="1.0" encoding="UTF8"?>
<project name="ant-jmeter" default="all" basedir=".">
<property name="jmeterPath" value="/opt/apache-jmeter-5.4.1"/>
<property name="mail_host" value="smtp.163.com"/>
<property name="mail_port" value="25"/> <!--邮箱端口 -->
<property name="username" value="xxxxx@163.com"/>
<property name="password" value="xxxxxxxxxx"/> <!--邮箱授权码 -->
<property name="mail_from" value="xxxxx@163.com"/> <!--发送邮箱-->
<property name="mail_to" value="xxxx@163.com,xxxxxx@qq.com"/> <!--收件邮箱-->
<property name="mailsubject" value="接口自动化测试报告"/>
<property name="message" value="接口自动化测试报告"/>
<tstamp><format property="time" pattern="yyyyMMddhhmm" /></tstamp>
<!-- jmeter环境配置 -->
<property name="jmeter.home" value="${jmeterPath}"/>
<!-- jtl测试结果存放路径 -->
<property name="jmeter.result.jtl.dir" value="/opt/apache-jmeter-5.4.1/report/jtl"/>
<!-- html测试结果存放路径 -->
<property name="jmeter.result.html.dir" value="/opt/apache-jmeter-5.4.1/report/html"/>
<property name="htmlReportNameSummary" value="TestReport"/>
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${htmlReportNameSummary}${time}.jtl"/>
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${htmlReportNameSummary}${time}.html"/>
<target name="all">
<antcall target="test"/>
<antcall target="report"/>
<antcall target="sendEmail"/>
</target>
<!-- 执行接口测试 -->
<target name="test">
<echo>执行接口自动化测试用例</echo>
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!--testplans dir="/opt/apache-jmeter-5.4.1/report/run" includes="*.jmx" /--> <!--测试脚本 run文件夹存放测试脚本-->
<testplans dir="/root/.jenkins/workspace/ApiTest" includes="*.jmx" /> <!--切换为gitee或gitlab拉取代码存放路径(拉取的代码存放在Jenkins中的workspace下)-->
<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>
<!--将控制台输出到文本中-->
<record name="${jmeter.result.html.dir}/${htmlReportNameSummary}${time}.txt" loglevel="info" append="no" action="start"/>
<target name="sendEmail">
<!--读取输出的控制台日志文件并写入邮件正文-->
<loadfile property="email_content" srcFile="${jmeter.result.html.dir}/${htmlReportNameSummary}${time}.txt" encoding="UTF-8"/>
<loadfile property="output" srcFile="${jmeter.result.html.dir}/${htmlReportNameSummary}${time}.html" encoding="UTF-8"/>
<echo>发送测试报告</echo>
<mail mailhost="${mail_host}"
ssl="false"
user="${username}"
password="${password}"
mailport="${mail_port}"
subject="${mailsubject}"
messagemimetype="text/html"
tolist="${mail_to}" >
<from address="${mail_from}" />
<attachments>
<fileset dir="${jmeter.result.html.dir}">
<include name="${htmlReportNameSummary}${time}.html" />
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</attachments>
<message>
${output}
</message>
</mail>
</target>
</project>
配置jmeter.properties文件
vi /opt/apache-jmeter-5.4.1/bin/jmeter.properties
/csv 找到这个位置(改jmeter.save.saveservice.output_format=csv
为jmeter.save.saveservice.output_format=xml,并去掉前面的注释符号#)
配置jar包支持发送email
1、在 jmeter 的 /opt/apache-jmeter-5.4.1\Extras 目录下找到 ant-jmeter-1.1.1.jar 文件,将它复制到 ant 的 \lib 目录下
2、下载commons-email.jar包,然后放在 ant 的 \lib 目录下
3、下载activation-1.1.1.jar包,然后放在 ant 的 \lib 目录下
4、javax.mail.jar包,然后放在 ant 的 \lib 目录下
运行ant
Ant是可以运行多个脚本,不需要单个脚本一个个运行。
1. 把已经写好的脚本放进report/run的目录下
2. cd /opt/apache-jmeter-5.4.1/report 后直接ant即可
Jenkins配置jdk、ant路径
Manage Jenkins->Tools
jdk配置
Git配置
ant配置
新建Jenkins任务并执行
如果需要配置gitee/gitlab
构建触发
Build Steps设置
ant version 选择ant,不要选default
完成保存,点击build now