zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Jmeter+Jenkins+Ant实现接口自动化

Jenkins接口自动化 实现 JMeter ant
2023-09-11 14:22:10 时间

自动化环境接口配置

  1. 安装Jmeter,添加环境变量JMETER_HOME:C:\Users\Administrator\Desktop\Study\apache-jmeter-5.2.1,然后在Path中添加:%JMETER_HOME%/bin
  2. 编辑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;”

  1. 因为设置了环境变量,打开DOS,直接输入jmeter,就可以启动jmeter,不需要在cd到Jmeter所在的路径
  2. Jmeter默认保存的是.jtl格式的文件,要设置一下C:\Users\Administrator\Desktop\Study\apache-jmeter-5.2.1\bin\jmeter.properties文件内容,保存jmeter.save.saveservice.output_format=xml
  3. 将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脚本
  4. Ant的环境变量配置

ANT_HOME:E:\test\ant\apacheAnt

CLASSPATH中需要添加%ANT_HOME%\lib

Path中需要添加%ANT_HOME%\bin

然后在DOS下输入ant-version检验是否配置成功

  1. 建立一个目录结构

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中指向这个文件

  1. ANT部署及配置,3个jar包需要部署到ant的lib下

mail-1.4.jar

commons-email-1.1.jar

activation-1.1.jar

  1. 配置build.xml,怎么配置需要深度学习,

配置完成后,打开DOS窗口,必须要cd到build.xml文件所在的路径E:\test\JmeterAutoTest\p,输入ant就可以生成测试报告

  1. 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的构建过程:

  1. 启动jenkins
  2. 新建-》输入item名称,选择“否吉安一个自由风格的软件项目”
  3. 构建触发器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>