由于这个问题仍然悬而未决,所以我不妨考虑一下。
好消息是,在过去的5年左右的时间里,开放源代码工具已经真正成熟并在太空中流行起来,坏消息是其中有很多这样的工具。
这是我的想法:
Jmeter vs磨床
Jmeter由XML样式规范驱动,该规范是通过GUI构造的。
Grinder在多线程Java框架内使用Jython脚本,因此更加面向程序员。
两种工具都将处理HTTP和HTTPS,并具有代理记录器以帮助您入门。两种工具都使用Controller模型来驱动多个测试代理,因此可伸缩性不是问题(允许访问云)。
哪个更好:-
当您遇到URL重写,关联,为每个虚拟用户提供唯一数据并模拟首次或返回用户(通过操作HTTP标头)的更复杂的脚本要求时,这两种工具的学习曲线都是艰难的。
就是说,我将从Jmeter开始,因为该工具拥有大量关注者,并且网络上有许多使用此工具的示例和教程。如果而且当您遇到“路障”时,使用Jmeter无法轻松地做到这一点,那么请看一下Grinder。好消息是这两个工具都具有相同的Java要求,而且“混搭”解决方案也不是没有问题。
要添加的新内容–运行多个Selenium WebDriver实例的无头浏览器。
这是一种相对较新的方法,因为它依赖于现在可以从云中配置的资源的可用性。通过这种方法,Selenium(WebDriver)脚本可以在多个线程的无头浏览器(即WebDriver = New HtmlUnitDriver())驱动程序中运行。
根据经验,可以从Amazon M1 Small Instance执行大约25个“无头浏览器”实例。
这意味着当您将功能测试脚本重新用作性能测试脚本时,所有相关的url重写问题都会消失。
与HTTP驱动程序(例如Grinder或Jmeter)相比,可伸缩性受到损害,因为需要更多的VM来驱动负载。就是说,如果您希望驱动500个虚拟用户,然后以每小时1.20美元的成本使用20个Amazon Small Instance(每个小时6美分),则您的负载非常接近真实用户体验。