当前位置 博文首页 > 个人微信:xiaobotester,添加进行学习交流请备注。 个人微信公

    个人微信:xiaobotester,添加进行学习交流请备注。 个人微信公

    作者:[db:作者] 时间:2021-07-03 09:28

    前面章节解决了“请求本身”的问题,但“请求前后的动作”是怎样处理的呢?比如在发送一个请求前,需要获取当前时间戳,这就需要用到Pre-request Script的知识了。另外,似乎还忽略了一个非常重要的知识点,请求返回响应后,如何自动判断响应是否正确呢?这就需要用到Tests的知识。本章将重点介绍Pre-request Script和Tests的相关知识。

    对于单个请求而言,两个脚本执行顺序:

    Pre-request Script:在发送请求之前执行

    Tests:在发送请求之后执行

    站在集合角度,执行顺序如下:

    ① 与集合相关的Pre-request Script脚本将在集合中的每个请求之前运行。

    ② 与文件夹相关联的Pre-request Script脚本将在文件夹中的每个请求之前运行。

    ③ 与集合相关的Tests脚本将在集合中的每个请求之后运行。

    ④ 与文件夹关联的Tests脚本将在该文件夹中的请求之后运行。

    集合和文件夹也能设置脚本,这点我之前没关注过:

    因此可以得出结论:

    集合级脚本>文件夹级脚本>请求级脚本? ?{优先级从高->低}

    Pre-request Script脚本的使用场景

    一般用来在发送请求之前对数据进行一些预处理,比如获取当前时间戳、随机数之类的用于接口传参。

    常见的函数以及用法有:

    pm.environment.get("variable_key");
    pm.globals.get("variable_key");
    pm.variables.get("variable_key");
    pm.collectionVariables.get("variable_key");
    pm.environment.set("variable_key", "variable_value");
    pm.globals.set("variable_key", "variable_value");
    pm.collectionVariables.set("variable_key", "variable_value");
    pm.environment.unset("variable_key");
    pm.globals.unset("variable_key");
    pm.collectionVariables.unset("variable_key");
    pm.sendRequest("https://postman-echo.com/get", function (err, response) {
        console.log(response.json());
    });
    

    说明:

    postman中的自己编写的脚本目前一般是只支持用js,但是你可以通过其他的方式去间接的嵌入python脚本, postman在Pre-request Script脚本中是可以发送请求的,那么你可以把写的python或者其他语言的脚本发布为api的接口,然后在postman中以接口的形式去进行调用。

    Tests脚本使用场

    Postman工具借助测试脚来帮助用户自动判断接口请求是否正确,相当于Load Runner工具中的检查点或者JMeter中的断言功能。

    列举结果最基础的断言里面常用的函数:

    //检查响应状态是不是200
    pm.test("Status code is 200", function () {
        pm.response.to.have.status(200);
    });
    
    
    //检查返回结果会否包含某个字符串
    pm.test("Body matches string", function () {
        pm.expect(pm.response.text()).to.include("string_you_want_to_search");
    });
    
    
    //响应时间会否小于200毫秒
    pm.test("Response time is less than 200ms", function () {
        pm.expect(pm.response.responseTime).to.be.below(200);
    });
    
    
    

    官网上,一些脚本的使用案例,感兴趣的可以自己学习:

    https://learning.postman.com/docs/writing-scripts/script-references/test-examples/

    英文文档并不可怕,一些简单的英文单词什么的还是应该要能够看懂的。

    往期推荐

    Postman教程-变量、集合的基本使用

    Postman教程-通过设置代理/拦截器捕获请求信息

    Postman教程-Response相关的基本操作

    Postman教程-Send Requests相关的基本操作

    Postman教程-接口测试流程&发送第一个请求

    Postman+Newman+Git+Jenkins实现接口自动化测试持续集成

    2020年小博公众号文章集锦

    给大家分享一下在长沙租房子的经历

    cs