Postman提取html返回值


Postman進行接口測試時,返回的是部分html代碼時,我們需要其中的數據進行下一個接口使用,這是需要我們編寫腳本來獲取某些返回數據。

它支持的時JS腳本,本人不太精通,自己百度學習參考得來的方法,還請大神勿噴和優化指教。

1、編寫接口相關信息

  將接口路徑和參數等配置好,確保訪問成功並有相應的html返回值。

2、在Tests面板編寫腳本

  1)打開請求的Tests面板,根據返回的html進行分析編寫腳本,一定要分析好html的標簽分層,比如div的下層時div還是ul,以及對應同級的多個div或ul需要用div[i]來表示。

  2)返回的html代碼

  1111

  

  

  瀏覽器顯示為這樣。

 

  3)根據html編寫的腳本代碼如下,僅供參考:

//獲取列表下某個分類存在的id
var jsonObject = xml2Json(responseBody);//將html轉化為json格式
pm.globals.set("exist_id", JSON.stringify(jsonObject.div.ul[0].div.a.$.catalogId));//將json中的某值轉化string賦值給變量,對應路徑div>a>ul[0]>div>a>$>catalogId
console.log("存在的第一個id:"+pm.variables.get("exist_id"))//控制台輸出變量值
pm.globals.set("ul_html", jsonObject.div.ul);//將div下ul的html代碼轉化為json賦值給變量
var str_html = pm.variables.get("ul_html")  //將postman變量賦值為js對象
function count(o){ //定義方法獲取相同html標簽的個數,(比如a標簽數量)
    var t = typeof o;
    if(t == 'string'){
        return o.length;
    }
    else if(t == 'object'){
        var n = 0;
        for(var i in o){
            n++;
        }
        return n;
    }
    return false;
}
var id_count = count(str_html);//定義變量獲取個數
console.log("列表下分類數量:"+id_count);

var id_dict = [];   //定義一個數組存放數據,(如需轉化為數字,使用parseInt(str)函數)
for (i=0;i<id_count;i++){   //循環將多個分類的id和分類名以字段{}形式存放到id_dict
   var id = jsonObject.div.ul[i].div.a.$.catalogId //獲取標簽內的catalogId屬性值,即id
   var value = jsonObject.div.ul[i].div.a._        //獲取標簽內的text值,即分類名
    id_dict.push({id,value});                           //存放進入
}
console.log((id_dict));      //打印整個數組
console.log("匹配str('7')是否存在:存在返回下面的一個list ")
console.log(responseBody.match("7"))//此方法用來匹配str_html中是否存在某個id
//這是將id_list中的某個值取出定義為postman變量並打印
var id = id_dict[0].id                  
pm.environment.set("id", id);
console.log("第一個id值"+pm.environment.get("id"))
 

  4)下一個接口調用

  將某個需要的id賦值給postman的一個環境變量,然后下一個接口直接引用postman的這個變量名就行。

控制台結果如下圖:

 



參考鏈接:

  https://www.cnblogs.com/sunnywindycloudy/p/7382226.html

  https://jlhxxxx.github.io/postman-start.html

  https://blog.csdn.net/nikita1995/article/details/81284984

  https://www.cnblogs.com/zoraliu66/p/6566598.html

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM