目标:
创建包含性能测试流程的持续交付管道,以尽早检测任何与性能相关的问题。
通常,全面的性能测试将在分段/预生产环境中完成,该环境可能与您的生产环境相同。在完成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正在运行测试时看到当前的结果 - 请查看我最喜欢的帖子之一来获得实时结果。
原文地址:https://www.cnblogs.com/a00ium/p/10381289.html