.⾸先储存⼀个接⼝的响应结果,⽐如在http请求的后⾯添加beanshell后置处理器(BeanShell PostProcessor)来储存http请求的响应结果:
1 import org.json.*; 2
3 //获取上⼀个请求的返回值
4 String response = prev.getResponseDataAsString(); 5 //将返回值转换为json
6 JSONObject responseJson = new JSONObject(response); 7 //获取responseMessage
8 String message = responseJson.getString(\"responseMessage\"); 9 log.info(\"message的值:\" + message);10
11 //使⽤vars.put()⽅法储存变量message12 vars.put(\"message\13 //获取titleLink
14 String titleLink = responseJson.getJSONObject(\"data\").getString(\"titleLink\");15 log.info(\"titleLink的值:\" + titleLink);16 //使⽤vars.put()⽅法储存变量message17 vars.put(\"titleLink\
在后⾯的其他接⼝中如何需要使⽤变量message和titleLink,可以使⽤${message}和${titleLink}来获取变量的值;
变量储存好后,在需要断⾔的接⼝后⾯添加BeanShell断⾔,使⽤Failrue来标识断⾔失败,FailureMessage标⽰断⾔失败的原因,如:
1 //使⽤vars.get()⽅法获取变量的值
2 String message= vars.get(\"message\");3
4 if(!message.equals(\"success\")) {5 Failure = true;
6 FailureMessage = \"规则解析失败\";7 }else{
8 FailureMessage = \"规则解析成功\";9 }
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2.直接在需要断⾔的接⼝后⾯使⽤beanshell断⾔,使⽤Failrue来标识断⾔失败,FailureMessage标⽰断⾔失败的原因,如:
1 import org.json.*; 2
3 //获取上⼀个请求的返回值
4 String response = prev.getResponseDataAsString(); 5 //将返回值转换为json
6 JSONObject responseJson = new JSONObject(response); 7 //获取responseMessage
8 String message = responseJson.getString(\"responseMessage\"); 9 log.info(\"message的值:\" + message);10
11 if(!message.equals(\"success\")){12 Failure = true;
13 FailureMessage = \"规则解析失败,message不等于success\";14 return;15 }16
17 //获取titleLink
18 Object titleLink = responseJson.getJSONObject(\"data\").get(\"titleLink\");19 log.info(\"titleLink的值:\" + titleLink.toString());20 21
22 if(titleLink.toString().equals(\"null\") || \"\".equals(titleLink)){23 Failure = true;
24 FailureMessage = \"规则解析失败,titleLink为空\";
25 }else if(!titleLink.toString().startsWith(\"http\") && !titleLink.toString().startsWith(\"https\")){26 Failure = true;
27 FailureMessage = \"规则解析失败,titleLink不为空,但是不是以http或者https开头的\";28 }
接⼝的响应数据为:
1 {
2 : \"responseCode\":\"1\
3 : \"responseMessage\":\"success\ 4 : \"responseType\":null, 5 : \"data\": 6 : {
7 : : \"city\":\"上海\ 8 : : \"rentUnit\":\"⽉\
9 : : \"source\":\"个⼈房源⽹\
10 : : \"title\":\"徐盈路1188弄徐泾青浦徐泾租房\11 : : \"belonger\":\"个⼈\12 : : \"housingType\":\"住宅\13 : : \"floor\":\"⾼层\
14 : : \"rentPrice\":\"17000\
15 : : \"titleLink\":\"http://sh.grfy.net/rent/d-34612565.html\16 : : \"decoration\":null,17 : : \"direction\":null,18 : : \"isSplit\":\"否\19 : : \"imgs\":null,
20 : : \"publishTime\":\"2018-07-25T23:20:33.471\21 : : \"contactMobile\":null,
22 : : \"website\":\"http://sh.grfy.net/rent/list_2_0_0_0-0_0_0-0_0_2_0_{}_.html\23 : : \"address\":\"徐泾\
24 : : \"contactName\":\"王⼥⼠\25 : : \"houseType\":\"4室2厅2卫\26 : : \"estate\":\"徐泾\27 : : \"roomArea\":\"177\
28 : : \"collectHouseType\":\"住宅\29 : : \"collectType\":\"出租\30 : : \"district\":\"青浦\
31 : : \"totalFloor\":\"共20层\32 : : \"region\":\"上海\33 : : \"isRegister\":\"否\
34 : : \"desc\":\"仁恒西郊花园 4室2厅2卫 房屋亮点 新上 配套齐全 有阳台 ⾸次出租 随时看房 出租要求 ⼀家⼈ ⼀年起租 租户稳定 作息正常 房源描述⼩区环境好,物业管理成熟,私⼈会所实施配套齐全,临近地铁17号徐盈站,周边多所国际学校,35 : }36 }
断⾔失败如下:
因篇幅问题不能全部显示,请点此查看更多更全内容