美文网首页Postman藏兵谷测试
Postman接口测试系列:接口参数化和参数的传递

Postman接口测试系列:接口参数化和参数的传递

作者: 乘风破浪的姐姐 | 来源:发表于2018-12-03 17:22 被阅读344次

    使用postman做简单的接口测试时,需要参数化,有全局变量、局部变量之分。这里简单介绍一下使用Postman进行接口测试时,参数化过程。

    现有两个请求,如图


    image.png

    上述两个请求中,有共同的变量,参要参数化,例如IP,端口,用户等。即为全局变量。
    点击Postman右上角的设置图标-->Manage Environments-->Add,录入Environment名称,再逐一新增各个需要参数化的全局变量即可。


    image.png
    image.png

    在接口测试过程中,部分参数每次发送请求时都要唯一,这时可采用随机数。postman中可以使用randomInt达到每次运行的参数都是变化的。请求Body的报文中直接用Postman内建变量{{参数名}}就行
    先定义一个随机方法

     // 随机整数
    const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min; 
    
    //用户姓昵称,随机姓名中的姓
    const simpleInName = ['张', '李', '孙', '赵', '王', '刘', '钱', '阮', '杨', '郭'];
    const simpleOfChars = randomInt(1, 1);
    let randomSimpleName = '';
    for (let i = 0; i < simpleOfChars; i++) {
    let index = randomInt(0, 9);
    randomSimpleName += simpleInName[index];
    }
    postman.setGlobalVariable("randomSimpleName",randomSimpleName);
    
    //用户名昵称,随机姓名中的名
    const charsInName = ['蒙', '楠', '玲', '琼', '红', '俊', '伟', '康', '强', '莹'];
    const numOfChars = randomInt(1, 1);
    let randomName = '';
    for (let i = 0; i < numOfChars; i++) {
    let index = randomInt(0, 9);
    randomName += charsInName[index];
    }
    postman.setGlobalVariable("randomName",randomName);
    
    // 随机选项
    const getRandomValue = list => list[randomInt(0, list.length - 1)];  
    //用户性别
    const divisions = ['O', 'M', 'F'];
    postman.setGlobalVariable("sex",getRandomValue(divisions));
    
    //用户身份证号码
    postman.setGlobalVariable("card",`50010620001208${randomInt(1000, 9999)}`);
    
    // 随机生日(时间戳)
    // 假设今天是2017-1-1,距1970-1-1 47年,则生日范围为 1923-1-1 ~ 2017-1-1
    //environment.birthday = randomInt(0 - Date.now(), Date.now());
    postman.setEnvironmentVariable("birthday",Date.now());  
    
    //随机生成一个字符串作为remark 
    postman.setGlobalVariable("remark", ("test" + 
    (Math.random()*Math.pow(36,4) << 0).toString(36)).slice(-4));
    
    // 随机手机
    //environment.phone = `18${randomInt(100000000, 999999999)}`;
    postman.setGlobalVariable("phone",`18${randomInt(100000000, 999999999)}`);
    
    //组装整个时间戳
    var timesDate = d.getFullYear() + "-"+(d.getMonth()+1).toString() +"-"+ timeDate; 
    postman.setEnvironmentVariable("birthday", timesDate);
    
    // 随机设备token(推送服务商提供)
    const chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
    let deviceToken = '';
    for (let i = 0; i < 64; i++) {
      deviceToken += getRandomValue(chars);
    }
    environment.randomDeviceToken = deviceToken;
    
    // 随机设备名
    environment.randomDevice = getRandomValue(['ios', 'android']);
    
    // 随机行政区划
    const divisions = ['北京市', '上海市', '天津市', '重庆市', '广东省 深圳市', '广东省 广州市', '新疆维吾尔自治区 克孜勒苏柯尔克孜自治州'];
    environment.randomDivision = getRandomValue(divisions);
    
    // 随机群名
    const groupNames = ['犯罪团伙', 'We are gay', '`~!@#$%^&*()-_ =+'];
    environment.groupName = getRandomValue(groupNames) + randomInt(0, 1000);
    

    录入参数的接口Pre-Request Script代码如下:


    image.png
    image.png

    相关文章

      网友评论

        本文标题:Postman接口测试系列:接口参数化和参数的传递

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