我是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();
}
}
}
答案 0 :(得分:0)
首先,请告知您可以使用JMeter的HTTP Request采样器执行请求,并使用Regular Expression Extractor
获取输出。如果您正在寻找一种在JMeter脚本测试元素中重用现有Java代码的方法:
您需要将函数的返回类型更改为String
,才能替换
public static void main(String[] args)
使用
public static String main()
您需要在函数末尾添加return statement,例如:
返回输出;
完成后,将.jar放置到JMeter Classpath并重新启动JMeter进行拾取
如果一切顺利,您应该可以像这样访问Beanshell中的值:
字符串输出= co.in.RestClientGet_Validate.main();
另外请注意,starting from JMeter 3.1 it is recommended to switch to JSR223 Test Elements and Groovy language用于编写脚本,因此请考虑从Beanshell尽快迁移。