我需要在我们的Web应用程序上执行负载测试,该测试涉及用户与网页的交互。所以我写了selenium脚本 处理点击事件。例如,我们有一些功能,比如一些用户必须执行注册/注册到我们的网站,一些用户必须登录并执行点击操作和注销,一组用户必须访问我们的主页,点击多个主页上提供的URL链接。 在JMeter中,我为上述功能添加了一个线程组。每个线程组都有“JUnit Request Sampler”,它调用具有执行单击操作的代码的selenium方法。 我已经为线程组设置了“线程属性”,在5到10分钟的时间内每分钟运行200个线程[目标为15分钟] 我正在使用的默认浏览器是“Firefox”。我还设置了JMeter属性,这样我就不会陷入任何内存问题。 我在非gui模式下运行脚本并将结果收集到jtl文件中。 我面临的问题是,虽然脚本正在执行多个浏览器打开,并且每个页面都涉及点击事件,但某些点击不会正确发生,从而导致错误计数增加。如果我使用极少数的线程延时,则不会出现错误。 我也尝试过分布式模式测试,但错误计数没有大幅减少。 我期待着一个解决方案或者更确切的建议,可以帮助我在运行涉及用户交互并实现预期负载或之后增加负载的JMeter脚本时出现最小或零错误。 问候 Praveena
答案 0 :(得分:0)
根据WebDriver Tutorial,建议不要使用WebDriver来加载到Web应用程序
根据经验,读者创建的浏览器(线程)数量应受以下公式限制:
C = B + 1
其中C =运行测试的主机的核心数
和N =浏览器数(线程数)。
调查Firefox browser requirements我强烈怀疑你有一台拥有200个核心和400 GB内存的计算机,因此我的期望是你应该使用JMeter的HTTP Request采样器来创建负载。
浏览器不做任何魔法,他们发送HTTP Requests并呈现响应,因此基于协议的良好表现的JMeter测试看起来就像是被测应用程序的真实浏览器。所以我建议converting your Selenium tests into "pure" JMeter tests,你可以留下1-2个浏览器来测量应用程序负载时的最终用户体验。