精华内容
下载资源
问答
  • postman断言
    千次阅读
    2021-08-17 19:41:49

    一、postman断言

    1、postman常见断言

    断言一般都是对 请求的响应结果做操作,

    因此要写到 postman的 Tests窗口中

    • 查看状态码是多少
    pm.test("是否登录成功",function(){
        pm.response.to.have.status(200)
        pm.expect(pm.response.json().code).to.eql(200)
    })
    
    • 查看返回内容是否包含某字符串
    // 判断 返回内容 是否包含 某个字符串
    pm.test("是否有登录成功语句", function () {
        pm.expect(pm.response.text()).to.include("登录成功");
    });
    
    • 查看返回内容是否等于某字符串
    // 判断 返回内容 是否等于 某个字符串
    pm.test("body是否等于登录成功", function () {
        pm.response.to.have.body("{\"msg\":\"登录成功\",\"code\":200}");
    });
    

    说明:

    默认 双引号中 不能 带双引号,如果有的话 需要通过转移字符斜杠来转义。

    • 查看返回的json内容,看具体的字段是否满足某值
    pm.test("是否登录成功",function(){
        pm.expect(pm.response.json().code).to.eql(200)
    })
    

    2、postman的变量

    • 环境变量
      • 只对选择了对应环境变量的测试集生效
      • 环境一般分为: 开发环境, 测试环境, 生产/线上环境(部分公司可能在测试与生产之间存在预生产环境)
      • 一套环境中变量不能重复, 但是可以定义多个不重复的变量

    ​ 我们可以在Environment 中 设置 环境变量,

    例如我设置,测试环境下的变量

    login_url 值是 http://192.168.18.185:8000

    我们就可以在postman的任何地方使用了 这个测试环境下的login_url

    • 全局变量

    全局变量在 postman下的 Globals中设置,在这里设置的 可以在任何环境变量中使用。如果有重名,有限使用环境变量的值。

    3、前置脚本

    请求前置脚本就是在请求发送前执行的脚本, 请求前置脚本需要写在“Pre-request Script”窗口中.
    应用场景:

    - 请求参数中包含一个随机数或者时间戳
    - 请求之前需要对请求参数做进一步处理(如:对敏感参数进行加密)
    

    4、接口关联

    当请求之间有依赖关系, 比如一个请求的入参是另一个请求返回的数据, 这时候需要用到关联处理。

    • 案例
    (1).请求获取天气的接口,http://www.weather.com.cn/data/sk/101010100.html
    (2).获取返回结果中的城市名称
    (3).调用百度搜索接口: http://www.baidu.com/s?wd=北京 ,把获取到的城市名称作为请求参数
    
    更多相关内容
  • Postman断言

    千次阅读 2022-03-14 15:47:51
    postman断言的使用 判断状态码 pm.test("状态码是200", function () { pm.response.to.have.status(200); }); 判断json指定key等于指定值 pm.test("msg等于账户与密码不匹配", function () { var jsonData = pm....

    postman断言的使用

    判断状态码

    pm.test("状态码是200", function () {
        pm.response.to.have.status(200);
    });
    

    判断json指定key等于指定值

    pm.test("msg等于账户与密码不匹配", function () {
        var jsonData = pm.response.json();
        pm.expect(jsonData.msg).to.eql("账户与密码不匹配");
    });
    

    判断success指定true等于指定值

    pm.test("success等于true", function () {
        var jsonData = pm.response.json();
        pm.expect(jsonData.success).to.eql(true);
    });
    

    判断返回[]

    pm.test("内容长度为0", function () {
        var jsonData = pm.response.json();
    	//实际就是判断json长度等于0
        pm.expect(jsonData.length).to.eql(0);
    });
    

    判断json数组条数大于指定值

    pm.test("条数大于0", function () {
       var jsonData = pm.response.json();
       pm.expect(jsonData.length).to.above(0);
    });
    

    判断json数组条数小于指定值

    pm.test("条数小于5", function () {
        var jsonData = pm.response.json();
       pm.expect(jsonData.length).to.above(5);
    });
    

    判断没有返回内容

    pm.test("数据为空", function () {
        pm.expect(pm.response.text()).to.eql("");
    });
    

    判断json的数据值是否等于指定值

    第一种
    var jsonData = JSON.parse(responseBody);
    tests["Check respose status value"] = jsonData.status === 1;
    
    第二种
    pm.test("判断data里面第一个json数据的id为1", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.data[0].id).to.eql(1);});
    

    Check if response body contains a string (检查响应主体是否包含字符串)

    pm.test("Body matches string", function () {
        pm.expect(pm.response.text()).to.include("string_you_want_to_search");
    });
    

    Check if response body is equal to a string (检查响应主体是否等于一个字符串)

    pm.test("Body is correct", function () {
        pm.response.to.have.body("response_body_string");
    });
    

    Check for a JSON value (检查JSON值)

    pm.test("Your test name", function () {
        var jsonData = pm.response.json();
        pm.expect(jsonData.value).to.eql(100);
    });
    

    Content-Type is present (内容类型存在)

    pm.test("Content-Type is present", function () {
        pm.response.to.have.header("Content-Type");
    });
    

    Response time is less than 200ms (响应时间小于200ms)

    pm.test("Response time is less than 200ms", function () {
        pm.expect(pm.response.responseTime).to.be.below(200);
    });
    

    Status code is 200 (状态码是200)

    pm.test("Status code is 200", function () {
        pm.response.to.have.status(200);
    });
    

    Code name contains a string (代码名称包含一个字符串)

    pm.test("Status code name has string", function () {
        pm.response.to.have.status("Created");
    });
    

    Successful POST request status code (成功的POST请求状态码)

    pm.test("Successful POST request", function () {
        pm.expect(pm.response.code).to.be.oneOf([201,202]);
    });
    

    Decode base64 encoded data (解码base64编码的数据)

    var intermediate,
        base64Content, // assume this has a base64 encoded value
        rawContent = base64Content.slice('data:application/octet-stream;base64,'.length);
     
    intermediate = CryptoJS.enc.Base64.parse(base64content); // CryptoJS is an inbuilt object, documented here: https://www.npmjs.com/package/crypto-js
    pm.test('Contents are valid', function() {
      pm.expect(CryptoJS.enc.Utf8.stringify(intermediate)).to.be.true; // a check for non-emptiness
    });
    

    Send an asynchronous request (发送异步请求)

    pm.sendRequest("https://postman-echo.com/get", function (err, response) {
        console.log(response.json());
    });
    

    Convert XML body to a JSON object (将XML正文转换为JSON对象)

    var jsonObject = xml2Json(responseBody);
    

    判断请求body的值

    pm.test("判断请求body是否包含name,images,detail,providerPrice,categoryId", function () {
        var jsonData = pm.response.json();
        // 一、变量Body:存储raw中,请求Body的参数
        var jodabody = pm.request.body.raw;
        // 二、将Body转化为Json格式的数据,使用 JSON.parse()
        // var body_json = JSON.parse(jodabody);
        //三、提取请求Body中的 id 参数值
        pm.expect(jodabody).to.include("name");
        pm.expect(jodabody).to.include("images");
        pm.expect(jodabody).to.include("detail");
        pm.expect(jodabody).to.include("providerPrice");
        pm.expect(jodabody).to.include("categoryId");
    });
    

    设置全局变量

    // 将获取到到token写环境变量中,供注册、登录、查询用户信息及退出请求使用
    var JsonData = pm.response.json().data
    pm.globals.set("logo_token",JsonData.token)
    
    // 将获取到到id写环境变量中,供注册、登录、查询用户信息及退出请求使用
    var JsonData = pm.response.json()
    var len = JsonData.data.items.length;
    var last = JsonData.data.items[len-1]
    pm.globals.set("yingxiao_id",last.id)
    

    利用tests进行断言

    /*
    // 推荐用全等 ===,确保类型和值都一致
    tests['Status code is 200'] = responseCode.code === 200; 
    // 判断是否存在 'success' 值  
    tests["Body matches code"] = responseBody.has("0");
     
    var jsonData = JSON.parse(responseBody);
    postman.setEnvironmentVariable("sessionId",jsonData.result);
     
    tests[`[INFO] Request params: ${JSON.stringify(request.data)}`] = true;
     
    tests["have result "]=jsonData.hasOwnProperty("error")!==true;
    tests[`[INFO] Response timeout: ${responseTime}`] = responseTime < 6000;
        **/
    //状态代码是200
    if(responseCode.code === 200){
    // 判断是否存在 'success' 值,检查响应体包含一个字符串
    tests["Body matches code"] = responseBody.has("0");
    //响应结果中result保存为全局变量sessonId
    var jsonData = JSON.parse(responseBody);
    postman.setGlobalVariable("sessionId",jsonData.result);
    //输入接口参数信息
    tests[`[INFO] Request params: ${JSON.stringify(request.data)}`] = true;
    // tests["have result "]=jsonData.hasOwnProperty("error")!==true;
    //判断接口响应结果有result
    tests["have result "]=jsonData.hasOwnProperty("result")===true;
    //判断接口响应时间小于N秒
    tests[`[INFO] Response timeout: ${responseTime}`] = responseTime < 6000;
    }else{
    //接口请求失败
    tests["Waring:Request Failed. Please Fix!"] = false;
    }
    

    时间转成时间戳进行比较大小

    pm.test("判断第三个商品时间是否大于第二个商品时间,比较时间戳", function () {
        var jsonData = pm.response.json();
        var firstTime = jsonData.data.items[1].createdAt
        var threeTime = jsonData.data.items[2].createdAt
        thisTime1 = firstTime.replace(/-/g,'/')
        var time1 = new Date(thisTime1)
        time11 = time1.getTime()
        thisTime2 = threeTime.replace(/-/g,'/')
        var time2 = new Date(thisTime2)
        time22 = time2.getTime()
        pm.expect(time11).to.above(time22)
    });
    
    展开全文
  • postman断言方法

    千次阅读 2021-09-21 00:17:47
    postman一共有8种断言方式 postman断言方式 //八种断言方式 1、断言返回码为200(*****)状态断言 pm.test("Status code is 200", function () { pm.response.to.have.status(200); }); 2、断言返回的结果...

    postman一共有8种断言方式

     postman的断言方式

    //八种断言方式

    1、断言返回码为200(*****)状态断言

    pm.test("Status code is 200", function () {
    
    pm.response.to.have.status(200);
    
    });

    2、断言返回的结果中包含有指定的字符串(*****)业务断言

    pm.test("Body matches string", function () {
    
    pm.expect(pm.response.text()).to.include("tags");
    
    });

    3、对返回的结果做json字段检查(*****)业务断言

    pm.test("Your test name", function () {
    
    var jsonData = pm.response.json();
    
    pm.expect(jsonData.tags[0].id).to.eql(2);
    
    });

    4、断言返回的结果等于一个字符串(*****)业务断言

    pm.test("Body is correct", function () {
    
    pm.response.to.have.body("response_body_string");
    
    });

    5、断言响应头中包含有指定的响应头

    pm.test("Content-Type is present", function () {
    
    pm.response.to.have.header("Content-Type");
    
    });

    6、断言相应的时间少于200ms(*****)性能断言

    pm.test("Response time is less than 200ms", function () {
    
    pm.expect(pm.response.responseTime).to.be.below(200);
    
    });

    7、断言一个post请求返回的状态码是不是在指定的范围内

    pm.test("Successful POST request", function () {
    
    pm.expect(pm.response.code).to.be.oneOf([201, 202]);
    
    });

    8、断言返回的状态码包含指定的字符串

    pm.test("Status code name has string", function () {
    
    pm.response.to.have.status("Created");
    
    });

    精确断言

    var time = Date.now()
    
    console.log(time)
    
    pm.globals.set("time", time);

    首先当请求体里面的数是不固定的时想要精确断言到对应的值时

    第一步:在Pre-request Script中设置对应的变量(请求前的操作)

    第二步:在请求体中用上对应的全局变量

    第三步:精确断言

    展开全文
  • Postman断言的介绍和使用,断言排错说明,断言响应状态码—status code:code is 200, 断言是否包含指定字符串—response body contains string,断言JSON数据--response body: JSON value check,断言等于字符串 –...

    断言:通过代码自动判断实际运行的结果是否与测试用例中的预期结果一致
    断言结果:
    结果一致:测试通过
    结果不一致,测试不通过
    排错说明:1.断言代码片段是否选错了
    2.预期结果或者字段是否设置错了
    3.点击发送,对body数据进行初步判断
    4.检查请求相关参数

    1. 断言响应状态码—status code:code is 200

    在这里插入图片描述

    2. 断言是否包含指定字符串—response body contains string

    在这里插入图片描述

    3. 断言JSON数据–response body: JSON value check

    在这里插入图片描述

    4. 断言等于字符串 –response body : Is equal to a string

    在这里插入图片描述

    5. 响应断言头部检查—response headers :content-type header check

    在这里插入图片描述

    展开全文
  • Postman断言功能

    2021-08-05 17:13:04
    断言是写在Postman的Test模块中 使用JS语言。 二.Postman可以一键生成断言 在左边的黄色字体 点一下就可以自动生成 三.下面介绍几种测试中常用的断言 1.判断响应码是否为200? pm.test("Status code is ...
  • 01-Postman断言-常用断言

    千次阅读 2021-10-28 11:43:01
    一、在使用postman的过程中必不可少的会使用的断言,这里可以将断言分为2大类,其中一种就是:postman自带断言脚本,另外就是根据自己的测试需求进行一个断言脚本的编写。 我使用的postman是9.0.8的版本 1、首先...
  • postman断言

    千次阅读 2021-12-09 16:50:11
    Postman断言 一、postman提供断言方法 方法名 注解 Get an environment variable 获取一个环境变量(只会再活动的环境变量中搜索) ...
  • postman 断言

    2020-09-30 16:31:55
    Postman中,断言在哪里写呢? test 1.判断响应结果是否包含指定的内容(常用) 使用:response body : contains string 代码: pm.test("判断响应结果是否包含指定的内容",function(){ pm.expect(pm.response....
  • 文章目录1、Tests的介绍2、常用SNIPPETS(片段)说明(1)常用...Postman中的断言是使用请求后脚本Tests,是对状态码、响应头、响应正文等信息进行断言操作。 在Postman中封装了我们常见的断言代码片段,当然Tests除了
  • postman断言详解

    千次阅读 2019-11-14 10:43:32
    Postman断言 一个完整的接口测试,包括:请求——>获取相应正文——>断言,我们已经知道了请求与获取响应正文,下面来介绍如何用postman进行断言 Tests 这个“Tests”就是我们需要处理断言的地方,postman...
  • 昨天面试,面试官问:Postman断言是什么写的语言 平时还没自己留意,没答上来,后面百度了一下才知道是JavaScript语言编写的! pm.test("Status code is 200", function () {  &...
  • Postman断言是JavaScript语言编写的,写在tests标签页里,在sandbox中运行,postman预置了很多公共库,如 cheerio(解析html)、lodash(简化JSON操作)、CryptoJS (加密解密)、chai (断言框架)等。 接下来...
  • 下面以一个接口实例来说下如何处理断言 上图是接口的Response body 以字段"name"为例,构造断言数据,检查Response body中JSON是否包含"name": “35_Tsang” 请求接口后,提示断言成功 ...
  • Postman断言设置.docx

    2020-06-28 17:44:42
    Postman是专业的接口测试工具,断言一直是围绕工程师头痛的地方,本文记录了如何进行断言代码的编写
  • postman断言示例:Status code:Code is 200

    千次阅读 2021-09-28 14:54:19
    下面以一个接口实例来说下如何处理断言 如上图所示,接口响应的状态是404 Not Found,此时就断言失败。 如上面两张图所示,response body返回的数据,不会影响断言的结果,也就是说只要接口请求成功,请求后返回...
  • 下面以一个接口实例来说下如何处理断言 pm.test("Body matches string", function () { pm.expect(pm.response.text()).to.include("Tsang"); }); 如上图所示,Response body中包含了"Tsang",此时就断言成功了。...
  • postman断言--数据比对

    千次阅读 2019-06-17 14:49:02
    此处使用了:Response body:JSON value check方法 、Get an environment variable方法 和 断言 7.点击Send,查看Body、Test Results,操作成功 Body 成功: Test Results 成功 :  
  • 进行接口测试时,添加断言时必不可少的,断言就是判断响应内容与预期返回是否一致 下面以一个接口实例来说下如何处理断言: 如上图所示,响应body的内容为一个json格式的字符串,这些内容可以作为断言的依据 切换到...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,992
精华内容 2,796
关键字:

postman断言

友情链接: 马尔科夫链.zip