我对jmeter的新手和我陷入困境。 Altough场景很简单,但就像我说Jmeter新手一样。 我必须要求一个网页。 作为回应,我将收到一个包含java脚本代码的HTML文件。 我已确认该javascript代码中存在一些字符串 我知道我可以在seleium webdriver的帮助下做到这一点,到目前为止我已经完成了,但我需要多次运行此测试。 并且就JMeter而言,它会丢弃响应中存在的任何脚本。所以请帮帮我
答案 0 :(得分:1)
JMeter不会运行 Javascript。这并不意味着它会忽略它。
向HTTP请求采样器添加响应断言(右键单击它,添加 - >断言 - >响应断言)。这将允许您添加字符串存在于响应中的字符串和断言(注意:例如,与C ++不同,此处的断言不会停止您的测试,它只会使该采样器出错)。
要使用响应声明,请将单选按钮切换到Contains
,然后单击底部中心的Add
。在显示在中心的新框中,添加“该javascript代码中存在的某些字符串。”
答案 1 :(得分:0)
首先,在您的HTTP请求采样器中,您应该选择一个选项,'检索所有嵌入的资源',此jmeter将检索所有资源,如css,js,图形等。
另外,您可能需要查看http://jmeter-plugins.org/
这个库包含一些非常酷的jmeter测试插件。 您应该寻找某种后处理器并将其添加到测试脚本中。这些可用于从检索到的数据中提取某些特定资源。
另外,一个不相关的建议是因为你是新手,不要在你的jmeter测试计划中添加很多/任何听众。
答案 2 :(得分:0)
JMeter不是浏览器
JMeter不是浏览器。就Web服务和远程服务而言,JMeter看起来像浏览器(或者更确切地说,是多个浏览器);但是JMeter不会执行浏览器支持的所有操作。 特别是,JMeter不执行HTML页面中的Javascript。它也不像浏览器那样呈现HTML页面(可以将响应视为HTML等,但是时间不包括在任何样本中,并且一次只能查看一个线程中的一个样本。
JMeter在协议级别上行动,您的JavaScript正在做本地化的事情 - 您可以使用JSR223 Test Elements
复制逻辑如果使用JavaScript发送请求 - 您可以使用JMeter模仿请求,JMeter不会执行JavaScript但它能够使用HTTP(S) Test Script Recorder和{{3来记录和重放JavaScript驱动的请求取样器
如果您正在尝试加载测试HTTP Request的应用程序并且您需要模拟来自真实浏览器的请求(即异步,通过打开页面触发的一次请求等) - 您需要做一些额外的工作,因为JMeter没有提供任何测试元素来跳过在AJAX-based级别定义的已定义虚拟用户。有几种使用JMeter测试AJAX应用程序的技术,有关详细信息,请参阅Thread Group指南