我们可以在 jmeter 中解析响应吗?

Can we parse response in jmeter

本文关键字:响应 jmeter 我们      更新时间:2023-09-26

我是jmeter的新手,我陷入了困境。虽然场景很简单,但就像我对 Jmeter 说的新手。我必须申请一个网页。作为响应,我将收到一个包含java脚本代码的HTML文件。我已经确认了该javascript代码中存在的一些字符串我知道我可以在 seleium 网络驱动程序的帮助下做到这一点,到目前为止我已经做到了,但我需要多次运行此测试。就JMeter而言,它会丢弃响应中存在的任何scrip。所以请帮助我

JMeter 不会运行 Javascript。这并不意味着它会忽略它。

将响应断言添加到 HTTP 请求采样器(右键单击它,添加 -> 断言 -> 响应断言)。这将允许您添加字符串并断言该字符串存在于响应中(注意:与C++不同,此处的断言不会停止您的测试,它只会使该采样器成为错误)。

要使用响应断言,请将单选按钮切换到Contains,然后单击底部中心的Add。在中间显示的新框中,添加"该 javascript 代码中存在的一些字符串"。

首先,在您的HTTP请求采样器中,您应该选择一个选项"检索所有嵌入的资源",在此jmeter之后,jmeter将检索所有资源,如css,js,图形等。

另外,您可能还想看看 http://jmeter-plugins.org/

这个库包含一些非常酷的插件,用于jmeter测试。您应该寻找某种后处理器并将其添加到测试脚本中。这些可用于从检索的数据中提取某些特定资源。

另外,一个不相关的建议,因为您是新手,不要将许多/任何侦听器添加到您的 jmeter 测试计划中。

来自 JMeter 项目主页

JMeter 不是浏览器

JMeter不是浏览器。就Web服务和远程服务而言,JMeter看起来像一个浏览器(或者更确切地说,多个浏览器);但是,JMeter 不会执行浏览器支持的所有操作。特别是,JMeter不执行HTML页面中的Javascript。它也不会像浏览器那样呈现 HTML 页面(可以将响应视为 HTML 等,但计时不包含在任何示例中,并且一次只能查看一个线程中的一个示例)。

JMeter在协议级别上起作用,你的JavaScript正在做一些本地的事情 - 你可以使用JSR223测试元素复制逻辑

如果使用 JavaScript 发送请求 - 您可以使用 JMeter 模拟请求,JMeter 不执行 JavaScript,但它能够使用 HTTP(S) 测试脚本记录器和 HTTP 请求采样器记录和重放 JavaScript 驱动的请求

如果您尝试加载基于 AJAX 的应用程序,并且您需要模拟来自真实浏览器的请求(即异步,一次通过打开页面触发多个请求等) - 您将需要做一些额外的工作,因为 JMeter 不提供任何测试元素来跳过在线程组级别定义的已定义虚拟用户。有几种使用 JMeter 测试 AJAX 应用程序的方法,有关详细信息,请参阅如何使用 JMeter 加载测试启用 AJAX/XHR 的站点指南。