JMeter+Ant+jenkins搭建接口自动化测试环境

目录

前言:

       1.ant简介

  2. 构建ant环境

  3.JMeter与Ant集成

  4. 报告优化

  5.jenkins持续集成


前言:

JMeter是一个开源的性能测试工具,可以用于测试Web应用程序或API接口的性能,支持多种通信协议和数据格式。Ant是一个构建工具,可用于自动化构建、测试、打包和部署软件项目。Jenkins是一个支持集成开发环境的自动化构建工具。

1.ant简介

  1.1 什么是ant?

  JMeter: 编写测试脚本生成jmx脚本,运行接口测试。JMeter相当于篮球场,jmx脚本相当于篮球运行场。

  ant: 构建工具,通过调用JMeter来批量运行测试脚本,并生成测试报告。Ant是一个功能强大的打包编译工具。我们使用他的目的是将JTL(xml)格式文件转化为html格式的文件,相当于篮球教练的角色。

  1.2 什么是构建

  概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅于此,但是主要用来干这个。

  2. 构建ant环境

  1)去Apache官网上下载ant最新版,我下载的是apache-ant-1.9.15。

  2)下完之后解压,放到一个目录下面。我把它和jmeter都放在了D:\mysolution下。

  3)配置环境变量,与jmeter类似。   下面这些和你ant存放的路径有关。

  注:网上说需要设置ANT_HOME,CLASSPATH和Path,亲测可以只设置Path其他两项可以不进行设置。

  新建系统变量ANT_HOME,值D:\mysolution\apache-ant-1.9.15

  系统变量CLASSPATH,值后面添加D:\mysolution\apache-ant-1.9.15\lib

  系统变量Path,值后面添加D:\mysolution\apache-ant-1.9.15\bin

  4)进入命令提示符,输入ant,结果如下图所示,"build.xml does not exist "说明ant配置成功。

  3.JMeter与Ant集成

  3.1 JMeter部分

  1)将D:\mysolution\apache-jmeter-5.3\extras文件夹下的ant-jmeter-1.1.1.jar这个jar包复制到D:\mysolution\apache-ant-1.9.15\lib文件夹下。

  2)用记事本打开jmeter\bin\jmeter.properties,将jmeter.save.saveservice.output_format=csv改成jmeter.save.saveservice.output_format=xml,记得去掉前面的“#”。

  3)设置输出内容,修改jmeter.properties文件。

  注:可以尝试理解每行配置的含义,然后再进行你想要的个性化配置。

  4)在JMeter脚本目录创建build.xml文件,请根据实际情况进行配置。

  注:不要去查找build.xml文件,直接创建一个文本文件并把以下内容复制过去。配置时修改注释相当的地方即可。

<?xml version="1.0" encoding="UTF8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
    <!-- 需要改成自己本地的 Jmeter 目录-->  
    <property name="jmeter.home" value="D:\mysolution\apache-jmeter-5.3" />
    <property name="report.title" value="JMeter接口测试报告"/>
    <!-- jmeter生成jtl格式的结果报告的路径--> 
    <property name="jmeter.result.jtl.dir" value="D:\Jmeter\report\jtl" />
    <!-- jmeter生成html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="D:\Jmeter\report\html" />
    <!-- 生成的报告的前缀-->  
    <property name="ReportName" value="APITestReport" />
<tstamp> <format property="time" pattern="YYYYMMDD HHmmss" /></tstamp>
    <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" />
    <target name="run">
        <antcall target="test" />
        <antcall target="report" />
    </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:\Jmeter\script" includes="*.jmx" />
            
            <property name="jmeter.save.saveservice.output_format" value="xml"/>
        </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">
        <tstamp> <format property="report.datestamp" pattern="YYYY/MM/DD HH:mm" /></tstamp>
        <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="${report.datestamp}"/>
              <param name="titleReport" expression="${report.title}:${report.datestamp}"/>
       </xslt>
                <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以需要手动拷贝 --> 
        <copy todir="${jmeter.result.html.dir}">
            <fileset dir="${jmeter.home}/extras">
                <include name="collapse.png" />
                <include name="expand.png" />
            </fileset>
        </copy>
    </target>
</project>

  3.2 ant部分

  运行ant,进入到build.xml所在目录,运行ant。注也可以使用ant -buildfile build.xml来运行ant。

  运行结束后,如若出现SUCCESS信息,则表示运行成功可去对应目录查看结果。部分运行结果信息如下:

BUILD SUCCESSFUL
Total time: 9 seconds

  3.3 查看JMeter结果

  此报告是\apache-jmeter-5.3\extras这个目录下jmeter-results-detail-report_21.xsl这个样式生成的报告。

  4. 报告优化

  ant默认报告并不好看,出错之后,很难从报告上去定位问题,定位问题在哪里,可进行优化。优化原理:其实由.jtl格式转换为.html格式的报告过程中,style文件起了很关键的作用。

  1)下载style文件:jmeter.results.shanhe.me.xsl

  2)把下载的文件放到jmeter的extras目录下。

  3)修改build.xml文件如下部分,修改xsl样式文件的文件名即可。

  4)运行结果:

  5.jenkins持续集成

  Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。

  简而言之:Jenkins是实现持续集成平台脚本的定时运行、邮件发送、测试报告展示等。

  5.1 jenkins的安装配置

  jenkins下载地址:https://jenkins.io/zh/download/,下载windows版并安装jenkins,安装成功后会自动打开: http://localhost:8080 页面,等待进入jenkins的配置页面。

  解锁jenkins完成配置。

  关于插件的选择,还是老套路,省事用安装推荐的插件,高手自定义。

  创建管理员用户。

  实例配置。

  5.2 jenkins的使用

  5.2.1 新建一个job

  5.2.2  jenkin 配置中增加Ant插件

  添加待构建的文件路径,即Ant执行的build.xml文件路径。

  5.2.3 立即构建

  5.2.4 构建触发器

  日程说明:其中有5个参数

  ·第一个是代表分钟 H 表示随机

  ·第二个是代表小时 9-15/4 9点到下午三点期间的每隔4个小时

  ·第三个是代表天 * 任意一天

  ·第四个是代表月份 1-11 表示1到11月份

  ·第五个是代表星期 1-5 表示工作日

  ·H(9-18) 9点到18点 中随机的一个点,没有用到 H 随机的话,不要加括号

  常见的日程配置表:

  * * * * * 表示任何一个时间段,同一个时间都可能会触发执行。不建议使用。

  H/30 * * * * 表示每天每隔 30分钟构建一次。

  H 4-19/3 * * * 表示,一天的凌晨点到下午7点,每隔3个小时构建一次。

  * * 3-5 * * 表示,每个月的3号,4号,5号 都会被构建,具体时间未知。

  * * * * 1-5 表示,工作日时会构建,具体时间未知。

  H/30 8-19/3 1-28 1-11 1-5 表示 在1月到11月中的1号-28号,每个工作日,早晨的8点到下午7点每隔3.5个小时会触发构建。

  5.3 jenkins其他配置

  5.3.1 丢弃旧的配置

  服务器资源是有限的,有时候保存了太多的历史构建,会导致Jenkins速度变慢,并且服务器硬盘资源也会被占满。当然下方的"保持构建天数" 和 保持构建的最大个数是可以自定义的,需要根据实际情况确定一个合理的值。

  5.3.2 邮件通知设置

  1)回到最外面的主界面。找到manage jenkins,找到系统设置。

  2)找到插件安装这里面的邮件插件。

  3)查看已安装的邮箱插件。

  4)返回到配置界面,然后点击系统配置,找到下图的地方:填写两个东西:

  第一个url:用默认这个url 尝试一下能访问到jenkins就可以了;第二个参数:邮箱发件箱的账户。

  5)进入到最下面的邮箱配置,点开高级,然后按照要求填写内容。。请注意密码这个东西:是QQ邮箱的此处授权码,另外用户名不要跟后缀。然后勾选测试,成功后会收到邮件。

  SMTP基础设置,见下图:

  Extended E-mail Notification:

  这是使用第三方插件的邮箱功能,方法跟上面这个一样。

  5.4 构建结果说明

  5.4.1 构建状态

  Successful蓝色:构建完成,并且被认为是稳定的。

  Unstable黄色:构建完成,但被认为是不稳定的。

  Failed红色:构建失败。

  Disable灰色:构建已禁用。

  5.4.2 构建稳定性

  构建稳定性用天气表示:晴、晴转多云、多云、小雨、雷阵雨。天气越好表示构建越稳定,反之亦然。

  5.4.3 构建历史界面

  console output: 输出构建的日志信息。

 作为一位过来人也是希望大家少走一些弯路,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步! 

留【自动化测试】即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/28222.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于卫星星历计算卫星在CGCS2000大地坐标系中的坐标

目录 一、北斗系统概述 1.空间星座 2.坐标系统 3.时间系统 二、实验目的 三、实验内容 四、实验过程 五、实验结果 一、北斗系统概述 1.空间星座 北斗卫星导航系统简称北斗系统&#xff0c;英文缩写为 BDS&#xff0c;其空间星座由 5 颗地球静止轨道&#xff08;GEO&…

学会使用这些Lumion照片级渲染技巧,秒出大片

Lumion 是一种渲染软件&#xff0c;可帮助建筑师以清晰、感性的方式传达他们的设计。十年来&#xff0c;人们发现 Lumion 的每个新版本都有新的功能、工作流程和控制方法。他们可以在 Revit、SketchUp 或其他 BIM 程序等软件中建模&#xff0c;并将模型导入 Lumion 进行渲染&am…

基于stm32作品设计:多功能氛围灯、手机APP无线控制ws2812,MCU无线升级程序

文章目录 一、作品背景二、功能设计与实现过程三、实现基础功能&#xff08;一&#xff09;、首先是要选材&#xff08;二&#xff09;、原理图设计&#xff08;二&#xff09;、第一版本PCB设计&#xff08;三&#xff09;、焊接PCB板&#xff08;四&#xff09;编写单片机程序…

作为自动化测试工程师,这4个自动化测试阶段你真的知道吗?

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 阶段一&#xff1…

Kubernetes集群添加新集群节点

Kubernetes集群添加新集群节点 添加worker节点 参考文档https://gitee.com/open-hand/kubeadm-ha/blob/release-1.21/docs/02/%E6%B7%BB%E5%8A%A0%20worker%20%E8%8A%82%E7%82%B9.md 添加工作节点与集群安装时初始化工作节点一样,可以在主节点上执行&#xff0c;也可以在要加…

第四章 完型填空

第四章 完型填空 第一节 真题 2020-完型填空- Section I Use of English Directions&#xff1a; Read the following text. Choose the best word (s) for each numbered blank and mark A, B, C or D on the ANSWER SHEET. (10 points) Being a good parent is, of cour…

springboot 连接 kafka集群(kafka版本 2.13-3.4.0)

springboot 连接 kafka集群 一、环境搭建1.1 springboot 环境1.2 kafka 依赖 二、 kafka 配置类2.1 发布者2.1.1 配置2.1.2 构建发布者类2.1.3 发布消息 2.2 消费者2.2.1 配置2.2.2 构建消费者类2.2.3 进行消息消费 一、环境搭建 1.1 springboot 环境 JDK 11 Maven 3.8.x spr…

CSDN问答机器人

文章目录 前言一、背景二、总体流程三、构建知识库四、粗排五、精排六、Prompt总结相关博客 前言 先看结果: 已经连续很多周获得了第二名(万年老二), 上周终于拿了一回第一, 希望继续保持. &#x1f601; 这是今天的榜单, 采纳的数量相对较少, 之前基本上维持在100 重点说明…

SpringBoot项目实战:自定义异常和统一参数验证(附源码)

你好&#xff0c;我是田哥 在实际开发过程中&#xff0c;不可避免的是需要处理各种异常&#xff0c;异常处理方法随处可见&#xff0c;所以代码中就会出现大量的try {...} catch {...} finally {...} 代码块&#xff0c;不仅会造成大量的冗余代码&#xff0c;而且还影响代码的可…

母婴商家怎么建立自己的品牌,母婴产品传播渠道总结

随着互联网的发展逐渐深入我们的生活&#xff0c;线上传播的模式也越来越被大家熟知。越来越多的行业开始重视线上传播。那么母婴商家怎么建立自己的品牌&#xff0c;母婴产品传播渠道总结。 其实&#xff0c;母婴产品线上用户群体众多&#xff0c;且母婴产品用户目的明确&…

深入解析IT专业分类、方向及就业前景:高考毕业生如何选择适合自己的IT专业?重点探索近年来人工智能专业发展及人才需求

目录 一、IT专业的就业前景和发展趋势二、了解IT专业的分类和方向三、你对本专业的看法和感想四、本专业对人能力素养的要求五、建议和思考其它资料下载 当今社会&#xff0c;信息技术行业以其迅猛的发展和无限的潜力成为了吸引无数年轻人的热门选择。特别是对于高考毕业生来说…

你的企业还没搭建这个帮助中心网页,那你太落后了!

作为现代企业&#xff0c;拥有一个完善的帮助中心网页已经成为了不可或缺的一部分。帮助中心网页不仅可以提供给用户有关产品或服务的详细信息&#xff0c;还可以解答用户的疑问和提供技术支持&#xff0c;使用户在使用产品或服务时遇到问题可以很快地得到解决。因此&#xff0…

论文阅读和分析:Binary CorNET Accelerator for HR Estimation From Wrist-PPG

主要贡献&#xff1a; 一种完全二值化网络(bCorNET)拓扑结构及其相应的算法-架构映射和高效实现。对CorNET进行量化后&#xff0c;减少计算量&#xff0c;又能实现减轻运动伪影的效果。 该框架在22个IEEE SPC受试者上的MAE为6.675.49 bpm。该设计采用ST65 nm技术框架&#xff…

数据结构--队列2--双端队列--java双端队列

介绍 双端队列&#xff0c;和前面学的队列和栈的区别在于双端队列2端都可以进行增删&#xff0c;其他2个都是只能一端可以增/删。 实现 链表 因为2端都需要可以操作所以我们使用双向链表 我们也需要一共头节点 所以节点设置 static class Node<E>{E value;Node<E…

jetpack compose —— Card

jetpack compose Card 组件提供了一种简单而强大的方式来呈现卡片式的用户界面。 一、什么是 Card 组件 二、基本用法 三、属性和修饰符 四、嵌套使用和复杂布局 一、什么是 Card 组件 Card 是 Jetpack Compose 中的一个常用组件&#xff0c;用于呈现卡片式的用户界面。它…

Javaweb学习路线(3)——SpringBoot入门、HTTP协议与Tomcat服务器

一、SpringBoot入门 &#xff08;一&#xff09;第一个Springboot案例 1、创建Springboot工程&#xff0c;添加依赖。 2、定义类&#xff0c;添加方法并添加注释 3、运行测试。 pom.xml&#xff08;框架自动生成&#xff09; <?xml version"1.0" encoding&quo…

不同等级的Pads工程师,薪资差距有多大?

作为一种广泛应用在PCB设计的EDA工具&#xff0c;Pads软件在中国的电子设计行业中有着重要地位&#xff0c;尤其是不同等级的Pads工程师&#xff0c;在薪资、工作范围等有很大的差异&#xff0c;本文将从中国出发&#xff0c;多方面分析对比不同等级的Pads工程师&#xff0c;希…

24个Jvm面试题总结及答案

1.什么是Java虚拟机&#xff1f;为什么Java被称作是“平台无关的编程语言”&#xff1f; Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台&#xff0c;而不需要程序员为每…

【VMware】虚拟机安装centos7

目录 一、创建虚拟机 1、自定义 2、选择需要安装的操作系统 3、选择虚拟机安装位置 4、选择处理器配置&#xff08;可先默认&#xff09; 5、设置虚拟内存&#xff08;一般4096&#xff09; 6、选择网络连接方式 7、选择I/O控制器 8、选择磁盘类型 9、选择磁盘 10、指定磁盘容…

国内云服务器全面对比

想要领取优惠券购买云服务可以前往我的云服务器领券购买。 经过疫情三年&#xff0c;大多行业开始复苏&#xff0c;企业开始布局以后得发展&#xff0c;云服务器作为企业发展几乎是必须的&#xff0c;一个企业从无到有&#xff0c;要经历很多&#xff0c;比如企业官网搭建&…