Jmeter 如何获得请求和响应数据结果
嗨,我是Jmeter的新生 我已经编写了一个Java采样器代码(Copy&Paste),在运行该代码后获得了成功消息,但请求和响应数据没有显示。我如何获得请求和响应数据,我还想传递一些参数,可能吗 我的Jsampler代码是Jmeter 如何获得请求和响应数据结果,jmeter,Jmeter,嗨,我是Jmeter的新生 我已经编写了一个Java采样器代码(Copy&Paste),在运行该代码后获得了成功消息,但请求和响应数据没有显示。我如何获得请求和响应数据,我还想传递一些参数,可能吗 我的Jsampler代码是 package com.wordpress.newspaint.jmeter.java.demo; import java.io.Serializable; import org.apache.jmeter.protocol.java.sampler.AbstractJa
package com.wordpress.newspaint.jmeter.java.demo;
import java.io.Serializable;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
public class ExampleJavaTestClassRR extends AbstractJavaSamplerClient implements Serializable {
private static final long serialVersionUID = 1L;
// set up default arguments for the JMeter GUI
@Override
public Arguments getDefaultParameters() {
Arguments defaultParameters = new Arguments();
defaultParameters.addArgument("URL", "http://www.google.com/");
defaultParameters.addArgument("SEARCHFOR", "newspaint");
// defaultParameters.addArgument("ENTITY","BANK");
return defaultParameters;
}
public SampleResult runTest(JavaSamplerContext context) {
String urlString = context.getParameter( "URL" );
String searchFor = context.getParameter( "SEARCHFOR" );
// String ENTITY = context.getParameter( "ENTITY" );
SampleResult result = new SampleResult();
result.sampleStart(); // start stopwatch
try {
java.net.URL url = new java.net.URL(urlString + "?q=" + searchFor);
java.net.HttpURLConnection connection = (java.net.HttpURLConnection)url.openConnection(); // have to cast connection
connection.setRequestMethod("POST");
connection.connect();
result.setSuccessful( true );
result.setResponseMessage("URL IS"+ url);
result.setResponseMessage( "Successfully performed actionSSSSn" );
result.setResponseCodeOK(); // 200 code
} catch (Exception e) {
// result.sampleEnd(); // stop stopwatch
result.setSuccessful( false );
result.setResponseMessage( "Exception: " + e );
// get stack trace as a String to return as document data
java.io.StringWriter stringWriter = new java.io.StringWriter();
e.printStackTrace( new java.io.PrintWriter( stringWriter ) );
result.setResponseData( stringWriter.toString() );
result.setDataType( org.apache.jmeter.samplers.SampleResult.TEXT );
result.setResponseCode( "500" );
}
result.sampleEnd();
return result;
}
void teardownTest() {
System.out.println("inside tear Down:");
}
}
首先: 您的代码示例不太正确 这一行:
result.setResponseData( stringWriter.toString() );
根据JavaDoc的说法,它已经被弃用了
/**
* Sets the responseData attribute of the SampleResult object.
* Should only be called after setting the dataEncoding (if necessary)
*
* @param response
* the new responseData value (String)
*
* @deprecated - only intended for use from BeanShell code
*/
所以,如果您想以这种方式设置响应数据,您需要使用,即函数
调用setResponseData的正确方法是
result.setDataEncoding("UTF-8");
result.setResponseData("Everything is fine".getBytes());
或
秒:
您的代码仅在失败的情况下假设结果返回。将默认URL更改为某个不存在的URL,您将得到异常stacktrace作为响应
如果您还需要在成功时返回一些内容,那么您需要在try块的末尾添加上面的任何一行
第三名:
据我所知,您无法为Java请求设置请求数据。你需要开发一个采样器来设置它。我建议调查来源,例如Sampler
/src/examples/org/apache/jmeter/examples/sampler/ExampleSampler.java
对于现有的JavaTest和SleepTest Java请求采样器:
/src/protocol/java/org/apache/jmeter/protocol/java/test/JavaTest.java
/src/protocol/java/org/apache/jmeter/protocol/java/test/SleepTest.java
这三个都包含对“我也想传递一些参数,可能吗”的回答
资料来源可从首先查阅: 您的代码示例不太正确 这一行:
result.setResponseData( stringWriter.toString() );
根据JavaDoc的说法,它已经被弃用了
/**
* Sets the responseData attribute of the SampleResult object.
* Should only be called after setting the dataEncoding (if necessary)
*
* @param response
* the new responseData value (String)
*
* @deprecated - only intended for use from BeanShell code
*/
所以,如果您想以这种方式设置响应数据,您需要使用,即函数
调用setResponseData的正确方法是
result.setDataEncoding("UTF-8");
result.setResponseData("Everything is fine".getBytes());
或
秒:
您的代码仅在失败的情况下假设结果返回。将默认URL更改为某个不存在的URL,您将得到异常stacktrace作为响应
如果您还需要在成功时返回一些内容,那么您需要在try块的末尾添加上面的任何一行
第三名:
据我所知,您无法为Java请求设置请求数据。你需要开发一个采样器来设置它。我建议调查来源,例如Sampler
/src/examples/org/apache/jmeter/examples/sampler/ExampleSampler.java
对于现有的JavaTest和SleepTest Java请求采样器:
/src/protocol/java/org/apache/jmeter/protocol/java/test/JavaTest.java
/src/protocol/java/org/apache/jmeter/protocol/java/test/SleepTest.java
这三个都包含对“我也想传递一些参数,可能吗”的回答
来源于您是否尝试使用其中的一些方法:?您是否尝试使用其中的一些方法:?谢谢您Dmitri..我正在尝试这种方法谢谢您Dmitri..我正在尝试这种方法,我还需要一个程序..如何编写setupTest,你能给我上面代码的示例setupTest吗谢谢你,德米特里我在用这种方法谢谢你,德米特里我在用这种方法,我还需要一个hepl。如何编写setupTest,你能给我上面代码的示例setupTest吗