我想模拟HTTP请求,意思是发送真实的请求到真实的服务器,但是忽略(不是等待)并用一个虚拟的响应覆盖响应,
JMeter有很多工具,它们很接近,但还不够,
DummySampler插件已关闭,但没有真正发送请求,
old answer直接指向镜像服务器,这似乎与特定的API请求和响应无关。
JMeter不模拟服务器。
话虽如此,JMeter 2.3有一个内置的镜像服务器-它接受任何HTTP请求,并使用包含请求详细信息的页面进行响应。
如果服务器B不关心服务器C发回的内容,那么您可以使用它来“模拟”服务器C。
我的回答是通过在1秒内添加HTTP控制器并更新响应数据来忽略HTTP响应,这是一个有问题的解决方案,但可以工作。
有没有更好的选择可以在插件中使用,或者并行执行其他工具?
为JMeter开放一个增强功能是相关的吗?如果是的话,它应该改进HTTP请求还是作为一个新的采样器Mock HTTP请求?是否可以让控制器只支持发送并停止等待响应(例如使用0秒)?
3条答案
按热度按时间gg58donl1#
最简单的选择是,即。WireMock非常强大和灵活。
您可以通过将WireMock jar(沿着依赖项)添加到JMeter类路径并从JSR223 Test Elements using Groovy language运行WireMockServer来将其与JMeter集成。
如果你不太熟悉Groovy,你可以使用OS Process Sampler将WireMock作为standalone Java application运行
ymdaylpp2#
据我所知,您可能希望模拟一个用于测试结果的请求,同时发送一个独立于测试结果的真实的请求。实现此目的的一种方法是以这种方式将JSR223 PostProcessor附加到Dummy Sampler:
PostProcessor元素被添加到Dummy Sampler下,并在模拟请求之后执行。在JSR223后处理器的脚本中,我们可以添加几行脚本来执行一个满足您用例的“即发即忘”请求:
这个脚本可以应用于任何您想要进行HTTP调用,但又不希望调用结果影响测试结果的地方。您可以简单地将以下行更改为您打算调用的实际URL:
包含
log.info(...)
的最后一行是可选的,但将在测试日志中输出请求的结果(* 即 ,状态代码200
,404
, 等 *),这可能对调试有用。sczxawaw3#
我manged做它使用以前的职位(https://stackoverflow.com/a/49130518/5210267),但成功后才把它放在“bzm -并行控制器”和设置超时定义时间WireMockServer的工作:image example