Postman实现接口测试之Postman高级用法

文章目录

    • 1. Postman介绍和安装
    • 2. Postman基本操作
      • 案例一 :实现访问百度搜索结构,搜索python
      • 案例二:实现Tpshop登陆接口,提交表单数据
      • 案例三:实现IHRM登陆接口,提交Json数据
    • 3. Postman高级用法
      • Postman用例管理
      • 断言
      • Postman全局变量和环境变量
        • 全局变量
        • 环境变量
      • 请求前置脚本
      • 参数关联
      • 批量执行测试用例
      • 引入外部数据文件
      • Postman生成测试报告

实战细节知识:

前端开发发布前端的代码到服务器上后,必须记得清除浏览器的缓存,否则会导致出现环境问题。

1. Postman介绍和安装

Postman介绍(了解):是一款用于调试接口请求的工具,使用简单,功能强大。

  • 特点(了解):
    • 图形化界面
    • 能保存历史记录
    • 能够使用Collection管理用例
    • 能够在团队之间共享接口信息

Postman安装:

1,下载Postman:https://www.getpostman.com/downloads/

2,双击下载下来的安装包,进行安装

2. Postman基本操作

案例一 :实现访问百度搜索结构,搜索python

请求方式:Get

请求URL:http://www.baidu.com/s

请求URL中的参数:wd=python

实现步骤:

1,在Postman中设置请求方法为Get

2,在Postman中设置请求URL

3,在Postman的Params中设置请求参数

4,点击Send发送

5,查看响应结果

Postman实现接口测试之Postman高级用法_第1张图片

5,查看响应数据

  • 1,在响应体的Pretty中,寻找title,确认title中搜索的是不是python_百度搜索

Postman实现接口测试之Postman高级用法_第2张图片

  • 2,可以点击响应体中preview来进行查看

Postman实现接口测试之Postman高级用法_第3张图片

案例二:实现Tpshop登陆接口,提交表单数据

请求方式:Post

请求URL:http://localhost/index.php?m=Home&c=User&a=do_login

请求体中请求参数:username=13800138006&password=123456&verify_code=8888

实现步骤:

1,在Postman中设置请求方法为Post

2,在Postman中设置请求URL

3,在Postman的form-data中设置请求参数

4,点击Send发送

5, 查看响应结果

Postman实现接口测试之Postman高级用法_第4张图片

响应的Json数据

Postman实现接口测试之Postman高级用法_第5张图片

案例三:实现IHRM登陆接口,提交Json数据

请求方式:Post

请求URL:http://182.92.81.159/api/sys/login

请求体中请求参数:{“mobile”:“13800000002”,“password”:“123456”}

请求头:{“Content-Type”:“application/json”}

实现步骤:

1,在Postman中设置请求方法为Post

2,在Postman中设置请求URL

3,在Postman的Headers中设置请求头

4,在Postman的raw中设置请求参数

5,点击Send发送

6,调试响应数据

Postman实现接口测试之Postman高级用法_第6张图片
Postman实现接口测试之Postman高级用法_第7张图片

3. Postman高级用法

Postman用例管理

1,新建Collection

Postman实现接口测试之Postman高级用法_第8张图片

Postman实现接口测试之Postman高级用法_第9张图片

2,添加文件

Postman实现接口测试之Postman高级用法_第10张图片

3,添加请求

Postman实现接口测试之Postman高级用法_第11张图片

断言

案例1 断言响应状态码:

// 断言IHRM登陆接口返回的响应数据中的响应状态码是否为200
pm.test("判断HTTP响应状态码是否为200", function () {
    pm.response.to.have.status(200);
});

Postman实现接口测试之Postman高级用法_第12张图片

案例2和案例3

断言包含字符串和断言响应体

// 断言响应数据中是否包含某个字符串
pm.test("文本形式的响应体中是否包含'操作成功'四个字", function () {
    pm.expect(pm.response.text()).to.include("操作成功");
});

// 断言响应体是否完全等于某个字符串
// 注意:登陆接口返回的data是令牌,而令牌有失效时间,失效后会重置为另外一个令牌,导致响应体的断言失败
pm.test("Body is correct", function () {
    pm.response.to.have.body('{"success":true,"code":10000,"message":"操作成功!","data":"06ce0b59-2908-42aa-9eef-185bd1db7620"}');
});

Postman实现接口测试之Postman高级用法_第13张图片

案例4和案例5

断言Json数据和响应头


// 注意:Json数据的断言只能断言Json数据,不能断言HTML,XML,
// 图片等非Json数据
// 断言Json数据
pm.test("断言Json数据中的message", function () {
    // 获取Json格式的响应体
    var jsonData = pm.response.json();
    // jsonData.message是指实际的Json数据,eql(100)是指是否等于预期数据
    pm.expect(jsonData.message).to.eql("操作成功!");
});

// 断言Json数据中的success
pm.test("断言Json数据中的success", function () {
    // 获取Json格式的响应体
    var jsonData = pm.response.json();
    // jsonData.success是指实际的Json数据,eql(100)是指是否等于预期数据
    pm.expect(jsonData.success).to.eql(true);
});

// 判断响应数据中的响应头里面有没有Content-Type
pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});

Postman实现接口测试之Postman高级用法_第14张图片

Postman全局变量和环境变量

全局变量(了解):全局唯一的变量

环境变量(了解):

  • 变量只属于某个环境
  • 不同环境之间可以允许有变量重复
  • 常见的环境有:测试环境,开发环境,生产环境
  • 一个环境可以包含多个环境变量

扩展内容(重点):

  • 全局变量和环境变量的变量名称重复时,Postman会优先使用环境变量

  • 全局变量或者环境变量中的变量名称重复时,会优先使用最下面的变量

全局变量

1 手动设置全局变量

Postman实现接口测试之Postman高级用法_第15张图片

Postman实现接口测试之Postman高级用法_第16张图片

Postman实现接口测试之Postman高级用法_第17张图片

2 检查设置的全局变量

Postman实现接口测试之Postman高级用法_第18张图片

3 在请求参数中引用全局变量

通过{{var}}进行引用

Postman实现接口测试之Postman高级用法_第19张图片

4 在代码中设置全局变量

// 设置全局变量
pm.globals.set("global_password","123456")

Postman实现接口测试之Postman高级用法_第20张图片

环境变量

  • 手动设置环境变量

点击右上角的齿轮->点击ADD->设置环境变量

  • 在请求参数中获取环境变量的方法和全局变量一致

  • 在代码中设置和获取环境变量

// 点击Set an environment variable,设置环境变量
// 注意:保存的环境变量是指选定的环境,如果没有选定,那么设置会失败
pm.environment.set("env_type", "application/json");
// 在代码中获取和在控制台打印结果
console.log("获取环境变量的结果为:" + pm.environment.get("env_type"))

Postman实现接口测试之Postman高级用法_第21张图片

请求前置脚本

Postman调用脚本流程图:

Postman实现接口测试之Postman高级用法_第22张图片

注意:在Tests中能够获取到响应数据,而在执行请求前置脚本中不能获取到响应数据(为什么?因为请求前置脚本是在发送请求之前执行的代码)

1,在pre-request script中编写代码

Postman实现接口测试之Postman高级用法_第23张图片

// 获取时间戳
var timestamp2 = new Date().getTime()
// 查看时间戳
console.log("生成的时间戳为:" + timestamp2)
// 保存时间戳到环境变量
pm.environment.set("env_timestamp", timestamp2);

2, 查看保存的时间戳

Postman实现接口测试之Postman高级用法_第24张图片

  • 引用随机数

通过Postman内置随机数进行引用:$guid

{{$guid}}

Postman实现接口测试之Postman高级用法_第25张图片

参数关联

参数关联:是指多个接口之间有依赖关系的时使用的技术

使用方法:

1,在A接口中获取Json数据并保存关联的变量到环境变量

2,在B接口中引用保存的环境变量

代码:

// 在Tests标签页中编写获取返回数据的代码
// 获取Json数据
var jsonData = pm.response.json()
// 保存JsonData到环境变量
pm.environment.set("env_var", jsonData)
// 在B接口中引用
// 引用方法:在请求参数中通过{{env_var}}引用,在脚本中手动获取引用

案例:调用查询天气接口,获取到该接口返回的城市,然后使用百度搜索接口搜索获取到的城市

Postman实现接口测试之Postman高级用法_第26张图片

Postman实现接口测试之Postman高级用法_第27张图片

批量执行测试用例

注意:Postman可以进行性能测试,但是不建议使用他,为什么呢?因为Postman的测试结果有很大误差。

Postman实现接口测试之Postman高级用法_第28张图片

引入外部数据文件

1,我们要设计要测试的接口

2,分析接口,构造数据文件

  • json,csv

    • CSV

Postman实现接口测试之Postman高级用法_第29张图片

  • json

Postman实现接口测试之Postman高级用法_第30张图片

3, 关联数据文件中的变量到接口的数据当中

Postman实现接口测试之Postman高级用法_第31张图片
请求体中mobile的值改成引用外部文件中的变量名
Postman实现接口测试之Postman高级用法_第32张图片

4,通过Runner引入数据文件,进行自动化接口测试,或者说数据驱动测试,实现参数化关联
Postman实现接口测试之Postman高级用法_第33张图片

Postman生成测试报告

1,newman的介绍

newman是一个使用node.js开发的支持Postman接口测试的工具,并且能够生成测试报告

2,安装newman

  • 安装node.js

  • 1,下载node.js

  • 2,运行下载的安装包,按照安装向导进行安装

  • 检查安装:打开cmd窗口,输入node -v来检查是否安装成功,如果显示了具体的版本号,就证明安装成功了
    在这里插入图片描述

  • 安装newman

  • 打开cmd窗口,输入node -v确认node.js已经安装

  • 输入npm install -g newman,安装newman

    注意:一定要保证网络的通畅;如果安装过程中出现了Error错误,那么需要进一步分析。

  • 检查newman的安装:输入:newman -v;看到版本号就证明安装成功了
    在这里插入图片描述

  • 安装newman的插件

  • 打开cmd窗口,输入npm install -g newman-reporter-html即可完成安装

  • 检查方法:

    1 打开Newman所在的数据文件目录,检查有没有newman-reporter-html这个文件夹(初步确认)
    Postman实现接口测试之Postman高级用法_第34张图片

    2 使用newman命令执行测试用例集生成测试报告,如果没有html的报告,那么证明安装失败

  • 使用newman运行测试用例集生成测试报告

  • 1,导出用例集
    Postman实现接口测试之Postman高级用法_第35张图片

  • 2,导出环境
    Postman实现接口测试之Postman高级用法_第36张图片

  • 3,准备数据
    Postman实现接口测试之Postman高级用法_第37张图片

  • 4,使用newman生成测试报告

  • 在数据、用例集、环境文件所在目录打开CMD窗口
    Postman实现接口测试之Postman高级用法_第38张图片

  • CMD窗口中的目录路径要和文件所在路径完全一致
    Postman实现接口测试之Postman高级用法_第39张图片
  • 输入dir,确认当前目录有数据文件,用例集文件,环境文件
    Postman实现接口测试之Postman高级用法_第40张图片
  • 输入newman命令:
newman run IHRM数据驱动-json.postman_collection.json -e 测试环境.postman_environment.json -d ihrm_login_data.json -r html --reporter-html-export report.html

在这里插入图片描述
没有出现报错和其他信息,就证明生成报告了,然后进入当前目录查看report.html文件
Postman实现接口测试之Postman高级用法_第41张图片
Postman实现接口测试之Postman高级用法_第42张图片

你可能感兴趣的:(Postman实现接口测试之Postman高级用法)