• 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

      

  • 相关阅读:
    【C++程序员学 python】python 的文件类型
    Python如何下载文件
    【C++程序员学 python】python split and join 分割与合并
    知道创宇研发技能表v2.1
    Scapy:局域网MAC地址扫描脚本
    LeetCode: Linked List Cycle II 解题报告
    LeetCode: Insertion Sort List 解题报告
    Lintcode: Minimum Adjustment Cost 解题报告
    LeetCode: Merge Two Sorted Lists 解题报告
    LeetCode: Palindrome Partitioning II 解题报告
  • 原文地址:https://www.cnblogs.com/fxcity/p/11055463.html
Copyright © 2020-2023  润新知