jmeter+ant+jenkins

 

整体流程:jenkins 立即构建--->ant build.xml--->run --->test 任务--->report---->mail--->查看邮件

 

一、基础准备

---------------------------------------------------------------------------------------------------------------------------------------

【jmeter】

 步骤:

  1、下载安装jmeter,建议版本5.0.0以上;

  2、默认熟悉jmeter的使用,此处不再赘述;

---------------------------------------------------------------------------------------------------------------------------------------

【ant】

步骤:

  1、下载安装ant,版本建议1.10以下;我装的是ant版本是1.9.14;

  2、查看安装成功:

    1)dos命令输入:ant -v 

    2)若显示出版本号则安装成功;

  3、配置环境变量(如图):

    

---------------------------------------------------------------------------------------------------------------------------------------------

【jenkins】

步骤:

  1、下载jenkins,并安装;

 

  2、配置jenkins:

    1)jenkins默认端口是:8080,如果需要修改端口号,打开jenkins目录下jenkins.xml文件,修改httpPort=8080 的值,修改后重启jenkins生效;

    (此文件中也可以修改所分配内存和超时时间,如图:)

    

    2)打开:http://localhost:8080/login

    3)   需要先登录,如图:(这个密码在jenkins安装目录下secrets文件夹下initialAdmainPassword文件中,拷贝出密码进行登录)

    

 

    4)安装推荐的插件

    5)创建管理员账户,保存;

  

  3、启动jenkins:

    方式一:(前提是已经安装了jdk并且版本高于1.8)

    1)通过cmd命令窗口,切换到jenkins.war所在的文件路径;

    2)输入命令: java -jar jenkins.war

 

    方式二:

    1)  创建一个run.bat批量执行脚本文件,放到D:\Jenkins目录下,文件内容如下:

         echo "Jenkins CI automation testing"                  -----输出

         java -jar "D:\Jenkins\jenkins.war"                         -----目录路径            

         pause                                                                    ------继续

 

二、jmeter脚本+ant执行生成报告

【步骤】  

  1、jmeter.properties配置

    1)字符集 uft-8 GBK zh_CN

    2)   压力测试如果多台测试机,可以配置分布式(适用于仅有一台服务器资源不够,每个线程都会占用内存和CPU)

      分布式默认端口是1099,如果当前服务器为A:192.168.50.11   B:192.168.50.12,(配置到下图红框的地方)

      

 

 

 

    3)生成的报告是html形式,jmeter.save.saveservice.output_format=csv修改为jmeter.save.saveservice.output_format=xml(默认是注释掉的,需要解除注释),修改后保存,重启jmeter生效;

  2、jemter +ant  配置

    1)在jmeter的extras目录下,把ant-jmeter-1.1.1.jar文件复制到ant的lib目录下;

    2)ant构建build.xml文件  (代码如下)

<?xml version="1.0" encoding="UTF8"?>
<project name="Jmeter-TestCase" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmmss"/>
</tstamp>


<!-- 发送给哪些人-->
<property name="mail_to" value="xxxxxx@163.com"/>  
    <!-- 抄送给哪些人,多个用逗号隔开/-->
    <!--property name="mail_cc" value="++++1@qq.com,++++2@qq.com"/-->
   <property name="report.title" value="自动化接口测试报告"/>  
    <!-- jmeter生成jtl格式的结果报告的路径--> 
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="D:\apache-jmeter\apache-jmeter-5.1.1"/>
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="${jmeter.home}\Testcase\report\jtl"/>
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="${jmeter.home}\Testcase\report\Report"/>
<!-- 生成的报告的前缀 -->
<property name="ReportName" value="TestReport" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/test.jtl"/>
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/report.html"/>
<!--定义每次build.xml要执行全部的任务-->  
<target name="run">
<antcall target="test"/>
<antcall target="report"/>
<antcall target="mail" />
</target>
<!--执行第一个任务 执行test-->
<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="${jmeter.home}\Testcase\jiaoben\authen" includes="authen.jmx"/>
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<!--执行第二个任务 生成报告-->
<target name="report">
<xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl"/>
<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png"/>
<include name="expand.png"/>
</fileset>
</copy>
</target>

<!--执行第三个任务,发送邮件-->
  <target name="mail">
  <!--读取输出的控制台日志文件并写入邮件正文-->
  <loadfile property="output" srcFile="${jmeter.result.html.dir}/report.html" encoding="UTF-8"/>
    <!-- 此处配置SMTP服务器   POP3授权码   发送邮箱地址   端口  发送邮箱主题-->
<mail tolist="${mail_to}"  mailhost="smtp.163.com" mailport="25" user="xxxxxx@163.com"  password="xxxxxx"  subject="jmeter 测试报告" messagemimetype="text/html">
<from address="xxxxxx@163.com" />

 <fileset dir="${jmeter.result.html.dir}">
<include name="report.html"/>

   </fileset>
<message>  
  这是用Ant+jmeter+jenkins自动发送的测试报告
   ${output}
 </message>  
</mail>  
</target>  
</project>
build.xml

    3)cd 到该文件所在的目录,输入ant,回车;若构建成功会提示:BUILD SUCCESSFUL

      工作原理:

      调用jmx,执行完成后会生成两份报告,一个jtl,一个html   (自动化脚本执行完成,生成报告),生成的报告看success rate这个字段就可以了;

 

三、jenkins+ant+jmeter实现自动构建

  1、登录jenkins;

  2、新建一个job,选择自由风格的项目;

  3、构建触发器选择:如下图

  

  4、配置构建触发器:

  

 

   5、安装jmeter插件

    步骤:

    进入系统管理—管理插件—可选插件,安装下面两个插件:

    1)Performance plugin

    2)  HTML Publisher plugin

  6、配置—构建触发器—增加构建

    图1

  

    图2

  

  图3

 

  

  7、jenkins 添加邮件发送功能

  步骤:

     安装两个插件 :Email Ext Recipients Column 和 Email Extension Template,安装完成后  重启生效;

  8、配置IMAP SMTP服务

  步骤:

    打开邮箱,设置,找到POP   IMAP  SMTP设置的地方,开启,获取授权码;

  9、jenkins配置邮件通知

  步骤:

    全局设置,邮件通知:

    图1:

    

 

    图2:

    

  10、定时构建触发器(每日23点执行)

  

 

   11、配置邮件服务

  步骤:

    1)将jmeter的lib目录中的mail.jar和javax.activation-1.2.0复制到ant的lib目录中;

    2)执行构建;

  

 

 

 

    

      

    

 

 

 

 

 

    

 

 

 

 

 

    

 

 

 

 

 

   

    

 

    

  

    

      

 

 

 

    

  

 

 

 

 

     

    

    

  

转载于:https://www.cnblogs.com/hd-test/p/11551555.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值