ctx的多种用法
CTX variable gives you the control over your current Thread. There are many functions that you can use.
log.info("Current Sampler class is: " + ctx.getCurrentSampler());
log.info("JMeter Engine class is: " + ctx.getEngine());
log.info("Previous Response Message is: " + ctx.getPreviousResult().getResponseMessage());
log.info("Previous Response Code is: " + ctx.getPreviousResult().getResponseCode());
log.info("Previous Response URL is: " + ctx.getPreviousResult().getURL());
log.info("Previous Response Time is: " + ctx.getPreviousResult().getTime());
log.info("Previous Domain is: " + ctx.getPreviousSampler().getDomain());
log.info("Previous Protocol is: " + ctx.getPreviousSampler().getProtocol());
log.info("Previous Port is: " + ctx.getPreviousSampler().getPort());
log.info("Previous Method is: " + ctx.getPreviousSampler().getMethod());
log.info("Thread Name is: " + ctx.getThread().getThreadName());
log.info("Thread Start Time is: " + ctx.getThread().getStartTime());
log.info("Thread End Time is: " + ctx.getThread().getEndTime());
log.info("Start Next Thread Loop on Error: " + ctx.getThreadGroup().getOnErrorStartNextLoop());
log.info("Stop Test on Error: " + ctx.getThreadGroup().getOnErrorStopTest());
PREV 的多种用法
PREV variable gives you control over your sampler’s response.
String code = prev.getResponseCode(); //获取状态码
String message = prev.getResponseMessage(); //获取message
String json_result=prev.getResponseDataAsString(); //响应信息转为字符串
prev.getTime().toString();
prev.getConnectTime().toString();
prev.getURL();
prev.isSuccessful().toString();
prev.getResponseHeaders();
脚本信息:
log.info("THREAD Name "+ctx.getThread().getThreadName());
log.info("THREAD Name "+ctx.getThread().getStartTime());
log.info("Response Time is: " + prev.getTime().toString());
log.info("Connect Time is: " + prev.getConnectTime().toString());
log.info("URL is: " + prev.getURL());
log.info("The result is passed: " + prev.isSuccessful().toString());
log.info("Headers are: " + prev.getResponseHeaders());
应该场景:若接口调用失败,停止此线程
if(!prev.isSuccessful()){
ctx.getEngine().stopTest();//停止线程
}
参考链接:
https://www.colabug.com/2018/1107/5176713/
https://www.redline13.com/blog/2018/06/testing-complex-logic-with-jmeter-beanshell/