【问题标题】:Can JMeter mock HTTP requestJMeter可以模拟HTTP请求吗
【发布时间】:2018-08-14 06:11:32
【问题描述】:

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

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

DummySampler 插件关闭但没有真正发送请求,

old answer 直接指向 Mirror Server,这似乎与特定 API 请求和响应无关。

JMeter 不模拟服务器。

话虽如此,JMeter 2.3 有一个内置的镜像服务器——它接受 任何 HTTP 请求并以包含该请求的页面进行响应 细节。

如果服务器 B 不关心服务器 C 发回的内容,那么您可以使用 这是为了“模拟”服务器 C。

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

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

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

【问题讨论】:

    标签: jmeter jmeter-plugins


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      您可以通过将WireMock jar(连同依赖项)添加到JMeter Classpath 并从JSR223 Test Elements using Groovy language 运行WireMockServer 来将其与JMeter 集成。

      如果您对 Groovy 不太满意,您可以使用 OS Process Samplerstandalone Java application 的身份运行 WireMock


      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);
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多