小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

【Jmeter】BeanShell斷言

 小豬窩969 2018-04-19

API接口測(cè)試中,對(duì)于接口請(qǐng)求respone的校驗(yàn)是非常重要的一個(gè)環(huán)節(jié)



在使用Jmeter進(jìn)行接口測(cè)試時(shí),有多種respone校驗(yàn)方式,比如響應(yīng)斷言、BeanShell斷言等等,BeanShell斷言可以自定義斷言,自由靈活的用腳本實(shí)現(xiàn)斷言



什么是BeanShell

小型嵌入式Java源代碼解釋器,具有對(duì)象腳本語(yǔ)言特性,能夠動(dòng)態(tài)地執(zhí)行標(biāo)準(zhǔn)JAVA語(yǔ)法

運(yùn)行其內(nèi)部的腳本處理Java應(yīng)用程序,還可以在運(yùn)行過(guò)程中動(dòng)態(tài)執(zhí)行你java應(yīng)用程序執(zhí)行java代碼,因?yàn)锽eanShell是用java寫的,運(yùn)行在同一個(gè)虛擬機(jī)的應(yīng)用程序,因此可以自由地引用對(duì)象腳本并返回結(jié)果



先看看這樣的respone





{
    "message": "不能發(fā)送小于當(dāng)前時(shí)間點(diǎn)的定時(shí)任務(wù)",
    "statusCode": 200}


現(xiàn)在需要驗(yàn)證statusCode的值是否為200





import org.json.*;import java.util.Arrays;//獲取上一個(gè)請(qǐng)求的返回String jsonString = prev.getResponseDataAsString();
JSONObject responseJson = new JSONObject(jsonString);//判斷返回值是否和預(yù)期一致if (responseJson.getInt("statusCode") != 200) {//把斷言失敗置為真,即用例失敗,并在結(jié)果樹(shù)中顯示FailureMessageFailure = true;
    FailureMessage = "statusCode的返回值有誤";
}


如果要驗(yàn)證respone中message的值是否與預(yù)期一致,需要怎么做呢?





import org.json.*;import java.util.Arrays;//獲取上一個(gè)請(qǐng)求的返回String jsonString = prev.getResponseDataAsString();
JSONObject responseJson = new JSONObject(jsonString);String fbpcontent = responseJson.getString("message");if (!fbpcontent.equals("不能發(fā)送小于當(dāng)前時(shí)間點(diǎn)的定時(shí)任務(wù)")) {//把斷言失敗置為真,即用例失敗,并在結(jié)果樹(shù)中顯示FailureMessageFailure = true;
    FailureMessage = "message與實(shí)際值不一致";
}


現(xiàn)有這樣格式的respone數(shù)據(jù)





{
    "statusCode": 200,
    "data": [
        {
            "i": "50356",
            "n": "項(xiàng)目一",
            "v": "2.0",
            "iconUrl": "",
        },
        {
            "i": "45280",
            "n": "項(xiàng)目二",
            "v": "3.0",
            "iconUrl": "",
        },
        {
            "i": "14656",
            "n": "項(xiàng)目三",
            "v": "2.6",
            "iconUrl": "",
        },
        {
            "i": "66213",
            "n": "項(xiàng)目四",
            "v": "5.0",
            "iconUrl": "",
        }
    ]}


需要解析數(shù)組data的值,如何去解析呢?





import org.json.*;import java.util.Arrays;//獲取上一個(gè)請(qǐng)求的返回
String jsonContent = prev.getResponseDataAsString();  JSONObject response = new JSONObject(jsonContent);  JSONArray groups = response.getJSONArray("data");  String strData= groups.toString(); log.info(strData)


現(xiàn)在有更加復(fù)雜格式的respone數(shù)據(jù)





{  
  "priorityGroups": {  
    "proId": 1234,  
    "name": "項(xiàng)目一",  
    "groups": [  
      {  
        "id": "50356",  
        "items": [  
          {  
            "proId": 1360,  
            "n": "PC端",  
            "index": 1  
          },  
          {  
            "proId": 1361,  
            "n": "iOS端",  
            "index": 2  
          },  
          {  
            "proId": 1362,  
            "n": "安卓端",  
            "index": 4  
          }  
        ]  
      }  
    ]  
  },  
  "promotion": {  
    "proId": 1364,  
    "cusId": 84,  
    "name": "項(xiàng)目二",  
    "from": 1470821215,  
    "to": 1470907615,   
    "status": 1,  
    "objectId": 1069,  
    "createBy": 394,  
    "eff": 1470821215000,  
    "createTime": 1470821155000  
  }  
}  


如果需要解析groups中的數(shù)據(jù),需要怎么實(shí)現(xiàn)呢?



import org.json.JSONArray;  import org.json.JSONException;  import org.json.JSONObject;  String jsonContent = prev.getResponseDataAsString();  JSONObject response = new JSONObject(jsonContent);  JSONArray groups = response.getJSONObject("priorityGroups").getJSONArray("groups");  String strGroups = groups.toString(); 


BeanShell的獲取數(shù)據(jù)解析,還可以使用Gson提供的方法





//prev.getResponseDataAsString是Jmeter提供的方法,可以調(diào)取上次請(qǐng)求的響應(yīng)字符串  response = prev.getResponseDataAsString(); 

//使用Gson提供的方法解析jsonJsonParser parser = new JsonParser();    
JsonObject responseObj = (JsonObject) parser.parse(response);
               

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多