当前位置: 首页 > news >正文

极致精细的jmeter+ant+jenkins 搭建接口自动化测试

一、jmeter

相信大家对jmeter并不陌生哈,如果没有安装和配置环境的小伙伴,可以直接找到我哈,我发给你。

二、ant

安装ant

第一步:下载ant  http://ant.apache.org/

第二步:配置ant

window中设置ant环境变量:

以下是我电脑ant配置

ANT_HOME    C:/ apache-ant-1.9.7

path             C:/ apache-ant-1.9.7/bin

classpath      C:/apache-ant-1.9.7/lib

cmd打开 输入ant执行

说明ant安装成功!因为ant默认运行build.xml文件,build.xml 需要我们自己建立,等哈后面 我们再说这个

为了确定真的安装成功了  我们执行ant -version

ok了,我们继续往后面扯

三、将\apache-jmeter-3.2\extras下面的ant-jmeter-1.1.1的jar包到ant的lib目录,如图所示:

 

 四、建立build.xml

 

从上图可以知道  我们创建了一个文件夹demo,然后把build.xml 丢在它下面了

<?xml version="1.0" encoding="UTF-8"?><project name="ant-jmeter-test" default="run" basedir="."><tstamp><format property="time" pattern="yyyyMMddhhmm" /></tstamp><!-- 需要改成自己本地的 Jmeter 目录-->  <property name="jmeter.home" value="D:\study\apache-jmeter-3.2" /><!-- jmeter生成jtl格式的结果报告的路径--> <property name="jmeter.result.jtl.dir" value="D:\study\apache-jmeter-3.2\demo\report\jtl" /><!-- jmeter生成html格式的结果报告的路径--><property name="jmeter.result.html.dir" value="D:\study\apache-jmeter-3.2\demo\report\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" /><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:\study\apache-jmeter-3.2\demo" 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-report-loadtest.xsl"><param name="dateReport" expression="${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>

上图注释已经很清晰了,只需要配置下jmeter路径以及报告样式就可以使用我这个build.xml文件了

五、创建一个jmx文件 然后运行下

进入到该目录,并cmd执行ant

 

上图的BUILD SUCCESSFUL 证明已经成功了,而且报告在report/html下面

现在我们打开报告看看

报告是不是很好看,其实就是\apache-jmeter-3.2\extras这个目录下jmeter-results-report-loadtest.xsl这个样式生成的报告

六、集成jenkins

废话不多说 ,启动jenkins

1、java -jar jenkins.war (自己去下载jenkins.war)  也可以在群里问我要

2、下载jenkins.tar 并解压 将解压之后的文件丢在tomcat下面的webapps下面     

 双击C:\apache-tomcat-7.0.72\bin下面的startup.bat 启动  

这就证明jenkins已经启动了

然后随意打开一个浏览器 输入:http://localhost:8080/jenkins  默认端口号为8080

我自己改成8888的,你们随意

创建一个项目。

 选择第一个自由风格,然后点击OK按钮

 然后配置ant,增加build路径

 

点击保存之后,我们继续配置测试报告

我们需要下载一个插件Public HTML reports

系统管理----》管理插件----》可选插件   输入Public HTML reports 进行查询并进行安装

接下来继续配置报告

点击增加构建后操作步骤  并点击Public HTML reports

并点击保存按钮  好了  现在我们报告也配置好了 

我们现在jenkins构建下吧

 点击之后 出现

证明jenkins在构建了

 

好了到了这一步 已经构建成功了,Success ! 

我们在jenkins下面看下报告吧

 

 

报告已经ok了

其实文章篇幅很长,配置很简单

最后可以用jenkins定时执行我们的jmeter脚本,也就是批量执行jmeter脚本了

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

文档获取方式:

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

相关文章:

极致精细的jmeter+ant+jenkins 搭建接口自动化测试

一、jmeter 相信大家对jmeter并不陌生哈&#xff0c;如果没有安装和配置环境的小伙伴&#xff0c;可以直接找到我哈&#xff0c;我发给你。 二、ant 安装ant 第一步&#xff1a;下载ant http://ant.apache.org/ 第二步&#xff1a;配置ant window中设置ant环境变量&…...

Unity物体查找方式

参考资料 cUnity中使用GameObject.Find、Transform.Find查找GameObject_思月行云的博客-CSDN博客 GameObject.Find 通过名字或路径查找游戏对象。 GameObject.Find("GameObject"); GameObject.Find("GameObject/ChildGameObject); 使用规范: 1.无法查找隐藏…...

【Spring容器的启动流程】

Spring容器的启动流程主要分为以下几个步骤&#xff1a; 加载配置文件&#xff1a;Spring容器会从指定的配置文件中读取配置信息&#xff0c;包括bean的定义、依赖关系、AOP切面等。 创建容器&#xff1a;Spring容器启动后会创建一个容器实例&#xff0c;容器负责管理bean的生…...

Python---字符串

字符串特点 1. 只可以存储字符串 2. 长度任意 (取决于内存大小) 3. 支持下标索引 4. 允许重复字符串存在 5. 不可以修改 (增加或删除元素等) 6. 支持for和while循环 字符串的下标索引 # 字符串的下标索引 从前向后&#xff0c;下标从0开始 从后向前&#xff0c;下标从-1开始…...

MySQL数据 - 索引

MySQL数据库 - 索引 1:什么是数据库索引?2:都有哪些类型的索引呢?3:MySQL数据库每种索引的底层实现原理,每种索引为什么这么实现?4:上面索引实现基本上是B+树,为什么不用别的数据结构呢?4-1:那为什么不是二叉树呢?4-2:为什么不是红黑树呢?4-3:为什么不是哈希索引…...

长安链BaaS服务平台调研

目录 一、菜单功能二、其他说明2.1、服务平台的部署方式2.2、链本身2.3、建链流程2.4、支持连接已部署的链2.5、链治理投票2.6、支持动态节点操作2.7、支持应用 长安链ChainMaker管理平台文档地址&#xff1a;https://docs.chainmaker.org.cn 一、菜单功能 菜单子菜单/功能点…...

怎么关闭php错误提示?两者方法分享

PHP程序员在开发过程中经常会遇到各种错误。为了方便查错&#xff0c;PHP默认会输出错误提示。但在生产环境中&#xff0c;这些错误提示信息不仅可能暴露你的代码结构&#xff0c;还会影响网站的性能和安全性。因此&#xff0c;关闭 PHP 的错误提示信息是一个很有必要并且很简单…...

Android Aidl跨进程通讯(三)--进阶使用

学更好的别人&#xff0c; 做更好的自己。 ——《微卡智享》 本文长度为2478字&#xff0c;预计阅读6分钟 前言 Android的AIDL使用和异常报错都已经介绍过了&#xff0c;今天这篇还是在原来的Demo基础上加入几个AIDL的进阶使用方法。 】 AIDL进阶使用 微卡智享 in,out,inout的使…...

vue.js+nodejs家庭个人理财收支管理系统5x6nf

本收支管理系统以vue.js作为框架&#xff0c;nodejs语言&#xff0c;B/S模式以及MySql作为后台运行的数据库。本系统主要包括以下功能模块&#xff1a;用户管理、收入分类、支出分类、每日收入、每日支出等模块。 本文的组织结构如下&#xff1a; 1、绪论。综述了本文的研究背景…...

怎样去掉win11快捷方式的小箭头

前有创造注册表新值的方法,现在有了注册表加文件的方法 开始 先下载这个文件,里面有要用到的信息 下载 保存文件到电脑,并解压 有两个文件, 一个是 Remove_shortcut_arrow_icon.reg 一个是blank.ico 把第二个文件移动到 C:\Windows 文件夹, 然后点击打开文件, 如果提示是…...

Django项目如何配置日志文件信息

1、以dict的方式配置在settings.py中 # 日志文件简单配置LOGGING {"version": 1,"disable_existing_loggers": False,"handlers": {"file": {"level": "DEBUG","class": "logging.FileHandler&…...

遇到一个异步任务后是否会直接加入到异步队列当中

在javascript中&#xff0c;异步任务不会立即加入到异步队列&#xff08;任务队列&#xff09;中&#xff0c;而是根据不同的异步操作类型和执行环境&#xff0c;将对应的回调函数函数或事件加入到不同的队列中 javascript中常见的异步操作包括&#xff1a; 定时器&#xff1…...

SUSE Linux文件系统在线扩容

前几天巡检发现&#xff0c;SUSE 12文件系统/vg01下面的某个文件空间不足&#xff0c;挂载点是/oracle,容量不够&#xff0c;需要进行扩容。 新的空间是从一台HP的存储上新映射的。由于映射的LUN是从windows主机上回收&#xff0c;然后直接映射的&#xff0c;所以在linux识别新…...

智能电话机器人的出现,能够解决哪些问题?

经济的繁荣与高速的发展&#xff0c;使得电销这个方式快速地融合在房地产与金融投资等大部分行业上。在电销人员与客户的沟通上&#xff0c;难免会出现很多问题&#xff0c;毕竟所面对的客户都是各行各业&#xff0c;他们有着不同的经历和身份。 对于时常需要处理客户投诉、安…...

16-数据结构-图的存储结构

简介&#xff1a;主要为图的顺序存储和链式存储。其中顺序存储即邻接矩阵的画法以及代码&#xff0c;邻接矩阵又分为有权图和无权图&#xff0c;区别就是有数据的地方填权值&#xff0c;无数据的地方可以填0或者∞&#xff0c;而有权图和无权图&#xff0c;又细分为有向图和无向…...

递推算法及常见示例(C++、Python实现)

递推算法及常见示例&#xff08;C、Python实现&#xff09; 递推算法是一种用若干步可重复运算来描述复杂问题的方法&#xff0c;它是一种序列计算中的常用算法。通常是通过计算前面的一些项来得出序列中的指定项的值。其思想是把一个复杂的庞大的计算过程转化为简单过程的多次…...

vscode调试程序设置

主要设置和json内容如下&#xff1a; cpp_properties.json内容&#xff1a; {"configurations": [ //C intellisense插件需要这个文件&#xff0c;主要是用于函数变量等符号的只能解析{"name": "Win32","includePath": ["${work…...

电商邮件营销攻略:教你如何有效运营邮件营销策略!

作为一种领先的营销渠道&#xff0c;电子邮件营销已被电子商务公司作为推动客户参与度、促进销售和提高ROI的不可或缺的方式。在这篇文章中&#xff0c;我们将深入探讨电子商务公司为什么要做EDM邮件营销&#xff1f;以及电商公司怎么做邮件营销&#xff1f; 一、电子商务公司…...

centos+jenkins+pycharm

思路&#xff1a;架构 一. 在centos上搭建jenkins环境 二. pycharm与gitee建立连接 三. 访问jenkins&#xff0c;添加任务 3.1 添加一个自由风格的任务 3.2 添加git项目路径及访问git的账号和密码 3.3 执行start.sh脚本 四. 浏览器访问jenkins执行任务...

Linux-Centos7安装Docker

文章目录 一、前言二、Docker安装1、Docker及系统版本2、Docker的自动化安装3、Docker手动安装3.1、卸载Docker&#xff08;可选&#xff09;3.2、设置源仓库3.3、Docker安装3.4、Docker启动3.5、验证是否安装成功3.5.1、拉取镜像3.5.2、查看镜像3.5.3、运行镜像 3.6、删除Dock…...

树莓派Pico上使用Blinka兼容层调用CircuitPython传感器库

1. 项目概述与核心价值如果你手头有一块树莓派 Pico&#xff0c;正在用 MicroPython 开发&#xff0c;但眼馋 CircuitPython 生态里那海量且维护良好的传感器驱动库&#xff0c;比如 Adafruit 官方出品的那些&#xff0c;那么你肯定想过&#xff1a;能不能直接在 MicroPython 里…...

长期使用Taotoken聚合API对项目运维复杂度的简化感受

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 长期使用Taotoken聚合API对项目运维复杂度的简化感受 作为项目维护者&#xff0c;我们团队在过去一段时间里&#xff0c;将多个大模…...

WebToEpub:3分钟将网页小说转为专业EPUB电子书的完整指南

WebToEpub&#xff1a;3分钟将网页小说转为专业EPUB电子书的完整指南 【免费下载链接】WebToEpub A simple Chrome (and Firefox) Extension that converts Web Novels (and other web pages) into an EPUB. 项目地址: https://gitcode.com/gh_mirrors/we/WebToEpub 还在…...

终极指南:Seal中Kotlin协程上下文组合的实用技巧

终极指南&#xff1a;Seal中Kotlin协程上下文组合的实用技巧 【免费下载链接】Seal &#x1f9ad; Video/Audio Downloader for Android, based on yt-dlp 项目地址: https://gitcode.com/gh_mirrors/se/Seal Seal是一款基于yt-dlp的Android音视频下载器&#xff0c;在其…...

什么是大模型:概念、分类与当前主流模型全梳理

什么是大模型&#xff1f; 大模型&#xff0c;通常指的是参数规模很大、训练数据很多、具备较强通用能力的人工智能模型。它之所以叫“大”&#xff0c;通常体现在几个方面&#xff1a; 第一&#xff0c;参数量大。 从早期的几千万、几亿参数&#xff0c;发展到几十亿、上百亿&…...

人生的本质的庖丁解牛

它的本质是&#xff1a;人生是一个 向死而生 (Being-towards-death) 的 耗散结构 (Dissipative Structure)。它在时间轴上从 低熵 (有序/出生) 滑向 高熵 (无序/死亡)&#xff0c;期间通过 消耗能量 (资源/注意力) 来维持暂时的 负熵 (秩序/成长)。在这个过程中&#xff0c;个体…...

SpringBatch学习

/*** 示例一&#xff1a;Tasklet 方式*/ Configuration EnableBatchProcessing public class TaskletBatchConfig {private static final Logger logger LoggerFactory.getLogger(TaskletBatchConfig.class);Autowiredprivate JobBuilderFactory jobBuilderFactory;Autowiredp…...

S19|MCP 与插件:多 Agent 平台 —— 外部能力总线,让外部工具安全接入

在前十八章&#xff0c;我们的 Agent 已经拥有完整的内部能力体系&#xff1a;循环、工具、计划、子代理、技能、压缩、权限、Hook、记忆、提示词流水线、错误恢复、任务系统、后台任务、定时调度、多 Agent 团队、团队协议、自主代理、Worktree 隔离&#xff0c;所有工具都写在…...

Sora 2 + Premiere = 新一代“AI剪辑OS”?深度拆解其MediaCore架构、Timeline Graph API及动态权重调度算法

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Sora 2 Premiere 新一代“AI剪辑OS”&#xff1f;概念演进与范式重构 传统视频编辑正经历一场静默但深刻的底层迁移——当 Sora 2 的原生时空建模能力与 Adobe Premiere Pro 的专业时间线引擎深度耦合…...

Arm架构在中国市场的机遇、挑战与实战指南

1. 项目概述&#xff1a;Arm架构的“中国故事”与我的观察最近几年&#xff0c;在技术圈和投资圈里&#xff0c;“Arm架构”和“中国市场”这两个词的组合热度一直居高不下。作为一名长期关注处理器架构和产业生态的从业者&#xff0c;我几乎每周都能在行业交流、客户会议甚至供…...