Postman入门-参数化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Postman入门-参数化相关的知识,希望对你有一定的参考价值。

参考技术A 首先我们针对于某一个接口,有大量的的测试数据需要批量验证,此时一个一个的更改请求参数肯定不太现实,能否有一种方式可以批量的来处理数据。这次就要用到数据的参数化了

首先针对于这样一个查询接口

现在

我们有批量的手机号需要查询

1.首先创建一个data.txt格式的文件

里面放置的第一行是变量名,后面每一行都是该变量的一个数据,如果有多个变量和数据使用“,”分割

2.把phone的值引用变量dianhua

3.在pre-requestScrpt里定义一个前置条件

4.在tests里面写一个检测脚本,检测该手机号是否为电信手机号

5.以集合的形式运行该接口

6.查看运行结果,完成参数化设置

文本中的5个电话,有4个电话是电信的,1个不是电信的

Postman参数化

文章目录

一、没有使用参数化


请求url:

https://postman-echo.com/post

json请求体:


    "user":"admin",
    "pwd":"abc1234"


断言代码:

pm.test("用户名密码正常,登陆成功", function () 
    var jsonData = pm.response.json();
    pm.expect(jsonData.data.user).to.eql("admin");
    pm.expect(jsonData.data.pwd).to.eql("abc1234");
);
  • 没有参数化,如果有多个用例,即需在postman设置多个请求,重复率高

二、参数化

  • 参数化支持的文件格式:json、csv

  • 这里以json格式举例

  • 注意:

    • 保存为UTF-8编码格式
    • 一个测试用例一条数据
    • 一条数据内容一般包含
      • 用例名称
      • 测试数据
      • 预期结果

1. 测试数据部分字段参数化

1.1 参数化文件login1.json内容如下:

[
  
    "case_name": "用户名密码正常,登陆成功",
    "username": "admin",
    "password": "abc1234",
    "expect_user": "admin",
    "expect_pwd": "abc1234"
  ,
  
    "case_name": "用户名错误,登陆失败",
    "username": "adminxxx",
    "password": "abc1234",
    "expect_user": "adminxxx",
    "expect_pwd": "abc1234"
  ,
  
    "case_name": "密码错误,登陆失败",
    "username": "admin",
    "password": "abc1234mike",
    "expect_user": "admin",
    "expect_pwd": "abc1234mike"
  
]

1.2 Postman设置


json请求体:


    "user":"username",
    "pwd":"password"


断言代码:

pm.test(data.case_name, function () 
    var jsonData = pm.response.json();
    pm.expect(jsonData.data.user).to.eql(data.expect_user);
    pm.expect(jsonData.data.pwd).to.eql(data.expect_pwd);
);

1.3 关联文件,发送请求

  • 注意:引用参数化文件不能直接点send按钮发送请求

  • 需通过批量运行run按钮选择文件,再运行





2. 请求体参数化:请求体作为字符串处理

  • 处理方式

    • 最外层加上双引号

    • 里面本身的双引号左边加上反斜杠\\

2.1 参数化文件login2.json内容如下:

[
  
    "case_name": "用户名密码正常,登陆成功",
    "body": "\\"user\\": \\"admin\\", \\"pwd\\": \\"abc1234\\"",
    "expect_user": "admin",
    "expect_pwd": "abc1234"
  ,
  
    "case_name": "用户名错误,登陆失败",
    "body": "\\"user\\": \\"adminxxx\\", \\"pwd\\": \\"abc1234\\"",
    "expect_user": "adminxxx",
    "expect_pwd": "abc1234"
  ,
  
    "case_name": "密码错误,登陆失败",
    "body": "\\"user\\": \\"admin\\", \\"pwd\\": \\"abc1234mike\\"",
    "expect_user": "admin",
    "expect_pwd": "abc1234mike"
  
]

2.2 Postman设置


json请求体:

body
  • 断言设置,关联文件,发送请求,和上面一样,这里不再重复截图
  • 断言设置,关联文件,发送请求,和上面一样,这里不再重复截图

3. 请求体参数化:通过Pre-request Scrip预处理

3.1 参数化文件login3.json内容如下

[
  
    "case_name": "用户名密码正常,登陆成功",
    "body": "user": "admin", "pwd": "abc1234",
    "expect_user": "admin",
    "expect_pwd": "abc1234"
  ,
  
    "case_name": "用户名错误,登陆失败",
    "body": "user": "adminxxx", "pwd": "abc1234",
    "expect_user": "adminxxx",
    "expect_pwd": "abc1234"
  ,
  
    "case_name": "密码错误,登陆失败",
    "body": "user": "admin", "pwd": "abc1234mike",
    "expect_user": "admin",
    "expect_pwd": "abc1234mike"
  
]

3.2 Pre-request Scrip预处理

// json转string
body_value = JSON.stringify(data.body);


// 设置全局变量
pm.globals.set("body_value", body_value);

3.3 json请求体处理

json请求体:

body_value
  • 断言设置,关联文件,发送请求,和上面一样,这里不再重复截图
  • 断言设置,关联文件,发送请求,和上面一样,这里不再重复截图

以上是关于Postman入门-参数化的主要内容,如果未能解决你的问题,请参考以下文章

Postman参数化

Postman参数化

Postman参数化

Postman参数化

Postman参数化

podtman怎么打印请求参数