接口自动化测试-Jmeter+ant+jenkins实战持续集成(详细)

目录:导读


前言

1、下载安装配置Jmeter

首先下载jmeter工具,并配置好环境变量;

参考之前写过的文章:https://blog.csdn.net/shuang_waiwai/article/details/121641310

jmeter默认保存的是.jtl格式的文件,要设置一下bin/jmeter.properties,文件内容,保存jmeter.save.saveservice.output_format=xml

2、下载安装配置ant

下载ant工具,并配置好环境变量;

直接在官网下载即可:https://ant.apache.org/bindownload.cgi

3、通过ant触发jmeter脚本的配置

将JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.jar复制到Ant所在目录lib子目录之下,这样Ant运行时才能找到"org.programmerplanet.ant.taskdefs. jmeter.JMeterTask"这个类,从而成功触发JMeter脚本。

jmeter中extras文件夹下;如下图:

ant工具包的lib文件下

4、自动发送邮件的jar包配置

如下图:

1、在网站上下载commons-email.jar包,然后放在 ant 的 \lib 目录下;

地址:https://commons.apache.org/proper/commons-email/download_email.cgi

2、在网站上下载activation-1.1.1.jar包,然后放在 ant 的 \lib 目录下;

地址:http://www.java2s.com/Code/Jar/a/Downloadactivation111jar.htm

3、在网站上下载javax.mail.jar包,然后放在 ant 的 \lib 目录下;

地址:https://javaee.github.io/javamail/

5、建立如下目录结构

resultlog:

html =>ant转化后的结果。

jtl=>imeter生成的结果

script:

jmeter执行的脚本

配置build.xml文件:

源码:

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>

    <property environment="env"/>
    <property name="ReportName" value="TestReport" />
    <!-- 需要改成自己本地的 Jmeter 目录--> 
    <property name="jmeter.home" value="D:\B_TOOLS\apache-jmeter-2.13" />
    <!-- jmeter生成jtl、html格式的结果报告的路径--> 
    <property name="jmeter.result.dir" value="${env.WORKSPACE}/results/${env.BUILD_ID}" />
    <!-- 生成的报告的前缀-->  
    <property name="jmeter.result.jtlName" value="${jmeter.result.dir}/${ReportName}.jtl" />
    <property name="jmeter.result.htmlName" value="${jmeter.result.dir}/${ReportName}.html" />

    <target name="run">
        <echo message="start..."/>
        <antcall target="clean" />
        <antcall target="test" />
        <antcall target="report" />
    </target>

    <target name="clean">
        <mkdir dir="${env.WORKSPACE}/results/${env.BUILD_ID}" />
    </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:\B_TOOLS\apache-jmeter-2.13\demo" includes="*.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.dir}">
            <fileset dir="${jmeter.home}/extras">
                <include name="collapse.png" />
                <include name="expand.png" />
            </fileset>
        </copy>
    </target>
</project>

build.xml文件要放到pc或者app的目录下;如下图:

配置build.xml文件内容的详细信息

重点:smtp的授权码;如QQ邮箱

配置完成后,打开DOS窗口进行build.xml文件所在的目录,输入ant即可生成报告并发送到指定人的邮箱中;结果如下图

6、通过jenkins进行构建并自动运行jmeter脚本

新建item任务;如下图

构建触发器,设置多久触发一次

定时任务:

分钟:小时:一月的天数:月份:一周的天数

0-59:0-23:1-31:1-12:0-7(0和7表示周天)

举例:

每天晚上20点整自动执行

0 20 * * *

一周1,3,5晚上20点整执行

0 20 * * 1,3,5

每周周1-周5晚上20点整执行

0 20 * * 1-5

一周内每2天,晚上20点整执行

0 20 * * */2

跳转到构建步骤界面,点击增加构建步骤选择Invoke Ant

再点击高级按钮

把build.xml文件的路径拷贝到下图位置

点击保存返回到主页面;点击立即构建开始执行

执行结果,查看接收人邮箱

|-------------------------------------|
| 下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |

一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战

四、App自动化项目实战

五、一线大厂简历

六、测试开发DevOps体系

七、常用自动化测试工具

八、JMeter性能测试

九、总结(尾部小惊喜)

勇敢地面对挑战,坚定地追求梦想。努力不倦,才华绽放;奋斗不息,辉煌终现。相信自己的无限潜能,抓住机会,创造属于自己的奇迹。

不论前路多荆棘,燃起希望之火;不论身处何困境,绽放勇往直前的力量。踏遍山河,追寻心中的理想;扬起风帆,航向未来的辉煌。相信自己,奋斗不息,成就无限可能的精彩人生!

岁月如梭,奋斗不止;拥抱梦想,燃烧激情。不畏困难,勇攀高峰;用汗水浇灌,绽放辉煌。每一份努力,都值得骄傲;每一次拼搏,都离成功更近。

相关推荐
弹简特1 小时前
【精通Postman接口测试】03-结果断言实战 + 数据驱动保姆级教程
测试工具·接口测试·postman·断言
xmlhcxr8 小时前
从 0 到 1 落地企业级 DevOps CI/CD 流水线:基于 GitLab+Jenkins+Harbor 的完整实践
运维·docker·gitlab·jenkins·harbor·devops
lbb 小魔仙11 小时前
内网 Jenkins 如何实现公网访问?我解决了这个痛点!
运维·jenkins
古城小栈1 天前
封神!Rust 出品 HTTP 压测神器 cargo-whero,轻量碾压 JMeter、wrk,新手也能秒上手
jmeter·http·rust
软件测试雪儿1 天前
【面经】2026年软件测试面试题大全(附答案)
软件测试·面试
rs勿忘初心1 天前
软件测试人员如何理解 Harness(驾驭工程)?
软件测试·ai agent·harness·驾驭工程·测试工程
twc8291 天前
从架构视角梳理全链路压测的核心业务链路
java·大数据·软件测试·架构·性能测试·全链路压测
_周游1 天前
【软件测试】使用JMeter进行压力测试_3
jmeter·压力测试
软件测试慧姐1 天前
软件测试常见面试题汇总(2026版)
软件测试·测试工具·面试
牛奶咖啡132 天前
CI/CD——使用Jenkins自动化构建java项目之使用传统方式部署java web项目jpress
ci/cd·jenkins·jenkins创建任务·实现jpress的自动化部署·git的ssh主机密钥问题解决·配置ssh免密登录·在线安装jdk1.8环境