美文网首页API接口开发测试
【接口工具ApiPost】预后执行脚本、断言、测试验证定义使用(

【接口工具ApiPost】预后执行脚本、断言、测试验证定义使用(

作者: lc951 | 来源:发表于2022-05-22 13:56 被阅读0次

    脚本语法
    JavaScript语法规则
    实现功能有:
    测试(断言)请求返回结果的正确性(后置脚本)。
    动态修改接口请求参数,如增加接口签名参数等(前置脚本)。
    接口请求之间传递数据(使用脚本操作变量)。
    脚本中可以直接请求一个接口地址。

    例子:在预执行脚本中定义一个函数_random

    function _random(){
        return '你好,中国' + Math.random();
    }
    //使用
    apt.globals.set("random_var", _random());
    

    预后执行脚本都可定义、获取、删除、清空环境变量、全局变量等
    例子如下:

    apt.variables.set("key", "value"); // 设置一个值为value的环境变量key
    apt.variables.get("key"); // 获取环境变量key的值
    apt.variables.delete("key"); // 删除环境变量key
    apt.variables.clear(); // 清空定义的全部环境变量
    
    apt.globals.set("key", "value");  // 设置一个值为value的全局变量key
    apt.globals.get("key");  // 设置一个值为value的全局变量key
    apt.globals.delete("key");  // 设置一个值为value的全局变量key
    apt.globals.clear(); // 清空定义的全部全局变量```
    
    

    后执行脚本还可进行断言和响应结果数据可视化设置

    断言
    1、断言定义
    2、断言验证
    返回响应数据如下

    {
        "code": 10000,
        "msg": "success",
        "data": {
            "cur_page": "1",
            "last_page": 2,
            "page_size": "20",
            "total": 30,
            "list": [
                {
                    "id": 3,
                    "title": "前后仅用了4分钟,16枚洲际导弹应声而出,美航母也不敢轻举妄动",
                    "author": "烽火杂志",
                    "url": "https://open.apipost.cn/",
                    "content": "世界上哪个国家可与美军抗衡?国际社会上关于这一问题的答案千奇百怪,但有一个国家用行动让美军闭嘴,短短4分钟连续发射16枚洲际导弹,场面十分壮观,让西方国家畏惧不已,即便是美航母也不敢轻举妄动。"
                }
            ]
        }
    }
    
    

    定义:在后执行脚本里添加;
    特别注意:每个测试用例是一行,不能换行。

    apt.assert('response.raw.responseText=="test"');
    apt.assert('response.raw.status==200');
    apt.assert('response.raw.type=="json"');
    apt.assert('response.raw.responseTime>=100');
    apt.assert('response.json.errcode==1');
    apt.assert('response.json.errcode!=1');
    apt.assert('response.json.errcode>=1');
    apt.assert('response.json.errcode==null');
    apt.assert('response.json.errcode!=null');
    apt.assert('response.headers["server"] == "nginx"');
    apt.assert('response.headers["content-encoding"] == "gzip"');
    

    验证结果:


    image.png

    绿色表示测试通过,红色表示测试不通过
    【补充】集合(list)验证
    定义:

    //验证集合list测试用例定义;  
    // 笔者暂时还没有找到添加断言业务描述的参数方法,一般断言有断言描述和断言表达式。但这个语法上好像不支持。
    // 后期如果找到一并补充上
    if(response.json.hasOwnProperty("data")){
        // apt.assert('response.raw.responseText=="test"');
        if(response.json.data.hasOwnProperty("list")
            && response.json.data.list.length>0){
            //  apt.assert('response.raw.responseText=="test"');
             for(var i=0;i<response.json.data.list.length;i++){
                apt.assert(true,"i="+i);
                var item=response.json.data.list[i];
                response.json.data.item=item;
                apt.assert('response.json.data.item.hasOwnProperty("id")');
                apt.assert('response.json.data.item.hasOwnProperty("title")');
                apt.assert('response.json.data.item.hasOwnProperty("author")');
                apt.assert('response.json.data.item.hasOwnProperty("url")');
                apt.assert('response.json.data.item.hasOwnProperty("content")');
             }
        }
    }
    
    
    
    image.png

    笔者暂时还没有找到添加断言业务描述的参数方法,一般断言有断言描述和断言表达式。但这个语法上好像不支持。后期如果找到一并补充上

    相关文章

      网友评论

        本文标题:【接口工具ApiPost】预后执行脚本、断言、测试验证定义使用(

        本文链接:https://www.haomeiwen.com/subject/ydkfprtx.html