问题:
1. jmeter发送请求1造数据成功,发送请求2执行应用程序;
2. 应用程序执行结果有误;跟踪tomcat日志发现空指针异常NullPointerException。
解决:
1. 排查“是否使用jmeter请求1造数据”的问题:
不使用jmeter造数据,用旧的方式造数据,看应用程序是否执行成功;
若执行成功,则证明程序没问题,jmeter造的数据有问题。
2. 排查“jmeter造的数据有什么问题”:
1> 监控tomcat日志`tail -f /.../tomcat/logs/catalina.out`
2> 监控结果:`net.sf.json.JSONException: Expected a ',' or '}' at character 1322 of ...`
3> 从监控结果看出是请求1的数据的JSON格式错误
3. 排查“JSON格式哪里出错?”
1> 在线json排错:https://jsonlint.com/
(输入json串后,点击【Validate JSON】,根据【Results】逐个修改字串错误)
2> 监控tomcat日志,仍然报出请求1数据解析异常
4. 排查“jmeter请求1的请求数据是否正常”
1> 检查“察看结果树”的“请求”数据,是否有异常数据
2> 检查结果:时间函数直接显示函数体,没生成具体数据
5. 排查“jmeter请求1的时间函数为什么错误?”
1> jmeter-菜单-选项-函数助手对话框:搜索使用的函数,确认函数格式等是否正确
2> 是否使用了函数助手对话框不存在的函数(即此版本的jmeter不支持的函数)
3> 检查结果:使用了日期移位操作的函数${__timeShift(yyyMMddHHmm,,-P7200D,,)},此版本的jmeter3.1不支持。
4> 解决:用回此版本jmeter支持的时间函数${__time(yyyy-MM-dd HH:mm:ss,)}
6. 继续边执行请求,边监控tomcat日志排错,直到执行成功。
good luck ( >_<)@