zoukankan      html  css  js  c++  java
  • postman数据驱动与断言


    postman数据驱动与断言

    沈一愣

    test验证:
    1.验证状态
    自带函数:status code
    pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
    });

    2.验证值等于:
    (1).部分值等于。
    自带函数:json value check
    pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
    });

    EG:value为:jsonData.success 或jsonData['success'] 组合成pm.except().to.eql(true),或直接判断是否相等 pm.response.json().success = true
    (2).整个响应体等于
    自带函数:response body is equal to a string
    pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
    });

    3.验证字符串包含
    自带函数:contains string
    pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
    });

    4.验证正则匹配 注意必须要有【1】
    格式:res.match(new RegExp("此处填入字符串,带引号"))[1],,res为返回体的.text()格式数据;欲匹配项用(.+?)表示,
    把待验证的部分,用正则表达式表示并提取出来(pm.response.text().match(new RegExp("")))[1],然后验证提取的值等于你期望的值。
    EG:
    pm.test("正则匹配验证",function() {
    res=pm.response.text()
    var exp = res.match(new RegExp(""success":(.+?),"))[1]
    pm.expect(exp).to.eql("true")
    }) 注意[1]和匹配字符串中的空格

    正则匹配时,输入(.+?)时,如果是搜狗输入法,有可能会习惯性多一个括号,要注意删除。

    5.验证返回是否是图片
    自带函数:content-type header check
    pm.test("查看是否是图片", function () {
    pm.response.to.have.header("Content-Type","image/png");
    });

    5.JSON格式,有时候可以直接用来匹配,不一定非用正则

    6.console.log(pm.response.json().topic_id) 在控制台打印。。
    postman 数据驱动

    将接口先保存到收藏夹中,因为Postman批量执行接口测试,必须是同一个文件夹的接口才可以。

    可以有两种格式造数据:
    第一种,json格式:
    [
    {"":"","":"","":"","":""},
    {"":"","":"","":"","":""},
    {"":"","":"","":"","":""}
    ]
    有多少入参,每条数据里就多少组入参和对应值。
    第二种,csv格式,方便一些,直接用notepad编辑,选择编码
    ,第一行是所有入参,下面的行是所有对应值,不用每个值都加引号。
    然后保存为**.csv格式的文件
    EG:

    title,tab,content
    真无聊00,ask,端午节都干啥啊
    真无聊01,ask,端午节都干啥啊
    真无聊02,ask,端午节都干啥啊

    选择线程,选择文件,选择文件格式,选择预览(preview),看是否有乱码的情况。
    #################################################################
    数据中加断言才是完美完整合理的数据
    #################################################################
    实现数据驱动和断言:

    1 分析用例数据,设计数据文件

    2 在测试脚本中,使用参数关联技术,关联参数到数据文件中的数据,
    目标就是把数据文件中的参数,分别关联到请求数据和断言数据中,怎么做呢,这里要介绍两个方法


    1.请求参数可以通过{{var}}来引用

    2.断言中的数据,由于是在Tests中写入的脚本,并不能直接通过{{var}}来引用,所以需要引用Postman的相关API进行调用,如:pm.variables.get("var")

    pm.variables.get("数据文件中相应的变量名")

    3.空内容在数据中,要用空格代替。不能直接两个逗号,中间要加空格。

    eg:
    pm.test("Status code is 400", function () {
    pm.response.to.have.status(400);
    });
    pm.test("success值为:false", function () {
    res = pm.response.text()
    var exp = res.match(new RegExp(""success":(.+?),"))[1]
    var su = pm.variables.get('success')
    pm.expect(exp).to.eql(su);
    });
    pm.test("信息提示正确", function () {
    res = pm.response.text();
    var exp = res.match(new RegExp(""error_msg":"(.+?)""))[1]
    pm.expect(exp).to.eql(pm.variables.get('error_msg'));
    });

    newman run .json -r html --reporter-html-export 文件目录

  • 相关阅读:
    日志格式设计
    域!!!
    Sql Server 2000 中游标的使用示例
    微软下一代操作系统Windows 7仅占25MB空间!
    添加aspnet_isapi.dll的映射时“确定”按钮不可用的解决方案
    巧用Array对象来实现字符串的反转
    [有人帮我说明了原因,明天找人测试一下]紧急求助!!(请您帮看看我的一个在线考试系统的部分代码是否有问题啊?)
    给站长的一点建议
    用SQL SERVER中的的一函数实现表中数据记录随机排序
    使用内嵌资源
  • 原文地址:https://www.cnblogs.com/bernard-shen/p/13202672.html
Copyright © 2011-2022 走看看