JMeter BeanShell断言使用;以字节为单位的大小“;数据

JMeter BeanShell断言使用;以字节为单位的大小“;数据,jmeter,assertions,Jmeter,Assertions,我有这样的BeanShell断言代码: final String response = SampleResult.getResponseDataAsString(); final String expectedExceptionText = "numberOfFeatures=\"0\""; if (response.contains(expectedExceptionText)) { Failure = true; FailureMessage = "At least one f

我有这样的BeanShell断言代码:

final String response = SampleResult.getResponseDataAsString();
final String expectedExceptionText = "numberOfFeatures=\"0\"";

if (response.contains(expectedExceptionText)) {
   Failure = true;
   FailureMessage = "At least one feature expected ";
}
我想检查“字节大小”响应是否大于384B。如果不是,那么我需要在某个变量中计算所有低于384的响应。有没有办法在我的断言代码中使用响应“以字节为单位的大小”?我的意思是我不知道怎么做,所以请告诉我

//编辑


我一直在尝试使用getBytes方法,但它不起作用,尽管我需要导入。有什么想法吗?

您不需要BeanshellAssertion来实现这一点:

  • 要检查大小,请使用

  • 要检查内容使用,请注意复选框

如果您仍然想使用Beanshell,那么:

如果(SampleResult.getResponseData().length>384)


我不想只检查一下。我已经在使用大小和响应断言来检查我是否得到了正确的响应,但是我想计算空的响应(我正在执行getImage请求),它可能会返回200个响应,但仍然可能是空的。我想知道,当这种情况发生,同时遇到变量。下面是我想要的示例:

1st request - image ok 200.  variable =0;
2nd image ok 200. variable = 0
3rd no image, 200, variable =1;
etc.
我需要它来检查有多少传递的数据(输入参数)是空的。 我检查了没有图像的响应有384字节,所以我想用那种方式检查它。我尝试使用getBytes()方法,但它在BeanShell中不起作用。我收到一些错误。
//编辑


我用了你的方法,看来效果不错。谢谢:)

对于Beanshell断言,您可以通过至少两种方式获得以字节为单位的响应大小:

ResponseData.length
SampleResult.getResponseData().length
这两种方法都会产生包含父采样器响应的字节数组-
byte[]

比如:

if (ResponseData.length > 384) {
    //do what you need
}
应该解决您的用例

有关JMeter中Beanshell脚本的高级信息,请参阅指南