Stelligent 公司 CTO Paul Duvall 在“人性自动化( Automation for the people )”系列文章中提到,如何把 JMeter 和 Ant 跟持续集成服务器集成到一起,让开发者快速地决断开发的系统在特定负载条件下的行为是否正确,及其是否适应所做的修改。Duvall 首先列举了一些这类测试所能度量的标准:
- 有多少并发用户能够访问你的软件系统?
- 可以加载多少数据而不会导致性能下降?
- 系统的吞吐量需求是怎样的?
- 这些需求的测试周期有多久?
- 如果你能确定并验证每天至少满足一次负载和性能的需求,那会怎样?
Duvall 补充道,CI(持续集成)服务器计划执行的自动化测试每天可以在机器利用率较低的时候运行,同时,这也可以“减少当你依赖个人来配置和运行这些测试时所导致的瓶颈和错误”。他描述了建立这样一个环境所需的主要步骤有:1. 运行 JMeter 并创建一个测试计划。 JMeter 是 Apache 项目,是用来负载功能测试和性能测试的 Java 工具。它同时提供 GUI 和命令行两种调用方式,可以执行由测试计划定义的各种负载测试。它附带的测试计划范例包括 Web 测试计划,FTP 测试计划,Web service 测试计划等等。这些测试计划可以通过 GUI 接口搭建,最后以 XML 格式的保存。这样一来,它将所需配置的值进行参数化,用户因此可以定制运行测试的方式。
2. 使用 Ant 驱动 JMeter 测试。在已经写好的实现的基础上,定义一个JMeter 的Ant 任务,比如"
<pre id="yhqg"><jmeter<br id="d9:v"></br> jmeterhome="${jmeter.home}"<br id="ik2o"></br> resultlog="${basedir}/target/JMeterResults.xml"><br id="s-.d"></br> <testplans includes="BreweryTestPlan.jmx" dir="${basedir}/tests/load"><br id="qc55"></br> </testplans><br id="mvw3"></br></jmeter><br id="pc8v"></br>
3. 通过 XSLT 和 HTML 修饰测试结果报告。Duvall 接着演示了测试的输出结果——JMeterResults.xml——它可以通过 JMeter 的 extras 目录中提供的 XSLT 脚本将该结果转换成 HTML 报告。生成的报告上显示了每次负载测试运行的结果,包括测试状态、时间、集合状态以及所有测试花费的时间。4. 定制 JMeter 测试。运行测试的方式可以通过修改参数和属性来进行定制。为了让测试适应特定环境的需求(比如测试或者分段),用户可以在.jmx 文件中标记一些记号,然后在运行该测试之前,根据环境需要对这些记号进行过滤和修改。Duvall 还演示了如何增加 JVM 内存并指定线程和循环的数目。
5. 在 CI 环境中集成 JMeter 测试。Duvall 提供了一个与持续集成服务器 CruiseControl 集成的例子:在每天上午 11 点时运行 build:
<pre id="ka5e">...<br id="ji1s"></br><modificationset><br id="b:j:"></br> <svn repositorylocation="${svnrepo.location}"><br id="anf3"></br> <timebuild time="2300"/><br id="rpwj"></br>... <br id="kcl7"></br> </svn><br id="tw5y"></br></modificationset>
如果在 CruiseControl 的 config.xml 文件中添加几行适当的代码,JMeter 的测试结果报告就可以在 CruiseContrl 项目的 dashboard 中看到。Krik Pepperdine 在 InfoQ 上的文章迭代、自动化和持续性能( Iterative, Automated and Continuous Performance )中谈及了持续性能 [测试](Continuous Performance),Steve Haines 的持续性能管理( continuous performance management presentation ,可下载 ppt)中也涉及到了这个话题。
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论