【性能测试】Jenkins+Ant+Jmeter自动化框架的搭建思路

2023-11-04

前言
前面讲了Jmeter在性能测试中的应用及扩展。随着测试的深入,我们发现在性能测试中也会遇到不少的重复工作。 比如某新兴业务处于上升阶段,需要在每个版本中,对某些新增接口进行性能测试,有时还需要在一天中的不同时段分别进行性能测试,如果一味地采取手动触发的方式,当接口数较多时,就会出现大量重复工作。 这个时候我们应该思考,是否有一种方法,可以定时、批量运行已经设计好的Jmeter脚本,并自动输出测试报告。下面就结合Jenkins+Ant+Jmeter,介绍一种性能测试自动化框架的搭建方法。

自动化框架的搭建思路
思路: Jmeter可以做接口测试,也能做压力测试,而且是开源软件; Ant是基于Java的构建工具,可以跨平台; Jenkins是持续集成工具。 将这三者结合起来可以搭建一套Web HTTP接口性能测试的持续构建环境,实现性能测试自动化。 搭建步骤: 1、在Jmeter主机上安装Ant,Ant用来构建,构建Jmeter的执行、报告的生成等任务; 2、通过Jenkins进行调度Ant,构建测试。测试执行完成后,再通过Jenkins调用Ant生成报告。 下面将分别介绍这两个步骤。

JMeter+Ant集成
1、引入Apache Ant Apache Ant是由Apache软件基金会提供的一个将软件编译、测试、部署等步骤联系在一起的自动化工具,由Java语言开发,所以支持跨平台。 2、Apache Ant的特点

Ant 是最完整的基于 Java 语言开发的构建和部署工具;
Apache Ant构建是通过XML文件来定义的,Ant通过解析这个XML文件,调用target树来执行各种任务;
Ant 擅长自动完成重复任务;
3、Apache Ant构建测试计划 Apache Ant的安装及环境配置大家可自行Google,在此不赘述。构建方法如下。 步骤一: 构建Jmeter测试计划。

步骤二: 将/apache-jmeter-5.1.1/extras目录下的ant-jmeter-1.1.1.jar文件copy到Ant所在/apache-ant-1.9.14/lib目录下。 步骤三: 修改Jmeter的配置文件。 (1)修改原因:

Jmeter执行结果文件默认保存的不是xml格式,无法转化成html格式;
Jmeter执行结果文件中很多数据不保存,但是我们需要在测试报告中体现;
(2)配置文件路径: /apache-jmeter-5.1.1/bin/jmeter.properties (3)修改方法如下图所示:

步骤四: 修改Ant中的配置文件build.xml。 Ant采用xml格式建立构建文件,默认名称是build.xml。原始的build.xml文件路径为:/apache-jmeter-5.1.1/extras。 修改完成,将build.xml文件与Jmeter脚本放在同一个路径下面。 修改方法如下:

 4、批量执行Jmeter脚本 进入jmx脚本目录,执行Ant。进入reports目录查看生成的测试报告

Jenkins+Ant
1、搭建Jenkins Jenkins的安装及配置可自行Google。下面步骤为Jenkins调度Ant进行构建的方法。 步骤一: 下载所需插件。例如:Performance plugin、HTML Publisher plugin、Ant Plugin 等。 步骤二: 配置中添加Jmeter插件:Performance plugin、HTML Publisher plugin。 功能:展示Jmeter执行结果。

 步骤三: 配置中 添加 Ant插件:Ant Plugin。 功能:用来执行Ant

2、修改build.xml文件 修改build.xml文件生成jtl和html文件的目录到Jenkins的工作目录下

 3、项目构建 配置好上述文件及目录,点击立即构建,就可以调用Ant自动执行Jmeter脚本了

性能测试结果

进入html目录查看生成的测试报告。可以看到,报告中给出了样本数、错误率、最大和最小响应时间,并给出出错请求的具体情况,对于接口的性能有一个大概的了解。

 

结束语

当然,目前使用的报告模板中不包含QPS,且性能结果图表较少,可以通过修改build.xml文件扩展输出报告的内容及格式。同时,可以在Jenkins中配置定时自动执行及报告的邮件自动发送,大大扩展的工具。

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【性能测试】Jenkins+Ant+Jmeter自动化框架的搭建思路 的相关文章

  • jenkins构建完成后如何将更改推送到github?

    我有一个 jenkins 作业 它从 github 克隆存储库 然后运行 powershell 脚本来增加文件中的版本号 我现在正在尝试将该更新文件发布回 github 上的原始存储库 因此当开发人员提取更改时 他会获得最新的版本号 我尝试
  • 如何在“构建开始前删除工作区”部分中使用排除文件夹选项?

    我想从删除中排除 node modules 文件夹 但它会删除所有工作区 我已经尝试了很多带有 在目录上应用模式 选项和不使用它的模式 其中一些 node modules node modules 我也发现了一个问题https issues
  • `env.BRANCH_NAME` 变为 `PR-1`

    我们使用 Jenkins 管道和 Github Multibranch 我在一个名为的功能分支上工作feature my1stfeature Jenkins 作业返回正确的分支名称 println env BRANCH NAME 回feat
  • Maven 不能在 jenkins 上运行(但可以通过 eclipse 和命令行运行)

    我有一些 CI 测试 全部在 Maven 中进行 当我在本地 Windows 10 的 Eclipse 中运行它们以及通过 ec2 Linux 服务器中的命令行运行它们时 构建成功 仅当我从 Jenkins 构建相同的项目时 我会收到以下错
  • 如何调试 Jenkins 作业中无法运行程序“C:\Program Files\Git”?

    我正在使用 jenkins 构建我的 git 项目 这是我在查看日志时收到的错误 我在 jenkins 中使用 git 插件 您将如何解决该错误消息 Started by user anonymous Building in workspa
  • 詹金斯可以在构建操作之间添加睡眠时间吗?

    我正在 Jenkins 中启动 JBoss 服务器作为构建操作 下一个操作将运行一组测试 我需要在两个操作之间添加睡眠时间 有谁知道如何轻松做到这一点 可以使用sleep进入 Jenkins 管道 该步骤包含在管道 基本步骤 https p
  • 使用 Jenkins Git 插件中的 SSH 密钥在构建期间运行 Git 命令

    我们在 Jenkins 上的构建作业作为发布构建的一部分运行一些 git 命令 例如 git push 和 git pull 因此需要一种在构建期间从 shell 运行经过身份验证的 git 命令的方法 我们的詹金斯奴隶不持有任何凭证 因为
  • BitBucket+Jenkins:仅在特定分支更改时触发构建

    以下是该问题的据称解决方案 尽管它看起来确实是一种解决方法 而不是最终的解决方案 有没有一种方法 通过作业配置或 bitbucket 挂钩配置 我可以将作业设置为仅在推送到特定分支时运行构建 是否可以仅从一个特定分支触发 Jenkins h
  • 使用 jenkins.Creating .apk 文件生成 android 版本

    我正在使用 Jenkins 在 mac 上持续集成 android 应用程序 但是我无法使用 Jenkins 生成 apk 文件 就像我们在 iOS 应用程序中创建 ipa 一样 创建用于在 mac 上分发的 apk 文件的配置是什么 您可
  • 如何删除 TFS 工作区映射?

    我在一个团队项目中的 tfs 中有一个项目 然后我们将该项目移动到另一个团队项目中的不同位置 我已将 Jenkins 配置为连接到团队项目并构建我的解决方案 但是当我更改设置以连接到新的 tfs 团队项目时 出现以下错误 workspace
  • 如何将参数从jenkins传递到selenium

    我正在使用詹金斯和硒 我需要将测试 url 从 jenkins 发送到 selenium 服务器 在常规选项卡下 詹金斯字符串参数 Name APP Default Value http localhost basecode 在构建后操作下
  • Hudson 和电子邮件通知

    我可以覆盖每个作业的 Hudson 设置 系统管理员电子邮件地址 吗 阅读了一些源代码http sorcerer jenkins ci org http sorcerer jenkins ci org and hudson tasks Ma
  • 使用多分支管道触发詹金斯构建标签创建

    我有一个舞台我的詹金斯文件 https github com ryandawsonuk activiti build blob 5d60df0b0e1410f901c64313d90e7aa03054c1df Jenkinsfile L79
  • Jenkins 执行 PowerShell 脚本

    我正在尝试从 Jenkins 运行 PowerShell 脚本 但它似乎完全忽略了执行策略 可以通过直接执行 powershell exe 或使用PowerShell插件 https wiki jenkins ci org display
  • 在 Cloudbees Jenkins 文件夹中设置环境变量

    在我重新安装 Jenkins 和 Cloudbees Free Enterprise 插件后 Jenkins 文件夹中设置的环境变量停止工作并从配置 UI 中消失 但是 它仍然存在于文件系统上的 config xml 中 如下所示
  • 如何使用脚本在 Jmeter 容器中设置变量及其值,例如用户参数

    我需要在 Jmeter 中设置和获取变量以实现 API 自动化 我正在使用 groovy 脚本来实现同样的目的 我可以使用以下代码将键值存储在属性文件中 props put shubhamKey shubhamValue 我不想使用 mai
  • 无法指向 Jenkins 主机上 ~/.ssh 中的 ssh 密钥

    我已经安装了 SSH 代理插件来使用 SSH 身份验证拉取 Git 存储库 我想使用位于系统文件中的 SSH 密钥 来自 Jenkins master ssh选项 这是从官方插件页面截取的屏幕截图 不幸的是我没有看到这个选项 我只能选择 直
  • Jenkins 和 Github 不使用 SSH 密钥

    我已将 Jenkins 设置为从 Github 上的私有存储库中提取特定作业 尽管我已经生成了私钥 公钥并将其作为部署密钥添加到 github 但 Jenkins 似乎并未使用 SSH 密钥 当我从 Jenkins 用户进行 git clo
  • 在docker容器中运行Jenkins有什么优势

    我发现了很多关于如何运行你的博客Jenkins in Docker但没有人真正解释这样做的好处 这是我发现的唯一原因 使用 Docker 的理由 https twasink net 2016 08 01 setting up a jenki
  • 分布式模式下的 JMeter 摘要报告

    我正在分布式模式 2个从站 主站 下运行Jmeter性能测试 在我的测试脚本中我配置了摘要 报告应将一些数据保存到 csv 文件 此文件位置配置有固定名称 reports summary csv 值 当我从主站成功连接到两个从站时 测试在从

随机推荐

  • localStorage.setItem()使用

    localStorage setItem 使用
  • python自测100题

    如果你在寻找python工作 那你的面试可能会涉及Python相关的问题 通过对网络资料的收集整理 本文列出了100道python的面试题以及答案 你可以根据需求阅读测试 python基础 Q1 什么是Python Python是一种面向对
  • Scala学习第一天(十三):映射(可变/不可变Map;Map基本操作)

    学习目标 映射 不可变Map 可变Map Map基本操作 映射 Map可以称之为映射 它是由键值对组成的集合 在Scala中 Map也分为 不可变Map 可变Map 不可变Map 语法 val var map Map 键 gt 值 键 gt
  • Spring @ComponentScan 自定义扫描规则

    Spring ComponentScan 组件中扫描规则使用场景 package org example cap2 config import org springframework context annotation Bean impo
  • Apache Beam简介及相关概念

    文章目录 一 简介 二 基本概念 1 Pipelines 2 PCollection 3 Transforms 4 ParDo 5 Pipeline I O 6 Aggregation 7 User defined functions UD
  • H5 手机键盘兼容

    文章目录 键盘弹起页面表现 ios表现 安卓表现 监听软键盘弹起和收起 ios监听focus blur事件 安卓还可见监听页面高度 获取软键盘高度 通过window visualViewport异步获取 唤起软键盘始终让焦点元素滚动到可视区
  • SQL执行计划的十大参数

    调用分析指令分析sql再进行对应的调优 explaion select 十个参数 id 编号 select type 查询类型 table 表 type 索引类型 possible keys 预测可能用到的索引 key 实际使用的索引 ke
  • css实现垂直居中6,CSS实现水平、垂直居中的6种方式

    1 块级元素和行内元素 2 水平居中和垂直居中 3行内元素的水平居中 1 table 2 设置line height 3 text align center 4 margin 0 auto 5 绝对定位 6 flex弹性盒模型 7 calc
  • Http协议、get和post请求整理

    1 什么是GET 和 POST GET 和 POST 其实都是 HTTP 的请求方法 除了这 2 个请求方法之外 HTTP 还有 HEAD PUT DELETE TRACE CONNECT OPTIONS 这 6 个请求方法 所以HTTP的
  • VMware16 Pro的安装及VMware配置CentOS7虚拟机(快照使用)

    VMware16 Pro下载安装 1 进入官网下载 VMware官网 2 选择资源栏目 点击产品下载 3 找到VMware Workstation Pro进行下载 搜索框搜索 vmware workstation 16 pro for wi
  • mysql中双引号和单引号有什么区别

    mysql中双引号和单引号有什么区别 前2天看到有人问 mysql中双引号和单引号有什么区别 希望大家可以关注下公众号 支持一下 鞠躬感谢 我就直接po代码和截图了 如下 select from employees where last n
  • vue3 + vite npm 组件库开发(一)

    1 创建项目 创建一个普通的vite vue3 项目即可 我这里创建的是ts的项目 js也可 根据自己的使用习惯 2 配置项目 根目录下创建packages目录作为组件的开发包 目录下index ts 作为整个组件库的出口文件 导出组件 i
  • “目标检测“+“视觉理解“实现对输入图像的理解

    提出了GLIPv2 一种基于VL的理解模型 它服务于localization任务 例如 目标检测 实例分割 和视觉语言 VL 理解任务 例如 VQA 图像字幕 论文地址 https arxiv org pdf 2206 05836 pdf
  • 如何利用ProcessOn 做资产管理流程图

    资产管理 是一家公司最重要的管理活动 好的资产管理可以让资源最优化利用 实现资产价值的最大化 可以帮助组织管理和降低风险 同时当需要决策的时候 对资产数据进行分析和评估 也可以帮助做出更明智的决策 如优化资产配置 更新技术设备等 一 资产流
  • 笔记24-1(C语言进阶 程序环境和预处理)

    目录 注 推荐书籍 程序的翻译环境和执行环境 编译和链接 翻译环境 编译 预处理 编译 汇编 链接 运行环境 执行环境 注 本笔记参考 B站up 鹏哥C语言 推荐书籍 程序员的自我修养 程序的翻译环境和执行环境 在ANSI C的任何一种实现
  • 可以同情弱者,别同情弱势!

    大家好 我是北妈 0 最近北妈在重刷 天道 里面提到了一个强势文化 弱势文化的概念 我觉得对生活和职场 感情都有些指导作用 我看影评和各种文章讨论这个的概念比较多 毕竟大家都喜欢谈格局 强弱 今天讨论下如何成为强者 强者是不是应该鄙视弱者
  • C++类与对象:初始化列表(赋值和初始化的区别)

    标题 使用初始化列表的情况 初始化与赋值的区别 构造函数体内部是赋值 初始化列表 const成员变量初始化 自定义类型成员初始化 成员变量的缺省值 临时变量 总结 使用初始化列表的情况 成员变量是const类型 成员变量是引用类型 成员变量
  • 求出最大连续子序列和 暴力算法、分治法、动态规划、贪心算法实现;Leecode 51.最大子序和

    求出最大连续子序列和 问题描述 给定一个整数数组 a 找到一个具有最大和的连续子数组 子数组最少包含一个元素 返回其最大和 这个问题也可转入Leecode 51 最大子序和 来源 力扣 LeetCode 示例 输入 2 1 3 4 1 2
  • MAC /usr/bin/目录下 Operation not permitted的解决

    mac系统下的Rootless机制 让我们在root权限下也不能随心所欲的读写所有路径了 特殊情况下我们需要关闭Rootless时 可尝试如下操作 1 重启按住 Command R 进入恢复模式 打开Terminal 2 键入命令 csru
  • 【性能测试】Jenkins+Ant+Jmeter自动化框架的搭建思路

    前言 前面讲了Jmeter在性能测试中的应用及扩展 随着测试的深入 我们发现在性能测试中也会遇到不少的重复工作 比如某新兴业务处于上升阶段 需要在每个版本中 对某些新增接口进行性能测试 有时还需要在一天中的不同时段分别进行性能测试 如果一味