JMeter和JavaScript

9

当我在JMeter中进行HTTP请求时,收到的响应数据是"此页面使用JavaScript,需要启用JavaScript浏览器。"如何解决这个问题。

4个回答

18

JMeter不是浏览器,也不解释下载页面中的JavaScript。

来自JMeter wiki的信息:

JMeter不处理嵌入在HTML页面中的JavaScript或小应用程序。

JMeter可以下载相关资源(如果设置了正确的选项,则某些嵌入式资源会自动下载),但它不会处理HTML并执行任何JavaScript函数。

如果网页使用JavaScript构建URL或提交表单,则可以使用代理录制功能创建必要的Sampler。如果这不可行,则可能需要手动检查代码以确定JavaScript正在做什么。

根据您所做的事情,您可以使用Firefox的Selenium IDE创建一个执行测试。测试将在您的浏览器中运行,因此JavaScript也将运行。请注意,我从未使用Selenium作为JMeter的替代品,并且不知道两种工具的共同特性。


我使用了代理录制功能,我可以看到我输入的变量,但在响应中,我得到了这个消息,而且这个消息与我在Firefox中禁用JavaScript时运行时得到的消息相同。是否有可能使用JMeter这样的应用程序进行测试? - Ballon
1
这真的取决于你要测试什么。JMeter最初是为了测试服务器功能(在重负载、性能、响应时间等方面)而创建的。如果JavaScript仅用于GUI效果,不与应用程序的功能交互(即使它看起来很花哨),那么您可以使用JMeter来测试该功能,绕过您收到的消息(它应该是您的应用程序中某种测试JS启用的过滤器,您可以关闭它)。另一方面,如果JavaScript是必须的,则需要浏览器功能,而JMeter目前不提供这些功能。 - user159088

2

我认为您可以使用WebDriver插件来运行真实的浏览器测试(IE / Firefox / Chrome / Selenium)。

这里有很好的文档,请点击这里


1
您可以将WebDriver添加到JMeter测试中,以全面评估页面呈现。
Web Driver Sampler自动执行和收集浏览器(客户端)上的性能指标。迄今为止,性能测试的很大一部分都在服务器端进行。然而,随着技术的进步,HTML5、JS和CSS的改进,越来越多的逻辑和行为被推到客户端。这增加了网站/ Web应用程序的整体感知性能,但这个指标在JMeter中不可用。增加整体浏览器执行时间的因素可能包括:
1. 客户端JavaScript执行 - 例如 AJAX、JS模板 2. CSS转换 - 例如3D矩阵转换、动画 3. 第三方插件 - 例如Facebook like、Double click ads、站点分析等
所有这些因素都增加了整体浏览器执行时间,本项目旨在测量完成所有内容呈现所需的时间。

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


-4
你需要在你的线程中添加HTTP Cookie/Cache Manager来解决这个问题。

2
这个答案完全无效且误导。 - rsakhale

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接