我有这样的BeanShell断言代码:
final String response = SampleResult.getResponseDataAsString();
final String expectedExceptionText = "numberOfFeatures=\"0\"";
if (response.contains(expectedExceptionText)) {
Failure = true;
FailureMessage = "At least one feature expected ";
}
我想检查'size in bytes'响应是否大于384B。如果没有那么我需要在一些变量中计算低于384的所有响应。有没有办法在我的断言代码中使用响应'字节大小'?我的意思是我不知道该怎么做所以请告诉我。
//修改
我一直在尝试使用方法getBytes但是尽管我需要导入它但它不起作用。有什么想法吗?
答案 0 :(得分:1)
您不需要BeanshellAssertion来执行此操作:
要检查尺寸,请使用Size Assertion
要使用Response Assertion检查内容,请注意不复选框
如果您仍想使用Beanshell,那么:
if(SampleResult.getResponseData()。length> 384)
答案 1 :(得分:0)
我不想只检查。我已经使用大小和响应断言来检查我是否得到了正确的响应,但我想计算空的响应(我正在执行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中不起作用。我收到了一些错误 //编辑
我使用了你的方法,似乎有效。谢谢:)
答案 2 :(得分:0)
如果是Beanshell Assertion,您可以通过至少两种方式获得响应大小(以字节为单位):
ResponseData.length
SampleResult.getResponseData().length
两者都会产生包含父采样器响应的字节数组 - byte[]
。
如下所示:
if (ResponseData.length > 384) {
//do what you need
}
应解决您的使用案例。
有关JMeter中Beanshell脚本的高级信息,请参阅How to use BeanShell: JMeter's favorite built-in component指南