如何捕获Bean shell采样器的响应

时间:2017-08-28 13:14:16

标签: java jmeter performance-testing beanshell

enter image description here

上面是我编写的代码,用于访问其端点期望Byte Stream对象的Web服务。 我能够做到这一点,但我没有得到任何回应。 我必须测试响应。 虽然我得到200 ok但是发送了一个字符串作为回应,我没有得到。 enter image description here

enter image description here

响应为空 enter image description here

我如何得到答复?

2 个答案:

答案 0 :(得分:2)

您可以使用SampleResult对象添加输出:

String output = "...";

SampleResult.setResponseData( output );
SampleResult.setDataType( org.apache.jmeter.samplers.SampleResult.TEXT );

答案 1 :(得分:2)

  1. 要阅读服务器的响应,您需要使用URLConnection.getInputStream() method,而不是OutputStream
  2. 要将流转换为字符串,您可以使用IOUtils.toString() method
  3. 要返回数据,您可以使用return keyword
  4. 下面是最小工作代码,根据您的需要进行调整:

    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.nio.charset.StandardCharsets;
    import org.apache.commons.io.IOUtils;
    
    URL url = new URL("http://example.com");
    HttpURLConnection con = (HttpURLConnection) url.openConnection();
    con.setRequestMethod("GET");
    String response = IOUtils.toString(con.getInputStream(), StandardCharsets.UTF_8);
    return response;