BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

通过JMeter和Ant实现自动负载测试

| 作者 Alexander Olaru 关注 0 他的粉丝 ,译者 张凯峰 关注 1 他的粉丝 发布于 2008年4月26日. 估计阅读时间: 5 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!
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任务,比如"<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>",然后从Ant运行JMeter的负载测试。Duvall提供了一个在BreweryTestPlan.jmx文件(测试计划的XML格式)中定义的测试搭建示例:

<jmeter
  jmeterhome="${jmeter.home}"
  resultlog="${basedir}/target/JMeterResults.xml">
  <testplans includes="BreweryTestPlan.jmx" dir="${basedir}/tests/load">
  </testplans>
</jmeter>

3. 通过XSLT和HTML修饰测试结果报告。Duvall接着演示了测试的输出结果——JMeterResults.xml——它可以通过JMeter的extras目录中提供的XSLT脚本将该结果转换成HTML报告。生成的报告上显示了每次负载测试运行的结果,包括测试状态、时间、集合状态以及所有测试花费的时间。

4. 定制JMeter测试。运行测试的方式可以通过修改参数和属性来进行定制。为了让测试适应特定环境的需求(比如测试或者分段),用户可以在.jmx文件中标记一些记号,然后在运行该测试之前,根据环境需要对这些记号进行过滤和修改。Duvall还演示了如何增加JVM内存并指定线程和循环的数目。

5. 在CI环境中集成JMeter测试。Duvall提供了一个与持续集成服务器CruiseControl集成的例子:在每天上午11点时运行build:
...
<modificationset>
  <svn repositorylocation="${svnrepo.location}">
  <timebuild time="2300"/>
...
  </svn>
</modificationset>

如果在CruiseControl的config.xml文件中添加几行适当的代码,JMeter的测试结果报告就可以在CruiseContrl项目的dashboard中看到。

Krik Pepperdine在InfoQ上的文章迭代、自动化和持续性能Iterative, Automated and Continuous Performance)中谈及了持续性能[测试](Continuous Performance),Steve Haines的持续性能管理continuous performance management presentation,可下载ppt)中也涉及到了这个话题。

查看英文原文:Hands-off Load Testing with JMeter and Ant

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT