IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> postma进阶 -> 正文阅读

[开发测试]postma进阶

1.postman的介绍与安装

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

官方网站: Postman

主要特点:
    (1). 简单易用的图形用户界面
    (2). 可以保存接口请求的历史记录
    (3). 使用测试集Collections可以更有效的管理组织接口
    (4). 可以在团队之间同步接口数据
    (5). 下载地址: https://www.getpostman.com/apps

postman数据集

?

postman高级用法

1.用例管理
2.postman的断言
3.全局变量与局部变量
4.请求前置脚本
5.请求关联
6.用例批量执行
7.读取外部文件实现参数化
8.测试报告产出

1.用例管理

在测试活动中, 针对需求和接口文档进行用例设计时, 我们会发现针对一个需求或一个接口要考虑多种情况, 设计的用例要尽量覆盖需求. 在接口测试中, 如果使用工具(postman, Jmeter)实现, 需要对用例进行管理.

postman具有用例管理的功能, 具体的实现步骤如下:

1. 创建测试集-<New Collection>
    Collection可以理解成一个项目(系统),包含多个接口请求 
2. 创建目录-<Add Folder>
    Folder可以理解成一个项目模块 
3. 添加请求-<Add Request>

具体操作步骤及截图如下:

(1).创建测试集- 点击‘New Collection’,在弹出框中输入测试集的名称和其他信息,再点击‘Create’按钮

?(2).创建目录- 在测试集上点击右键选择‘Add Folder’,在弹出框中输入目录的名称和其他信息,再点击‘Create’按 钮

?

?(3).添加请求- 在目录上点击右键选择‘Add Request’,在弹出框中输入请求的名称和其他信息,再点击保存按钮

?

2.Postman断言

断言, 是让程序判断预期结果与实际结果是否一致的. python中有断言的语法, postman中也可以实现断言. 先看python的实现吧!

2.1 python中断言

# 断言: 
    python中的断言使用assert来实现, 其语法形式为: assert 表达式, '断言信息' 
 ? ?如果断言通过, 则继续执行断言以下的代码. 如果断言未通过, 则程序直接抛出异常, 异常名称为: AssertionError, 异常信息为: 断言信息, 如未指定断言信息, 则不显示断言信息.
 ? ? ? ? ? ?
# 示例1: 断言不指定断言信息
def func(a):
 ? ?assert a == 1
func(2)
?
# 结果为:
/Users/jeremy/.virtualenvs/h2005/bin/python /Users/jeremy/MyData/edu/code/demo2.py
Traceback (most recent call last):
 ?File "/Users/jeremy/MyData/edu/code/demo2.py", line 104, in <module>
 ? ?func(2)
 ?File "/Users/jeremy/MyData/edu/code/demo2.py", line 97, in func
 ? ?assert a == 1
AssertionError
 ? ? ? ? ? ?
# 示例2: 断言指定断言信息
def func(a):
 ? ?assert a == 1, '断言未通过'
func(2) ? 
?
# 结果为:
/Users/jeremy/.virtualenvs/h2005/bin/python /Users/jeremy/MyData/edu/code/demo2.py
Traceback (most recent call last):
 ?File "/Users/jeremy/MyData/edu/code/demo2.py", line 104, in <module>
 ? ?func(2)
 ?File "/Users/jeremy/MyData/edu/code/demo2.py", line 97, in func
 ? ?assert a == 1, '断言未通过'
AssertionError: 断言未通过
 ? ? ? ? ? ?
# 示例3: 断言配合异常处理使用, 尝试执行断言, 如果断言通过则执行断言以下代码, 如果断言未通过, 则直接抛出的异常会被except捕获, 执行except代码. 注意: 此过程由于异常处理的原因, 断言没有机会将异常抛给用户而被except捕捉, 所以断言信息是没有机会显示的.
def func(a):
 ? ?try:
 ? ? ? ?assert a == 1,
 ? ? ? ?print('pass, 用例通过!')
 ? ?except:
 ? ? ? ?print('fail, 接口存在问题!')
?
func(2)
?
# 结果为:
'fail, 接口存在问题!'

?

?

2.2 常用postman断言特点与简单使用

# postman断言特点:
    (1).Postman的断言是使用JavaScript语言编写的,写在‘Tests’标签页里 
    (2).Tests中的脚本在发送请求之后执行,会把断言的结果(PASS/FAIL)最终在‘Test Results’标签页中展示

简单使用:

?

2.3 postman常用断言

# 注意:
    1.断言响应状态码是否为200(重点掌握)
 ? ?2.断言响应体JSON数据校验(重点掌握)
 ? ?3.断言响应体是否包含指定字符串
 ? ?4.断言响应体是否等于指定字符串
 ? ?5.断言响应头是否包含指定的头信息
# 断言代码片段介绍(不用背下来, 但是你需要在postman中能够找到, 你看别人的断言能看董)
1. 判断响应状态码是否等于200  (*****)
 ? ?pm.test("Status code is 200", function () { 
 ?      pm.response.to.have.status(200); 
 ?  }); 
 ? ?
2. 判断响应体中是否包含指定的字符串 (****)
 ? ?pm.test("Body matches string", function () { 
 ?pm.expect(pm.response.text()).to.include("string_you_want_to_search"); }); 
 ? ?
3. 判断响应体数据是否等于指定的字符串 (***)
 ? ?pm.test("Body is correct", function () { 
 ? ?pm.response.to.have.body("response_body_string"); 
 ?  }); 
 ? ?
4. 校验响应的JSON数据 (*****)
 ? ?pm.test("Your test name", function () { 
 ?      var jsonData = pm.response.json(); 
 ?      pm.expect(jsonData.mesage).to.eql("ok"); 
 ?  }); 
 ? ?
5. 判断响应头中是否包含指定的头标签 
 ? ?pm.test("Content-Type is present", function () { 
 ?      pm.response.to.have.header("Content-Type"); 
 ?  }); ?

2.4 排错技巧

当你的断言出现错误时, 需要进行排错, 可以按照以下套路进行:

# 1.检查断言代码片段是否错选了
    当断言出现错误时, 我们应首先确定自己的断言代码片段是否是正确的, 比如要判断json数据某个键的值是否包含另一个值, 但却选择了等于.
 ? ?
# 2.检查断言代码是否设置了错误的字段
    断言中对结果的判断要根据响应数据的形式进行严格的比对, 不细心很可能出现错误. 比如: json数据中的一个键名为data, 在编写断言代码的过程中却写成了date
?
# 3.发送请求, 基于响应数据做初步预判
    断言是对接口响应数据的检验, 那断言可定是在请求发送后执行的. 所以当断言出现错误, 这是你一定已经发送了请求, 我们可以打开响应数据进行对比, 来判断断言的执行结果是否存在问题.
 ? ?
# 4.检查请求相关参数
    在构造请求时, 可能请求出现了错误, 比如请求方式为post, 但默认为get, 却忘记修改, 当发送请求后获取到的响应数据肯定不是预期的结果, 这时断言就会出错. 应当仔细检查请求的正确性. 请求的正确性可以从以下这几个方面考虑->(请求方法, 请求地址, 请求头信息, 请求体)
 ? ?
# 注意:
    当断言出现错误, 经过一系列的排查依然不行, 该怎么办呢? 这是我们可以保存原有断言错误的请求, 重新建立请求, 不要受前一个请求的思维影响, 一步一步的构建请求, 再次尝试.

3.postman设置环境变量

3.1 环境变量与全局变量

全局变量: 作用范围是针对postman下面所有测试集均生效

环境变量:

    - 只对选择了对应环境变量的测试集生效
    - 环境一般分为: 开发环境, 测试环境, 生产/线上环境(部分公司可能在测试与生产之间存在预生产环境)
    - 一套环境中变量不能重复, 但是可以定义多个不重复的变量

3.2 手动设置全局变量与环境变量

(1).全局变量

(2).环境变量

3.3 代码设置全局变量与环境变量

# 在Tests中编写如下代码实现变量的设置, 需要发送请求
# (1).全局变量的设置
pm.globals.set("variable_key", "variable_value");
?
# (2).环境变量的设置
pm.environment.set("variable_key", "variable_value");
?
# 注意: 通过代码实现环境变量的添加, 需要先选中一个环境, 才能设置成功.

3.4 变量的使用

无论在URL中, 还是在请求头中, 或是在请求体中都可以使用{{variable}}的方式使用变量, 但需要注意的是请求体中传递JSON数据一般我们会给实际的值加引号, 比如一个字符串. 但在使用变量时, 不要给{{variable}}添加引号, 否则postman会将“{{variable}}”当做一个字符串.

使用代码获取:

// 获取全局变量
var value = pm.globals.get("var_name");
 ? 
// 获取环境变量
var value = pm.environment.get("var_name");
?

4.请求前置脚本

4.1 请求前置脚本实现与场景

// 请求前置脚本
    请求前置脚本就是在请求发送前执行的脚本, 请求前置脚本需要写在“Pre-request Script”标签中.
应用场景:
    - 请求参数中包含一个随机数或者时间戳
    - 请求之前需要对请求参数做进一步处理(如:对敏感参数进行加密)

4.2 请求前置脚本案例

//需求:
    请求TPshop项目中获取图片验证码的接口,需要在URL中设置随机数
// 请求路径: 
 ? ?http://localhost/index.php?m=Home&c=User&a=verify&r=0.6569606479434671
// 分析:
    - 在请求图片验证码前, 执行生成随机数的脚本: var r = Math.random();
    - 将生成的随机数保存至环境变量中
    - 请求图片验证码接口是从环境变量中取出随机数, 作为参数传递给服务器
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-10-08 12:05:08  更:2021-10-08 12:05:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 3:00:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码