JMeter是否与物理浏览器交互

时间:2018-03-02 12:23:59

标签: selenium-webdriver jmeter performance-testing

我有客户的报告,我们的网络应用程序上的上传文件功能有时无法正常工作。我们在内部进行了测试,但确实没有发生。所以我使用JMeter在Web应用程序上执行性能测试(模拟1000个用户同时上传)。我的经理表示,图表Resutls以及JMeter的摘要报告在这种情况下无法帮助检测出问题所在。他询问JMeter是否可以在UI上实际上传,我们可以看到发生了什么。

据我所知,JMeter毕竟是一个模拟器,它不能像Selenium WebDriver那样与网络浏览器互动(?!)。无论如何都要进行上传按钮的Performace测试,我们实际上可以在WepApp上看到它吗?我希望我的问题有道理。

由于

2 个答案:

答案 0 :(得分:1)

您可以将WebDriver添加到JMeter,以便与完全呈现的网页进行交互。

  

Web Driver Sampler自动执行和收集   浏览器(客户端)上的性能指标。很大一部分   到目前为止,性能测试一直在服务器端   的东西。但是,随着技术的进步,HTML5,JS和CSS   改进,越来越多的逻辑和行为被推倒   给客户。这增加了整体感知的表现   website / webapp,但此指标在JMeter中不可用。事情   添加到整个浏览器执行时间可能包括:

     

客户端Javascript执行 - 例如。 AJAX,JS模板CSS   变换 - 例如。 3D矩阵变换,动画第三方插件 -   例如。 Facebook喜欢,双击广告,网站分析等所有这些   事情增加了整个浏览器的执行时间和这个项目   旨在衡量完成渲染所需的时间   内容。

例如,您可以将此Javascript代码添加到“脚本”部分,以便导航到Google。

WDS.sampleResult.sampleStart()
WDS.browser.get('http://google.com')
WDS.sampleResult.sampleEnd()

官方指南:https://jmeter-plugins.org/wiki/WebDriverTutorial/

答案 1 :(得分:0)

浏览器没有做任何魔术,他们只是发送HTTP requests并呈现回复。 JMeter可以通过其HTTP Request采样器执行HTTP请求,因此从后端服务器的角度来看,文件上传是由真实浏览器还是由JMeter进行。

请参阅How to make JMeter behave more like a real browser文章,了解如何正确配置JMeter,以便您的测试更加真实。

关于Graph ResultSummary Report - 我不认为他们讲的是完整的故事。我建议采用以下方法:

  1. Response Assertion添加到文件上传请求中,该请求将明确检查上传成功
  2. 从1个虚拟用户开始,逐渐增加负载,直到错误开始。
  3. 生成HTML Reporting Dashboard,了解增加的负载与其他指标的关系(响应时间,每秒点击次数,每秒错误数等)