JMeter-Java中使用的访问变量

时间:2018-07-18 10:07:40

标签: jmeter beanshell

我是JMeter的新手。我有一个Java代码,已将其导入为JAR文件。有一个名为output的变量,其中的结果是接收并打印输出的结果。我想从Jmeter Beanshell访问该变量。有人可以帮我吗?

我的Java代码如下:

package co.in;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class RestClientGet_Validate {

    // http://localhost:8080/RESTfulExample/json/product/get
    public static void main(String[] args) {

      try {

        URL url = new URL("http://172.16.2.192:8080/pivot_service_1.0/service/validate");
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("GET");
        conn.setRequestProperty("Accept", "application/json");

        if (conn.getResponseCode() != 200) {
            throw new RuntimeException("Failed : HTTP error code : "
                    + conn.getResponseCode());
        }

        BufferedReader br = new BufferedReader(new InputStreamReader(
            (conn.getInputStream())));

        String output;
        System.out.println("Output from Server .... \n");
        while ((output = br.readLine()) != null) {
            System.out.println(output);
            response = output;
        }

        conn.disconnect();

      } catch (MalformedURLException e) {

        e.printStackTrace();

      } catch (IOException e) {

        e.printStackTrace();

      }
    }
}

1 个答案:

答案 0 :(得分:0)

首先,请告知您可以使用JMeter的HTTP Request采样器执行请求,并使用Regular Expression Extractor

获取输出。

如果您正在寻找一种在JMeter脚本测试元素中重用现有Java代码的方法:

  1. 您需要将函数的返回类型更改为String,才能替换

    public static void main(String[] args)
    

    使用

    public static String main()
    
    1. 您需要在函数末尾添加return statement,例如:

      返回输出;

    2. 完成后,将.jar放置到JMeter Classpath并重新启动JMeter进行拾取

    3. 如果一切顺利,您应该可以像这样访问Beanshell中的值:

      字符串输出= co.in.RestClientGet_Validate.main();

另外请注意,starting from JMeter 3.1 it is recommended to switch to JSR223 Test Elements and Groovy language用于编写脚本,因此请考虑从Beanshell尽快迁移。