• 性能测试持续集成 CICD:JMeter+Jenkins+Ant+jmx


    Java JDK 

    1. C:\Users\Tommy>java -version
    2. java version "1.8.0_341"
    3. Java(TM) SE Runtime Environment (build 1.8.0_341-b10)
    4. Java HotSpot(TM) 64-Bit Server VM (build 25.341-b10, mixed mode)

    Apache Tomcat+Jenkins.war

    1. Apache Tomcat/9.0.65
    2. https://tomcat.apache.org/download-90.cgi
    3. jenkins.war 2.99
    4. https://get.jenkins.io/war/2.367/jenkins.war

    jenkins安装方法和初始化配置

    1.将下载好的jenkins.war包,放入tomcat文件夹下的webapps,war包不需要单独解压

     2.返回到上一层目录找到tomcat文件夹下的bin目录,运行startup.bat启动tomcat服务,启动时,jenkins.war会自动解压并生成一个jenkins文件夹

    3.服务启动后,浏览器输入:http://你的ip:8080/jenkins,大概会有1-2分钟左右的空白页面,稍等一下如出现下图则表示启动服务并进入jenkins成功

     4.输入jenkins生成的密码,密码在红色文件夹路径中可以查看,输入后并进入,稍等数秒后,选择插件来安装

    如果网速比较好可以选择安装推荐的插件,因为外国服务,大部分插件都会安装异常或者网络异常

    这里我们先安装Ant插件就可以了

     5.安装后检查ant插件是否安装成功,在jenkins首页,插件管理入口(Manage Plugins)

    在已安装页面,输入插件名称,看见有uninstall,说明已经安装过

     在本地电脑如何安装Ant插件

    1.比如安装目录为盘F:XXX文件夹即可 

    2.返回到jenkins页面,点击全局工具配置(Global Tool Configuration)

    找到Ant入口,如果没有看见ant,说明还没有成功安装ant插件

     输入一个自定义ant名称(后面,构建build配置需要使用),并输入指定路径,应用保存即可

    jmx脚本

    1.在jenkins配置任务,新建item

     必须选择 Freestyle project,OK

    2.进入构建页面

    Build-Build-Invoke Ant-Advanced(高级设置)

    targets就是等于xml模板中的任务名,如果不填,则按照xml文件default处理,否则按照填写的处理

    设置build文件路径,就是jmeter生成报告的模板,可以自行修改或自行下载即可

    点击 应用 apply 和 保存 save

    JMeter中build.xml模板文件简单说明

    build.xml文件,执行jmx的时候性能场景+生成性能场景测试报告+发送邮件通知

    default="all" :所有标签的任务

    <project name="Jmeter-CICD" default="all" basedir="."> 

    xml中多个变量引用,一开始就是为变量创建其中

    定义:property name="jmeter.home"

    引用:value="${jmeter.home}

    1. <property name="jmeter.home" value="C:\apache-jmeter-5.3" />
    2. <property name="report.title" value="JMeter_Testing_Report_CICD"/>
    3. <!-- jmeter生成jtl格式的结果报告的路径-->
    4. <property name="jmeter.result.jtl.dir" value="${jmeter.home}\worklogs\jtl" />
    5. <!-- jmeter生成html格式的结果报告的路径-->
    6. <property name="jmeter.result.html.dir" value="${jmeter.home}\worklogs\html" />
    7. <!-- 生成的报告的前缀-->
    8. <property name="ReportName" value="PerformReport" />
    9. <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}\${ReportName}${time}.jtl" />
    10. <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}\${ReportName}${time}.html" />

     其中target有,test,report,mail三个任务,每个target都有自己独立的name

    1. <target name="all">
    2. <antcall target="test" />
    3. <antcall target="report" />
    4. <antcall target="mail" />
    5. </target>

    假设jmeter脚本里面

    有多个程组会并行执行,除非在测试计划(Test Plan)勾选"独立运行每一个线程组";

    有线程组1,2,3,其中3号禁用,只会执行1,2;

    1. <target name="test">
    2. <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
    3. <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
    4. <!-- 声明要运行的脚本"*.jmx"指包含此目录下的所有jmeter脚本-->
    5. <testplans dir="${jmeter.home}\bin\testcase" includes="kyj_project.jmx" />
    6. <!-- 输出格式为:xml-->
    7. <property name="jmeter.save.saveservice.output_format" value="xml"/>
    8. </jmeter>
    9. </target>

    jenkins 构建生成报告

    回到jenkins中进入项目build now 一下,等待报告生成

     查看构建的详细信息,以及报告位置

     报告模板的大致内容如下

    jmeter全部失败报错

    jmeter全部正确无报错

  • 相关阅读:
    Linux入门-第1天_linux介绍
    P1506 拯救oibh总部(BFS洪水灌溉)
    Selenium+Pytest自动化测试框架能碰撞出什么样的火花
    基于51单片机的心率血压检测报警WIFI上传手机APP
    C Primer Plus(6) 中文版 第11章 字符串和字符串函数 11.9 把字符串转换为数字 11.10 关键概念 11.11 本章小结
    SpringBoot+Vue项目招生管理系统
    面试被问到HashMap 底层原理?看完这边文章绝对不慌!
    29【定时器和延时器】
    自动化测试07Selenium01
    高效使用Python的subprocess模块:基本用法与进阶技巧
  • 原文地址:https://blog.csdn.net/qq_30864373/article/details/126774172