Postman介绍安装与基本使用

Postman介绍

1、简介:Postman是一款非常流行的接口调试工具,它使用简单,而且功能也很强大。不仅测试人员会使用,开发人员也会经常使用。

2、特点:

  • 简单易用的图形用户界面
  • 可以保存接口请求的历史记录
  • 使用测试集Collections可以更有效的管理组织接口
  • 可以在团队之间同步接口数据

Postman安装

官方网站:https://www.postman.com/downloads,可能会变。直接搜索postman会跳出官网下载

下载之后直接点击安装即可(无安装过程),安装之后直接打开

可以选择注册免费账号(邮箱、用户名、密码),也可以选择跳过登录直接使用

出现这个页面代表安装成功,可以正常使用了


Postman基本使用

扫描二维码关注公众号,回复: 16024272 查看本文章

1、用例集的导入导出

导出:

  • 选择用例集右边的三个小圆圈(更多操作),选择Export
  • 使用默认的Collection v2.1 (recommended),继续选择Export
  • 选择保存用例集的地址,用例名称后缀(.postman_collection.json)不建议修改

导入:


 2、Postman 断言

Postman断言:

  • 利用 Postman 自带的断言机制,帮助我们自动判断预期结果和实际结果是否一致。
  • 使用的是 JavaScript 脚本语言,写在 Tests 的标签页中。 在TestResults标签中显示。
  • 断言方法在 Tests 标签页右边 Snippets显示

Postman断言工作原理:

常用的断言方法:

(1)断言响应状态码——Status code: Code is 200

// 断言响应状态码为200
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

pm: Postman的一个实例
test(): Postman实例的一个方法,有两个参数:
    参数1:"Status code is 200" 断言完成后,给出的提示信息。
    参数2:匿名函数调用。

pm.response.to.have.status(200); 的意思是:Postman的响应结果中,有状态码 200

(2)断言响应体是否包含某个字符串——Response body: Contains string

// 断言响应体中包含 xxx 字符串
pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});

pm: Postman的一个实例
test(): Postman实例的一个方法,有两个参数:
    参数1:"Body matches string" 断言完成后,给出的提示信息。
    参数2:匿名函数调用。

pm.expect(pm.response.text()).to.include("string_you_want_to_search"); 
意思是:
    postman实例预期结果中包含 "string_you_want_to_search" 字符串
    "string_you_want_to_search":是预期结果!

(3)断言响应体是否等于某个字符串(对象)——Response body: Is equal to a string

// 断言响应体等于某个字符串(对象)
pm.test("断言响应体等于某个字符串(对象)", function () {
    pm.response.to.have.body("response_body_string");
});

pm.response.to.have.body("response_body_string") 意思是:
    postman 的响应结果中有响应体为 "response_body_string"
    "response_body_string" 是 预期结果

(4)断言JSON数据——Response body: JSON value check

// 断言 响应体中的 json 数据
pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});

var jsonData = pm.response.json(); 意思是:
    定义一个变量,名称叫 jsonData ,值为:json格式的响应体数据

pm.expect(jsonData.value).to.eql(100); 意思是:
    postman 预期 json 格式的响应结果中 xxx(key) 的值为 xxx
    value可以替换为:success、code、message、data
    to.eql()中的值对应为:预期结果

-----------------------------------------------------
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
可以简写为:
pm.expect(pm.response.json().value).to.eql(100);

(5)断言响应头——Response headers: Content-Type header check

// 断言响应头中Content-Type
pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});

pm.response.to.have.header("Content-Type"); 意思是:
    postman 响应结果中响应头有 "Content-Type"

3、全局变量和局部变量

全局变量

  • 概念:在 Postman 中全局唯一的变量。不允许重复
  • 代码设置:
语法:pm.globals.set("全局变量名", 全局变量值)
例子:
var age_tmp = 18 // 定义 js 语法的变量
pm.globals.set("glb_age", age_tmp)
  • 界面获取(从请求参数中获取):
语法:{
   
   {全局变量名}}
示例:{
   
   {glb_age}}
用在:查询参数、请求头、请求体中。
  • 代码获取:
语法:var 接收变量名 = pm.globals.get("全局变量名")
例子: var ret_age = pm.globals.get("glb_age")

局部变量

  • 概念:在特定环境下生效的变量。 Postman 中可以有多个环境,每个环境中的变量名可以重复。 同一个环境中的变量唯一。 常见环境:测试环境、开发环境、生产环境
  •  代码设置:
语法:pm.environment.set("环境变量名", 环境变量值)
例子:
var age_tmp = 19 // 定义 js 语法的变量
pm.environment.set("env_age", age_tmp)
  • 界面获取(从请求参数中获取):
语法:{
   
   {环境变量名}}
示例:{
   
   {env_age}}
用在:查询参数、请求头、请求体 中。
  • 代码获取:
语法:var 接收变量名 = pm.environment.get("环境变量名")
例子:var ret_age = pm.environment.get("env_age")

4、Postman 请求前置脚本

概念

  • 时间戳:表示当前系统时间。表示方式:从1970年1月1日 00:00:00 ~ 现在所经历的秒数 。
    • 天:51年 x 365 + 133 = 18748
    • 秒:60 * 60 * 24 = 86400 x 18748 = 1619827200
    • 代码:var timestamp = new Date().getTime()        # 获取时间戳代码
  • 请求前置脚本:
    • 书写在 “Pre-request Script” 标签中
    • Postman 在 http请求发送之前,会自动执行,该脚本中的代码

工作原理: 


5、Postman关联

介绍:

  • Postman的关联,用来解决 接口和接口之间调用依赖关系。 需要借助全局变量、环境变量来解决关联问题。

实现步骤:

以 A接口返回的数据,供 B接口使用为例:

  1. 组织 A接口http请求数据,发送 A接口请求
  2. 获取 A接口返回的 响应数据,写入全局、环境变量中
  3. 组织 B接http请求,从全局、环境变量中获取 A返回的数据

6、批量执行测试用例


7、Postman 测试报告

安装newman插件(使用管理员权限打开终端):

安装命令:npm install -g newman

# 如果第一个不行就用下面这个(切换淘宝源)
安装命令:npm install -g newman --registry=https://registry.npm.taobao.org

注:安装 newman 插件之前必须先安装 node.js

安装newman-reporter-html(使用管理员权限打开终端):

安装命令:npm install -g newman-reporter-html

 注:如果newman 插件安装是使用淘宝源进行安装的可以跳过这一步

使用newman生成测试报告:

newman run 测试用例集名.json -e 环境变量文件 -d 数据文件 -r html --reporter-html-export 测试报告名称.html
  • 生成报告之前要导出用例集文件
  • -e 环境变量文件 -d 数据文件 两个参数,如果没有,可以省略不写。
  • 如果添加 “-r html” 参数之后,执行命令报错!是由于没有安装 newman-reporterhtml 插件 或 安装失败。

8、Postman 参数化

数据文件简介:

(1)CSV

  • 优点:数据组织形式简单,适用于大量数据的场景
  • 缺点:
    • 不支持 bool 类型数据(数据被Postman 读入后,自动添加双引号“”包裹 bool 值)
    • 不支持多参、少参、无参、错误参数的接口测试
    • 不支持复杂数据类型(如嵌套字典、列表等)

(2)JSON

  • 优点:
    • 支持 bool 类型
    • 支持多参、少参、无参、错误参数的接口测试
    • 支持复杂数据类型
  • 缺点:对于相同的数据量,json 数据文件大小远大于 CSV文件

读取数据文件语法:

(1)请求参数(请求行、请求头、请求体)中,使用数据文件中的数据

  • 格式:使用{ {}}包裹csv文件字段名或json文件中的key,例如{ {username}}

(2)代码(断言、请求的前置脚本)中,使用数据文件中的数据

  • 格式:借助postman提供的关键字data点csv文件的字段名或json文件中的key,例如data.id

参数化操作步骤:

  1. 准备好参数化数据的 csv 文件或 json 文件
  2. 正确的请求
  3. 将请求中需要使用文件中的数据替换成 { {字段名}} 或者data.字段名
  4. 在用例集run界面导入参数化数据文件并执行

 

猜你喜欢

转载自blog.csdn.net/ouihsiad/article/details/127629218