JMeter的。 JSR223 + Grovy 2.4.5采样器响应时间降级

时间:2015-12-02 09:58:08

标签: jmeter beanshell jsr223

(问题是从Jmeter protobuf testing. Could not read Protobuf message继续) 我正在通过Protobuf协议测试应用程序。最初我使用HTTP采样器但是将二进制数据保存到字符串是一个问题。 解决方案是使用带有HTTPClient的Beanshell采样器和带有二进制数据的POST请求:

byte[] data = null;
//...assign protobuf binary buffer to data...

HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://127.0.0.1");
HttpEntity entity = new ByteArrayEntity(data);
post.setEntity(entity);
post.setHeader(HttpHeaders.CONTENT_TYPE, "application/octet-stream");
HttpResponse response=null;
try {
    response = client.execute(post);
} catch (ClientProtocolException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

ResponseCode = response.getStatusLine().getStatusCode().toString();
//if some assert is true then
Issuccess = true;
ResponseMessage="Some Response Message";

因为我尝试为数千名用户提供高负载,所以我开始使用JSR223 + Grovy采样器而不是Beanshell samler(受到本文https://blazemeter.com/blog/beanshell-vs-jsr223-vs-java-jmeter-scripting-its-performance的影响)

在测试期间,所有JSR223采样器的响应时间都有很大的增长: JSR223 sampler response times during first 5 minutes

然后创建了一个新的测试计划,并用Beanshell采样器替换了所有JSR223(没有重置选项)。图片还可以(图表尺寸相同):

Beanshell sampler response times during first 5 minutes

那么如何识别JSR223的问题或者修复它。另一个问题是为什么每个人都提出使用JST223 + Grovy时会提出这些问题呢?

1 个答案:

答案 0 :(得分:0)

好的,在本文中建议使用Compilation缓存键。我没看见过它。现在一切都好。