我在JMeter中录制了一个用户旅程(使用AngularJS)。当我单击向页面生成GET请求的链接时,它会向某些页面资源(图像)产生其他子请求。
简而言之:
Test Plan
-- Thread Group
---- Transaction Controller
------ HTTP Request (Main sample)
此处主要示例触发了资源的其他子样本,但由于路径问题而导致其失败,但是这可以使用浏览器手动完成。
我需要更改子样本的路径,或者在这些子样本的404上没有失败。
答案 0 :(得分:0)
您在浏览器和JMeter中获得不同结果的事实表明您的JMeter测试表现不佳,因为它不会以100%的准确度复制浏览器请求,因此您的负载测试没有多大意义,因为“良好的“负载测试必须代表真实用户坐在真实浏览器后面尽可能接近。我建议将浏览器和JMeter发送的请求与Fiddler或Wireshark等嗅探器工具进行比较,找出差异并修改JMeter配置,以便JMeter驱动的请求完全是浏览器驱动的复制品一个(除了动态参数)
暂时我只能告诉你如何将失败的子样本转换成成功的样本。
将以下代码放入“脚本”区域:
prev.getSubResults().each {
it.setSuccessful(true)
}
就是这样,上面的Groovy代码将所有子样本标记为成功,无论原始状态如何(响应状态代码,消息,正文等将保持原始状态,JMeter不会考虑它们因为失败了)。有关在JMeter测试中使用Groovy脚本的详细信息,请参阅Apache Groovy - Why and How You Should Use It文章。