【Metersphere】變量:判斷返回參數(shù)的某個字段值是否包含在指定的列表中

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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容