JMeter是否与物理浏览器交互

问题描述 投票:1回答:2

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

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

谢谢

selenium-webdriver jmeter performance-testing
2个回答
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并查看增加的负载如何与其他指标相关联(响应时间,每秒点击次数,每秒错误数等)

1
投票

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

Web Driver Sampler在浏览器(客户端)上自动执行和收集性能指标。到目前为止,性能测试的很大一部分已经出现在服务器端。然而,随着技术的进步,HTML5,JS和CSS的改进,越来越多的逻辑和行为被推送到客户端。这增加了网站/ 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/

© www.soinside.com 2019 - 2024. All rights reserved.