目标:
创建包含性能测试流程的持续交付管道, 以尽早检测任何与性能相关的问题。
通常,全面的性能测试将在分段/预生产环境中完成,该环境可能与您的生产环境相同。在完成QA功能/回归验证后,将代码推送到分段。因此,即使QA对构建进行了认证,代码也可能无法在特定负载下按预期工作,而这些负载只能在Staging环境中找到。此性能问题需要再次进行代码更改 - >构建 - > QA验证,这可能会推迟您的生产推送!
那么,我们能否将性能测试融入现有的持续开发和测试流程中,以尽早发现性能问题?
是! 我们绝对可以!这里的想法是在较低的环境[Dev / QA]中运行性能测试(我们可能必须相应地调整负载)并将结果与??某些基线指标进行比较。请注意,这不会取代我们将在Staging环境中执行的全面性能测试。
让我们看看如何使用JMeter + Ant + Jenkins在本文中实现上述过程。
创建性能测试脚本:
- 使用JMeter创建一些基本的性能测试脚本。
- 查看TestAutomationGuru下面的有用文章。
- 创建模块化JMeter测试脚本。
- 确保脚本可以在QA / PPE / Staging等任何给定环境中运行。[点击此处 ]
- 我将考虑一个简单的JMeter测试,它将登录,搜索产品并注销。
- 我在Thread Count,Ramp Up和Duration字段中使用了变量。
- 在运行时,我们将从Jenkins传递这些变量的值。
- 要在设计模式/独立模式下运行测试,我们使用此处所示的用户定义变量。因此,它采用默认值(例如1个用户,1秒钟加速,持续5秒测试持续时间)。
- 确保脚本运行正常。
使用ANT运行JMeter测试:
ANT:它是一个构建工具 - 在这里我们将使用ANT以给定的顺序执行一组任务。例如:
- 通过删除临时文件来清理项目以进行新测试。
- 通过将测试属性从Jenkins传递给JMeter来运行测试。
- 创建报告
- 创建图表
完成构建和单元/集成测试后,您将调用这些任务。
安装ANT:
- 从这里下载Ant 。
- 将下载的文件解压缩到目录中。
- 设置环境变量
- JAVA_HOME到你的Java环境
- ANT_HOME到你解压缩Ant的目录
- 将$ {ANT_HOME} / bin(Unix)或%ANT_HOME%/ bin(Windows)添加到PATH。
- 如果您没有JMETER_HOME变量,请同样设置。它应该指向你看到‘bin‘的JMeter文件夹
- 在cmd提示符/终端中,键入ant 并输入如下所示。您应该看到以下消息(系统应该知道有‘ant‘命令)
创建ANT-JMeter项目:
现在我们将创建一个ANT项目,如下所示。[我在GitHub中分享了这个示例项目]
测试文件夹将包含您的.jmx文件
lib文件夹将包含ant-jmeter任务所需的所有库以及要包含在jmeter测试中的任何其他库。
函数文件夹将包含测试的所有beanshell脚本。
build.properties 一个属性文件,它将传递JMeter UDV的值。
ANT构建文件:
这是一个重要的部分。Ant需要一个build.xml文件(它不一定是‘build.xml‘ - 但这是一个默认的名称,蚂蚁会期望),你需要定义所有的任务。
让我们创建一个build.xml文件,如下所示。[我在GitHub中分享了这个示例项目]
我们这里有3个目标。
- 清理 - >清理作为测试一部分创建的临时文件夹
- show-test-properties - >显示我们传递给测试的值
- run - >运行jmeter测试
现在在命令提示符/终端中,转到项目文件夹并键入“ ant show-test-properties ”。你应该看到下面的输出。
ANT:运行JMeter测试:
让我们通过发出命令来运行测试:
蚂蚁跑
现在我们可以看到我们已经创建了日志和结果文件。
创建HTML报告:
运行以下命令以在输出文件夹下生成HTML报告
ANT生成报告
ant控制台日志:
报告:
创建图表:
上面的HTML文件本身有很好的图表。但是,您仍然可能希望通过命令行创建图表以通过电子邮件/冗余等发送。
要创建图表,我们需要很少的外部插件。
运行以下命令以安装所需的插件。
ant install-plugins
安装插件后,通过发出命令生成图表:
ANT生成图表
作业完成后,我们可以看到生成的所有图表都生成并放在结果文件夹下。
ANT - 按顺序运行所有任务:
通过发出命令运行所有ant任务:ant all
示例项目:
- 您可以从此处克隆此示例项目。
- 我正在为JMeter测试分配5GB内存。您可以在build.properties中根据需要修改该值
有问题吗?
- 我看到读者的一些评论,即JMeter任务不是由Ant执行的。如果可能,请升级Java和Ant。[某些版本的Java 8和ant没有相处]
- 如果它仍然不起作用,请执行以下任务命令以启用ant以向我们提供更多调试信息。
ant -v run
摘要:
现在,我们将能够通过从属性文件传递测试属性来通过ANT运行我们的JMeter测试。我们还自动创建HTML文件并从结果文件创建图表。
我们将在下一篇文章中看到如何从Jenkins调用此测试。
原文地址:https://www.cnblogs.com/a00ium/p/10381297.html