Jmeter Webdriver采样器

时间:2015-04-26 06:25:25

标签: selenium-webdriver jmeter performance-testing jmeter-plugins

Jmeter有一个webdriver采样器。我们必须编写脚本。我们有用opkey编写的脚本,这是一种基于selenium的工具。我们可以整合它们吗?这样我们就不必在jmeter中编写脚本了。

1 个答案:

答案 0 :(得分:2)

不熟悉opkey,但是对于除了非常微不足道的负载之外的任何负载测试,Selenium都是一个坏主意:

硒从未用于大规模性能测试。 Selenium及其较新的头像webdriver,为每个用户启动浏览器引擎,然后重放其中的所有用户交互。这非常适合功能测试,因为您在真实的浏览器引擎中执行客户端代码 - 但同时这对性能测试来说是个坏消息。浏览器实例是资源密集型的,并且扩展变得困难且昂贵。

即使使用像Selenium Grid这样的东西,也可以通过并行运行来缩短测试执行时间,但不是真正用于生成任何类型的负载。他们在their FAQ的最顶端说这个。

当您的负载驱动程序本身非常耗费资源时,所应用的负载变得不一致,这不仅仅是规模。如果你看到性能下降,很可能是你的加载驱动程序是瓶颈而不是被测试的应用程序。

话说回来,你可以肯定使用JMeter Sampler或Se Grid或其他东西来推动你的性能测试,只要你的并行用户数量达到10。再次引用Grid FAQ:

  

例如,要模拟200个并发用户,您需要200个并发浏览器和基于Selenium Grid的负载测试框架。即使你在Linux上使用Firefox(所以最有效的设置),你可能需要至少10台机器来产生这种负载。当JMeter / Grinder / httperf可以用一台机器产生相同类型的负载时,相当疯狂。

请注意,当他们说JMeter时,他们指的是HTTP采样器或更简单,更有效的采样器之一 - 因为即使是webdriver sampler documentation也说明了这一点:

  

JMeter允许创建多个线程,每个线程负责在服务器上创建负载。但是,对于Web驱动程序用例,读者应该谨慎处理它们将创建的线程数,因为每个线程将有一个与之关联的浏览器实例。每个浏览器都消耗大量资源,并且应该限制读者应该创建多少个浏览器。

然后继续建议使用最多(比#of处理器内核少1个) - 对于大多数非弹性设置来说这是一个非常小的数字。