我无法捕获使用HTTPSamplerResult的方法。
如何获取采样时间(ms),字节数,发送字节数,延迟时间,连接时间和其他参数。
我无法在监听器中获取这些详细信息:查看表中的结果以及其他侦听器。
有人可以帮我解决这个问题。 我没有得到如何设置所有变量的实现。
以下是我的java请求采样器的代码。
public HTTPSampleResult runTest(JavaSamplerContext arg0)
{
HTTPSampleResult result = new HTTPSampleResult();
//Below array contains the user id and password that comes with every chirp
byte[] idpwd = new byte[]{38,85,115,101,114,78,97,109,101,61,101,82,101,103,38,85,115,101,114,80,97,115,115,119,111,114,100,61,97,98,99,49,50,51};
//below we are converting the hex string coming as parameter to Byte Array.
byte arr[] = toByteArray(arg0.getParameter("HEX"));
//Below we are getting the lengths of both the arrays : idpwd & arr
int aLen = arr.length;
int bLen = idpwd.length;
////////////////////////////////////////////////////////////////////
//below we are initializing the byte array to contain both our hex string converted to byte array and the id-pwd.
byte[] actual_Chirp = new byte[aLen+bLen];
//Below we are concatenating both the arrays.
//first we are adding the arr to the actual_chirp.
//then we are adding the idpwd from the alen to blen.
System.arraycopy(arr, 0, actual_Chirp, 0, aLen);
System.arraycopy(idpwd, 0, actual_Chirp, aLen, bLen);
//Here we we actually hit the meter service
try
{
URL obj = new URL(arg0.getParameter("URL"));
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setDoOutput(true);
OutputStream os = con.getOutputStream();
result.sampleStart();
/////////////////////////////////////////////////////////////////////////
os.write(actual_Chirp);
os.flush();
os.close();
///////////////////////////////////////////////////////////////////////
result.sampleEnd();
result.setContentType(con.getContentType());
result.setSamplerData(POST_URL);
System.out.println(con.getContentType());
System.out.println(result.getHTTPMethod());
System.out.println(result.getRequestHeaders());
System.out.println(Hex.encodeHexString(result.getResponseData()));
result.setSuccessful(true);
System.out.println(con.getResponseMessage());
}
catch(Exception E)
{
}
//
return result;
}
答案 0 :(得分:1)
我认为你缺少样品标签,或者更多。 HTTPSampleResult
(或者通常为SampleResult
)是用于累积与执行相关的所有数据的容器。所有可视化工具或记者只依靠SampleResult
来统计数据,因此如果他们忽略了你的数据,则意味着你没有在其中放入足够的数据供他们使用。很好的参考资料是HTTPHC4Impl.java的源代码。我可以发现一些遗漏的东西:
标签最明显,这就是导致您的问题的可能性
result.setSampleLabel("your label");
通常在result.sampleStart();
之前和构造函数
我无法想象这会导致采样器被忽略,但无论如何:通常你需要设置响应代码和响应消息。以下是上述源代码的示例:
res.setResponseCode(Integer.toString(statusCode));
res.setResponseMessage(statusLine.getReasonPhrase());
还要检查该代码中的其他字段。例如,对于HTTP,具体来说,Method和URL具有特殊属性,这使得它们在结果
中格式化得很好result.setHTTPMethod("POST");
result.setURL(POST_URL);