【问题标题】:Javascripts in jMeter response of SPASPA的jMeter响应中的Javascript
【发布时间】:2017-12-26 15:01:24
【问题描述】:

我正在使用 API 测试移动应用程序进行自动化。 应用程序上有 3 个不同的主屏幕。 工作流程- 1)登录 - 发送登录 API 请求并作为响应获取用于进一步请求的访问令牌。 2) Screen1-在screen1上发送API请求并获得响应-成功 3) Screen2 - 在 screen2 上发送 API 请求,但它不起作用。它发送 3-4 个 .js(javascripts) 文件作为响应。 Screen2 是单页应用程序。 Jmeter 不会从响应中执行那些 js,因此看不到任何内容。

我在这里被阻止,无法继续。任何指针......感谢。

【问题讨论】:

  • 与 Soap UI 类似地尝试过,它不会从响应中执行 javascript。相同的响应。有没有提供js执行器的工具?

标签: jmeter


【解决方案1】:
  1. 首先检查JMeter是否配置为下载嵌入式资源。您可以在 HTTP Request 采样器的“高级”选项卡上执行此操作(或更好的 HTTP Request Defaults

    如果未选中此框 - JMeter 将仅返回主要内容,但不会处理任何所谓的“嵌入式资源”:图像、字体、脚本、网页引用的样式。

  2. 根据JMeter project main page

    JMeter 不是浏览器,它在协议级别工作。就 Web 服务和远程服务而言,JMeter 看起来像一个浏览器(或者更确切地说,是多个浏览器);但是 JMeter 并没有执行浏览器支持的所有操作。特别是,JMeter 不执行 HTML 页面中的 Javascript。它也不像浏览器那样呈现 HTML 页面

    因此,如果响应中有 JavaScript 触发 AJAX 请求,该请求返回您的“js”文件 - JMeter 不会自动执行它,您需要添加一个单独的 HTTP 请求采样器到模仿 AJAX 调用


没有一个负载测试工具能够执行 JavaScript,因此如果您正在寻找一个 - 您需要考虑真正的浏览器。例如,通过 WebDriver Sampler 查看 JMeter 与 Selenium 的集成,但请注意,这种方法非常耗费资源。

【讨论】:

  • 感谢回复..很有用。 1) 下载资源没有帮助,因为它只是显示 JavaScript 代码作为响应,之前它显示的是 filename.js。 2) 我添加了 webdriver 采样器,但我没有从我之前的响应中得到它如何执行 java 脚本。你能建议我如何做到这一点吗?我正在发送第一个登录请求,然后使用访问令牌用户特定请求到另一个页面。如果你有空想和你讨论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-27
  • 2012-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-14
相关资源
最近更新 更多