本文主要是介绍Jmeter响应数据是空,首要确认是否返回了数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
响应数据是空,首要确认是否返回了数据。
一个小乌龙,记录下来伯君一笑。
实例:
最近在用Jmeter做一个中奖接口的测试 ,主要测试各奖项的中奖概率。因为在后置处理程序里写了脚本判断返回状态码是200的才判断属于哪个奖项,所以就没有再认真看返回状态的代码。
然后乌龙事件就来了。在聚合报告里显示,不管抽多少次奖,都是未中奖,这明显是有问题呀。我就想着去查看结果树里看一下返回的数据,不看不打紧,一看问题就来了——所有的请求返回数据都是空的。这把我着急的呀,毕竟是刚用Jmeter,也不是很了解,于是各种百度,各种研究,无果。
后来就想着,用postman跑一下接口,看看返回数据不。
哪知,postman一跑,接口不通,返回状态就不是200。于是我就回头再看看Jmeter返回的状态码,好家伙,没有一个是200的。再细想,不对啊,后置处理程序里判断了状态码是不是200呀。遂在研究研究脚本,稍微一细看就发现原因了。虽然脚本是判断了状态码是不是200,但是按照脚本判断的逻辑,状态码不是200的都判断为未中奖了。所以才导致不同的接口跑出来的结果都是不中奖。
下附原脚本:
import org.json.*;JSONObject jo = new JSONObject(prev.getResponseDataAsString());
String rewardName = "";
if (jo.getInt("code") == 200) {if (jo.getJSONObject("data").length() == 16) {rewardName = "奖品";} else if (jo.getJSONObject("data").length() == 18) {rewardName = "优惠券";} else {rewardName = "未知奖品";}
} else {rewardName = "未中奖";
}
vars.put("rewardName", rewardName);
这篇关于Jmeter响应数据是空,首要确认是否返回了数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!