Jmeter+Jenkins+Ant实现接口自动化
自动化环境接口配置
- 安装Jmeter,添加环境变量JMETER_HOME:C:\Users\Administrator\Desktop\Study\apache-jmeter-5.2.1,然后在Path中添加:%JMETER_HOME%/bin
- 编辑CLASSPATH的值为(注意:最前面有和点和分号):
.;%JAVA_HOME%\lib;%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar;%ANT_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
Path:C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Python37\Scripts\;C:\Program Files\Python37\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Java\jdk1.8.0_45;C:\Program Files\Java\jre1.8.0_45;C:\Users\Administrator\Desktop\Study\apache-jmeter-5.2.1;C:\Users\Administrator\Desktop\Study\apache-jmeter-5.2.1\bin;E:\test\ant\apacheAnt\bin;”
- 因为设置了环境变量,打开DOS,直接输入jmeter,就可以启动jmeter,不需要在cd到Jmeter所在的路径
- Jmeter默认保存的是.jtl格式的文件,要设置一下C:\Users\Administrator\Desktop\Study\apache-jmeter-5.2.1\bin\jmeter.properties文件内容,保存jmeter.save.saveservice.output_format=xml
- 将ant解压就是安装E:\test\ant,将jmeter所在目录下apache-jmeter-5.2.1\extras 子目录里面的ant-jmeter-1.1.1.jar复制到 ANT到E:\test\ant\apacheAnt\lib下,直接覆盖该文件将下的这个文件,这样ANT运行时才能找到“org.programplaner.ant.taskdefs.jmeter.JmeterTask”,从而成功触发Jmeter脚本
- Ant的环境变量配置
ANT_HOME:E:\test\ant\apacheAnt
CLASSPATH中需要添加%ANT_HOME%\lib
Path中需要添加%ANT_HOME%\bin
然后在DOS下输入ant-version检验是否配置成功
- 建立一个目录结构
E:\test\ant ant解压在这里
E:\test\data 测试数据在这里
E:\test\JmeterAutoTest\p\script jemter文件放在这里
E:\test\JmeterAutoTest\p\resultlog 自动化测试生成的结果在这里
E:\test\JmeterAutoTest\p\resultlog\html ant执行生成的结果
E:\test\JmeterAutoTest\p\resultlog\jtl Jmeter执行生成的结果
E:\test\JmeterAutoTest\p\Build.xml这个就是执行文件,需要在jenkins中指向这个文件
- ANT部署及配置,3个jar包需要部署到ant的lib下
mail-1.4.jar
commons-email-1.1.jar
activation-1.1.jar
- 配置build.xml,怎么配置需要深度学习,
配置完成后,打开DOS窗口,必须要cd到build.xml文件所在的路径E:\test\JmeterAutoTest\p,输入ant就可以生成测试报告
- Jenkins配置:
将jenkins.war放到tomcat的webapps文件夹下:启动tomcat,打开浏览器输入网址:http://localhost:8080/jenkins
如果出现闪退,可能是8080端口被占用,需要修改tomcat的端口号
修改端口号:打开\apache-tomcat-7.0.73\conf/server.xml,在这一句修改<Connector port="8080" protocol="HTTP/1.1"端口号
Jenkens的构建过程:
- 启动jenkins
- 新建-》输入item名称,选择“否吉安一个自由风格的软件项目”
- 构建触发器Build periodically:周期行进行项目构建这个是制定的时间必须出发构建任务
如每个15min运行一次,选择Build periodically –》 */15 * * * *
五颗星,中间用空格隔开
第一颗*表示分钟,取值0~59
第一颗*表示小时,取值0~23
第一颗*表示一个月的第几天,取值1~31
第一颗*表示第几个月,取值1~12
第一颗*表示一周中的第几天,取值0~7,其中0和7都表示周天
举例:
每30min分钟运行一次H/30 * * * *
每两小时执行一次 H H/2 * * *
每天早上8点执行 0 8 * * *
每天的8 点,12点,22点 一天构建3次
0 8,12,22 * * * 多个时间点,中间用逗号隔开
build.xml文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<project name="pc" default="all" basedir="D:\Test\JmeterAutoTest">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="D:\Test\tools\apache-jmeter-2.13" />
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="D:\Test\JmeterAutoTest\pc\resultlog\jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="D:\Test\JmeterAutoTest\pc\resultlog\html" />
<!-- 生成的报告的前缀 -->
<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" />
<!-- 接收测试报告的邮箱 -->
<property name="mail_from" value="13370171377@163.com" />
<property name="mail_to" value="101973951@qq.com" />
<!-- 电脑地址 -->
<!-- <property name="ComputerName" value="jkqsh-l0285" />-->
<target name="all">
<antcall target="test" />
<antcall target="report" />
<antcall target="send" />
</target>
<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 -->
<testplans dir="D:\Test\JmeterAutoTest\pc\script" />
</jmeter>
</target>
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
<target name="report">
<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="${time}"/>
</xslt>
<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
<!-- 发送邮件 -->
<target name="send" >
<mail mailhost="smtp.163.com" mailport="25" subject="Test Report!" messagemimetype="text/html" user="XXXX" password="XXXX" >
<from address="${mail_from}"/>
<to address="${mail_to}"/>
<message>This email was sent automatically by ANT. Please check the automation test report. Thank you!</message>
<attachments>
<fileset dir="${jmeter.result.html.dir}">
<include name="${ReportName}${time}.html"/>
</fileset>
</attachments>
</mail>
</target>
</project>
相关文章
- [Jenkins]开发jenkins插件第一步
- jenkins 持续集成和交付——gogs安装(外篇)
- jenkins通过命令行方式执行jmeter脚本及查看html报告
- jenkins 持续集成和交付 —— git hook(七)
- jenkins 持续集成和交付——安装与账户安全还有凭证(二)
- jenkins 持续集成和交付——开篇(一)
- jenkins:配置密钥时报错的解决:Failed to add SSH key. Message invalid privatekey(Jenkins 2.257)
- KubeSphere 使用外置 Jenkins
- docker+jenkins+maven+svn
- Python+Pytest+Allure+Git+Jenkins接口自动化框架
- 手把手教你Jenkins整合Jmeter实现自动化接口测试
- Python接口测试实战之Git及Jenkins持续集成
- Jenkins凭据管理之如何创建和删除用户名密码形式的凭据
- Jenkins中一个项目的构建