JMeter - 连续性能测试 - JMeter + ANT + Jenkins集成 - 第2部分
目标:
创建包含性能测试流程的持续交付管道,以尽早检测任何与性能相关的问题。
通常,全面的性能测试将在分段/预生产环境中完成,该环境可能与您的生产环境相同。在完成QA功能/回归验证后,将代码推送到分段。因此,即使QA对构建进行了认证,代码也可能无法在特定负载下按预期工作,而这些负载只能在Staging环境中找到。此性能问题需要再次进行代码更改 - >构建 - > QA验证,这可能会推迟您的生产推送!
那么,我们能否将性能测试融入现有的持续开发和测试流程中,以尽早发现性能问题?
是! 我们绝对可以!这里的想法是在较低的环境[Dev / QA]中运行性能测试(我们可能必须相应地调整负载)并将结果与某些基线指标进行比较。请注意,这不会取代我们将在Staging环境中执行的全面性能测试。
注意:如果您还没有阅读这篇文章 - 我建议您阅读本文中关于JMeter + Ant集成的第1部分。
Jmeter安装:
请查看 此链接,了解在各种操作系统上安装Jenkins的详细步骤。
创建Jenkins工作:
- 创建一个简单的自由风格项目。
- 构建步骤应该是' Invoke Ant '
[我们将使用默认Ant,假设从机已经安装了Ant。如果没有,让jenkins自动安装ANT。]
- 我们将调用目标' all '作为目标'all'在我们想要执行的任务下执行。
- 清洁
- 节目试验性能
- 跑
- 生成报告
- 产生,图表
- 我们的测试使用以下属性。我们将通过Ant将这些属性的值从Jenkins传递给JMeter,如上所述。
- threadgroup.count
- threadgroup.rampup
- threadgroup.duration
- 我们的项目文件夹位于C:/ workspace / CPT下。所以相应地设置自定义工作区。
- 我们的测试在结果文件夹下创建结果。我们需要存档我们需要的文件,如下所示。要归档结果下的所有文件,请使用result \ *。*
注意:Jenkins将在工作区下查找文件。因此,设置相对于工作空间的路径。
从Jenkins调用JMeter测试:
- 如果上述所有步骤都已正确完成,单击“Build”将运行jmeter测试。我们可以看到一个很好的输出,如下所示。它运行3个用户的测试,3秒作为加速期100秒。
- 测试运行完成后,Jenkins将所有文件归档到结果文件夹下。它包括我们创建的HTML文件+ PNG图表。它存档每次运行的结果,并将它们存储在jenkins运行的服务器中。
- 我们可以让我们的团队成员在Jenkins UI中输入这些值,而不是使用硬编码的测试属性。为了使它工作,我们需要使这个工作参数化并让我们创建3个参数,因为我们的测试需要运行3个参数。我们也可以为这些参数设置默认值。
- 修改Build - > Properties部分以使用我们创建的Jenkins参数。此步骤是必需的,因为Ant期望这些变量'threadgroup.count'等的值。[你也可以通过这样创建jenkins参数来避免这一步:代替USER_COUNT,我们可以创建threadgroup.count作为Jenkins参数名称。]。由于Jenkins参数和Ant参数不同,我们应该如下图所示。
- 就是这样 - 现在,我们应该能够直接从Jenkins UI传递JMeter测试所需的参数值。输入一些值,然后单击Build。控制台将显示传递给测试的新值,JMeter将相应地运行测试。下面的输出显示JMeter调用5个线程。
Jenkins-Performance插件:
Jenkins有一个JMeter插件,用于解析结果文件,创建聚合报告,创建图表以及将当前结果与之前的结果进行比较等。
您可以在此处找到有关插件的更多详细信息。
[注意:只有当结果以XML格式存储时,此插件才会解析结果文件。如果您更喜欢使用CSV格式,它将无法正常工作]
安装插件后,对于Jenkins Job,我们可以在Post build actions下找到“ Publish Performance test results report ” 。在“报告文件”部分中,提供输出jtl文件的相对路径(到工作空间)。
- 当我们多次运行测试时,我们可以看到Jenkins开始将性能测试的结果与之前的测试进行比较,并显示了很好的摘要输出。[ 在下面的摘要中你会看到很多0作为响应时间, 因为我在这个演示中使用了一个调试采样器,它不需要时间来执行。响应时间图表显示了一个starighline,因为它在我的测试中总是为0。
- 要获得有关每个采样器的更多详细信息,请单击采样器。Jenkins将为每个采样器提供响应时间图表,如下所示。它还以表格格式显示数据以及HTTP响应代码,这很好!!
通过结果:
Jenkins有一个很好的插件可以通过电子邮件发送结果。请查看此链接以获取更多详细信息。
安装插件后,您可以找到帖子构建操作' 可编辑电子邮件通知 '
- 在可编辑电子邮件通知的触发器下 ,我们将触发器设置为“始终”[始终 - >是否测试失败。您也可以更改触发器,以便仅在测试通过时发送邮件等]
- 一旦JMeter运行测试,后构建操作将按照它们在Jenkins作业/项目配置中的顺序连续执行。因此,当执行此“post build action”时,结果文件已经在结果文件夹下创建。我们可能希望将HTML文件包含在电子邮件正文中并附加图像。[如果您不想在电子邮件正文中使用HTML或使用TXT格式,请附加HTML文件以及附件和图像]
- 下面的屏幕截图将介绍发送邮件的基本配置。[我假设您已经设置了电子邮件服务器配置,或者您的Jenkins管理员会这样做]
- 让我们再次运行我们的测试,看看Jenkins是否可以在运行测试后为我们发送结果。
- 并且..是的....我收到了这里显示的电子邮件!
- 所有图表文件也附在收到的电子邮件中。
摘要:
通过将JMeter与Ant和Jenkins集成,我们做得很好。因此,实施了连续性能测试过程 设置。我们也可以通过在Jenkins中单击一下来运行测试。当您专注于其他任务时,Jenkins负责运行测试,创建结果并为您发送结果!它还减少了对性能测试人员的依赖。是..!!任何人都可以立即进行测试。您只需要共享您创建的Jenkins作业的链接。
我们还可以将这项工作与Jenkins的“开发部署”工作集成在一起 - 也就是说......无论何时将代码推送到给定的测试环境,此工作都会自动执行,无需任何人工干预。任何功能测试和性能测试都可以尽早完成,以便及早发现任何问题!!
Grafana实时实施结果:
JMeter-Jenkins集成,通过电子邮件发送结果非常棒!! 但是如果你注意到,为了得到结果,我们需要等待测试完成。当詹金斯正在进行测试时,看到结果会不会很棒!! ??
如果你像我一样有一个长时间运行的测试,你很想看到当Jenkins正在运行测试时看到当前的结果 - 请查看我最喜欢的帖子之一来获得实时结果。
JMeter - 连续性能测试 - JMeter + ANT + Jenkins集成 - 第2部分的更多相关文章
- Meter - 连续性能测试 - JMeter + ANT + Jenkins集成 - 第1部分
目标: 创建包含性能测试流程的持续交付管道, 以尽早检测任何与性能相关的问题. 通常,全面的性能测试将在分段/预生产环境中完成,该环境可能与您的生产环境相同.在完成QA功能/回归验证后,将代码推送到分 ...
- 使用jmeter进行性能测试-Jmeter教程及技巧汇总 (转)
http://www.jmeter.cf/loadtesting-jmeter.html 为什么使用jmeter, 它免费开源, 不断发展, 功能逐渐强大. 可以做功能,负载, 性能测试.一套脚本可以 ...
- Jmeter+ant+jenkins集成
已有jmeter.*.jmx脚本 一.jmeter+ant 1.下载安装ant(检查是否安装成功) 2.将 JMeter 所在目录下 extras 子目录里的 ant-JMeter-1.1.1.jar ...
- Jmeter+Ant+Jenkins集成抛出异常java.lang.ClassNotFoundException: javax.mail.internet.MimeMessage
一.问题描述 二.解决方法 下载javax.mail.jar插件,并将该插件放到%ANT_HOME%\lib目录下即可解决,下载地址:https://javaee.github.io/javamail ...
- selenium+testng+reportng+ant+jenkins集成日记
1.新建一个项目 2.编写测试脚本 3.配置ant的build.xml脚本 4.集成到jenkins,并运行 1.新建项目 注意jdk的版本要一致 eclipse Window --Prefer ...
- Jmeter(二十七)Jmeter Question 之“集成Ant+Jenkins自动化”
首先介绍一下Ant.Apache Ant,是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发.由Apache软件基金会所提供. 是的.还是Apache家 ...
- Jmeter Question 之“集成Ant+Jenkins自动化”
首先介绍一下Ant.Apache Ant,是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发.由Apache软件基金会所提供. 是的.还是Apache家 ...
- Jmeter + Ant + Jenkins 接口/性能测试,持续集成环境搭建
1. 安装Jmeter.jdk Jmeter 3.3版本 :<http://note.youdao.com/noteshare?id=5e3fd287db24d08386207a7de22d26 ...
- 【此处有干货~】jmeter+ant+jenkins持续集成配置及过程中问题解决思路
本人是一枚工作近三年的小测试,大学正好专业为软件测试,在工作中用到最多的是功能测试.接口测试.压力测试.偶尔会涉及到性能测试......(小白,很多观念技术跟大佬差距太大,勿喷) 在接口测试过程当中, ...
随机推荐
- bzoj 1355: Radio Transmission
题目大意: 求字符串的最短循环覆盖字符串 题解: 经典结论题: kmp \(ans = n - next[n]\) #include <cstdio> #include <cstri ...
- bzoj 2002: 弹飞绵羊 Link-Cut-Tree
题目: Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置, ...
- BZOJ1217:[HNOI2003]消防局的设立
我对贪心的理解:https://www.cnblogs.com/AKMer/p/9776293.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem ...
- from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import Select Select(d.find_element_by_id(u'key_开户行')).first_sele ...
- DSP基础
CCS V5的使用 CCS安装与设置
- binlog之二:怎么样安全删除mysql下的binlog日志
删除binlog方法 第一种方法: mysql> show binary logs; 查看mysql bin-log日志,除了这个以外的,其它都可以使用删除.mysql> purge bi ...
- uva 512
1. 问题 不知道怎么存储操作 看代码注释,else if等 2. 代码 #include <iostream> #include <stdio.h> #include < ...
- String/ StringBuilder/ StringBuffer
1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. 2. ne ...
- [poj2135]Farm Tour(最小费用流)
解题关键:最小费用流 代码一:bellma-ford $O(FVE)$ bellman-ford求最短路,并在最短路上增广,速度较慢 #include<cstdio> #include& ...
- 15. CTF综合靶机渗透(八)
VM Name: BlackMarket VM Description: BlackMarket VM presented at Brisbane SecTalks BNE0x1B (28th Ses ...