【问题标题】:Using AJAX script with JMeter在 JMeter 中使用 AJAX 脚本
【发布时间】:2016-12-28 23:16:13
【问题描述】:

我目前正在使用 Jmeter 为内部 Java 网站创建测试样本以进行性能测试。

在创建/记录一些脚本并重新运行它们后,我发现一些脚本失败(不是 HTTP 失败,响应代码是 200 所以这是一个成功的 HTTP 响应,但看起来像服务器端失败)并出现错误“发生意外错误,页面已关闭”。即使在为此应用程序启用高跟踪之后,我也无法找出确切的原因。

我发现这个网站对我收集的每个样本(或大多数样本)都使用了大量的 AJAX 请求,并且它们都记录有以“.js”结尾的样本。在用 Jmeter 对这个问题进行了大量谷歌搜索后,我发现 Jmeter 不运行 Javascripts,因为这不是浏览器。

很公平,了解了更多细节并阅读了许多关于使用 Selenium Web 驱动程序运行 java 脚本的解决方案,并且可以与 jmeter 一起使用来解决这个问题。但是他们都没有谈到运行 javascript(或 Ajax 脚本)和让 Jmeter 运行 HTTPS 示例的 webdriver 的确切实现。

我的问题有两个:

1) 我还能如何调试我的 Jmeter 脚本以确认这些错误是由 Ajax 脚本引起的,如果不是 Ajax 问题,还有什么导致此“页面关闭错误”

2) 以及如何在相同的测试脚本中运行 Java 脚本的 Web 驱动程序和运行 http 示例的 JMeter?

非常感谢任何有关相关文档的帮助或指示。目前我完全陷入困境,没有任何可以通过手册找到的解决方案。

【问题讨论】:

    标签: ajax webdriver jmeter


    【解决方案1】:

    其实你有两个选择:

    1. 使用WebDriver Sampler 执行真实浏览器测试(这可能会占用大量资源,因为真实浏览器会消耗大量 CPU 和 RAM)
    2. 使用 JMeter 执行 AJAX 调用。 JMeter 无法执行 JavaScript,但 JavaScript 驱动的 HTTP 请求可以使用 HTTP(S) Test Script Recorder 记录并作为 JMeter HTTP 请求采样器重放。您需要应用一些自定义配置才能并行执行 AJAX 请求,详情请查看How to Load Test AJAX/XHR Enabled Sites With JMeter 文章。

    【讨论】:

    • 我已经阅读了这篇文章(如何使用 JMeter 加载测试 AJAX/XHR 启用的站点),但它对我没有帮助。我有很多示例(基于步骤数和每个示例记录有多个脚本(.js、Ajax)。因此,在我的场景中,不可能为每个 Ajax 脚本分别重新创建一个线程以并行运行。这示例仅显示了 3 个脚本和 2 个并行 Ajax 脚本。实际场景比这复杂一点,这种解决方法不实用(如果我正确理解这篇文章的话)。
    • 另外,一些 AJAX 脚本运行良好。只是几个主要脚本(我单击“保存”按钮或特定操作)在此消息中失败。所以,想知道是否有办法至少调试这些..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2018-06-09
    • 1970-01-01
    • 2017-11-24
    相关资源
    最近更新 更多