代码之家  ›  专栏  ›  技术社区  ›  Ori Marko

Can JMeter模拟HTTP请求

  •  4
  • Ori Marko  · 技术社区  · 7 年前

    我想模拟HTTP请求,即发送 实际请求 real服务器 ,但忽略(而不是等待)并使用虚拟响应覆盖响应,

    JMeter有很多工具,虽然很接近,但还不够,

    DummySampler 插件已关闭,但未真正发送请求,

    old answer 直达 Mirror Server 这似乎与特定的API请求和响应无关。

    JMeter不模拟服务器。

    话虽如此,JMeter2.3有一个内置的镜像服务器-它接受 任何HTTP请求,并用包含该请求的页面进行响应 详细信息。

    如果服务器B不关心服务器C发回什么,那么您可以使用 这将连接到“模拟”服务器C。

    My answer 通过在1秒内添加运行时控制器并更新响应数据来忽略HTTP响应是一个有问题的解决方法,但可以奏效。

    插件或并行执行其他工具中是否有更好的选择?

    为JMeter打开一个增强功能是否相关,如果相关,它应该改进HTTP请求还是作为模拟HTTP请求的新采样器?运行时控制器能否仅支持发送和停止等待响应(例如,使用0秒)?

    2 回复  |  直到 7 年前
        1
  •  7
  •   yivi SilverLink    7 年前

    最简单的选择是。 WireMock 这是非常强大和灵活的。

    您可以通过添加 WireMock jar (以及依赖项)到 JMeter Classpath 并运行 WireMockServer JSR223 Test Elements using Groovy language

    如果您对Groovy不太熟悉,可以将WireMock作为 standalone Java application 使用 OS Process Sampler


    import com.github.tomakehurst.wiremock.WireMockServer;
    import com.github.tomakehurst.wiremock.stubbing.StubMapping;
    
    import static com.github.tomakehurst.wiremock.client.WireMock.*;
    
    public class WireMockTest {
    
        public static void main(String[] args) {
            WireMockServer wireMockServer = new WireMockServer();
            configureFor("0.0.0.0", 8080);
            wireMockServer.start();
            StubMapping foo = stubFor(get(urlEqualTo("/wiretest"))
                    .willReturn(aResponse()
                            .withStatus(200)
                            .withBody("Hello World")));
            wireMockServer.addStubMapping(foo);
        }
    }
    
        2
  •  0
  •   Vitaly Kirilyuk    5 年前

    我用以前的帖子设法做到了( https://stackoverflow.com/a/49130518/5210267 ),但只有在将其放入“bzm-并行控制器”并设置超时以定义WireMockServer的工作时间后,才能成功: image example