1、需求:
找到下發(fā)或排產(chǎn)狀態(tài)的工單的模具(但模具本身必須是正常狀態(tài)),獲取其id。
2、思路:
1)調(diào)用模具臺賬接口獲取所有正常狀態(tài)的模具,提取參數(shù)作為變量供下一個接口判斷使用;
2)調(diào)用工單進(jìn)度查看接口,獲取非生產(chǎn)非結(jié)單非完成狀態(tài)的工單,獲取其模具id;
同時循環(huán)判斷本接口的返回參數(shù)中工單模具編號是否可以在上一個接口提取的字符串中,如果有則停止循環(huán),將捕捉到的模具的id存入環(huán)境變量,供下一個接口使用。
3、場景用例

圖片.png
4、beanshell 后置腳本
//導(dǎo)包
import org.json.*;
import org.json.JSONObject;
import org.json.JSONArray;
moldsCode = vars.get("moldsCode");
//定義一個方法斷言業(yè)務(wù)是否成功
public static void isVal(){
String response_data = prev.getResponseDataAsString();
JSONObject data_obj = new JSONObject(response_data);//創(chuàng)建一個jsonObject類型對象,并將響應(yīng)數(shù)據(jù)放到里面
//判斷rows是否為空,為空直接返回null,不再走后面的for流程
if((data_obj.get("rows")).equals(null)){
log.info("※※ 接口返回的rows列表是空的");
}
else{
JSONArray rows_list = (JSONArray)((JSONObject)data_obj).get("rows");
for(int i=0;i<rows_list.length();i++){
moldcode = ((JSONObject)rows_list.get(i)).get("moldcode");
orderchildno = ((JSONObject)rows_list.get(i)).get("orderchildno");
if(moldsCode.contains(moldcode)){
log.info("已找到正常狀態(tài)的模具"+moldcode+",對應(yīng)的工單為"+orderchildno);
vars.put("moldcode",moldcode);
break;
}
else{
log.info("※※ 沒有找到正常狀態(tài)的模具的工單");
}
}
}
}
//調(diào)用斷言方法
isVal();
6、結(jié)果

圖片.png