让开发自动化: 自动负载测试(2)

发表于:2011-11-23来源:未知作者:领测软件测试网采编点击数: 标签:自动负载测试
JMeter 也提供了一个不太详细的 XSL 样式表文件,用于总结负载测试的结果。 在 HTML 中显示报告 图 2 是一个使用清单 3 中的 xslt 任务生成的 HTML 报告的例子

  JMeter 也提供了一个不太详细的 XSL 样式表文件,用于总结负载测试的结果。

  在 HTML 中显示报告

  图 2 是一个使用清单 3 中的 xslt 任务生成的 HTML 报告的例子。它显示了每个运行的负载测试,以及测试状态、时间和所有测试的聚合状态和时间。

  图 2. 生成 JMeter HTML 报告

生成 JMeter HTML 报告

  稍后我将在本文中向您展示如何从 CruiseControl Continuous Integration (CI) 服务器(请参阅 参考资料)中显示这些报告。

  向 JMeter 传递参数

  根据您运行的测试类型,您可能想要传递参数和属性,以改变单个测试或一组测试执行的方式。例如,清单 4 展示了如何增加 JVM 内存并指定线程和循环的数量:

  清单 4. 向 JMeter 传递可选参数和属性

  

  jmeterhome="${jmeter.home}"

  resultlog="${basedir}/target/JMeterResults.xml">

  

  

  

  

  

  

  

  

  

  可以使用很多内置的其他参数和属性来修改 JMeter 测试运行的方式(有关详细信息,请参阅 参考资料)。

  在执行负载测试的方式上,使用参数和属性提供了一定的灵活性,但是它不能解决如何在不同的目标环境中运行负载测试的问题,比如测试和验证环境。要向测试计划添加特定于环境的信息,您需要在 .jmx 文件中放入一些记号,以便当负载测试在自动构建脚本中运行时可以对 .jmx 文件进行过滤和修改。

  及时负载测试

  使用自动构建运行负载测试时,将其安排为按某个周期运行,比如每晚运行一次。您可以使用 CI 或构建管理服务器来实现。

  安排 CruiseControl 每天运行负载测试

  使用 CI 服务器的目的在于,只要向项目的版本控制存储库应用了更改,就运行一个自动构建。您也可以将其配置为按特定次数运行构建。由于负载测试通常需要较多的计算资源,在这些资源未被占用时运行测试(例如深夜或清早)会比较好。

  在 清单 5 中,一个自动构建被安排在晚上 11:00 点 (2300) 使用 CruiseControl(请参阅 参考资料)运行。您可以修改 CruiseControl 配置文件,以使用一个特定的 Ant 目标运行一个委托构建,比如一个给定的 run-load-tests 构建。

  清单 5. 使用 CruiseControl 运行预定的负载测试

  ...

  

  

  

  

 

 

 

 

 

 

  ...

  通过将负载测试安排在晚上运行(如清单 5 中一样),您将不会听到有关加班、休假或忘记运行测试等借口 — 它们会自动运行。

  在 CruiseControl 中显示报告

  您已经看到了如何使用 Ant 显示 JMeter 测试报告。但是,JMeter 报告只能与单个机器上的一个开发人员通信。负载测试会影响整个应用程序,所以整个团队都会希望看到结果。好处在于,您可以轻松配置您的 CI 服务器,以显示这些报告。因为已经使用 Ant 生成了这些报告,所以只需要使 JMeter HTML 报告可以从 CruiseControl 项目仪表板访问。您可以向 CruiseControl 的 config.xml 文件添加几行代码来实现这个目的,如清单 6 所示:

  清单 6. 配置 CruiseControl 来显示 JMeter 报告

  

  ...

  

  

  

 

 

 

 

 

 

  ...

  

 

 

 

 

 

 

  现在,团队中的每个人都可以(真正地)共享这些信息了。很多其他 CI 和构建管理服务器也提供类似的报告集成功能。

  结束语

  在本文中,我展示了如何向您的开发工具箱添加自动化负载测试。通过使用自动构建运行负载测试,然后将测试安排为定期运行,您可以在系统容量问题出现之前及时发现它们。这种方法使得评估架构和数据更改的影响变得更加容易。当与本文章 系列 中描述的其他技术结合使用时,开发团队常常能够交付更高质量的软件。

原文转自:http://www.ltesting.net