乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      【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寫(xiě)的,運(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)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(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)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多