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 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> day03_接口测试工具之Postman入门 -> 正文阅读

[开发测试]day03_接口测试工具之Postman入门

Postman介绍和安装

什么是Postman

Postman是一款非常流行的接口调试工具,它使用简单,而且功能也很强大。 可以发送几乎所有类型的HTTP请求。 不仅测试人员会使用,开发人员也会 经常使用。 官方网站: https://www.getpostman.com/

主要特点

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

Postman安装方式

  • Postman提供了独立的安装包,不再依赖于Chrome浏览器了。同时支持MACWindowsLinux,推荐使用这 种方式安装。 下载地址:https://www.getpostman.com/apps??
  • Windows环境下:双击运行安装程序,即可完成安装。

发送常见的数据类型

提交字符串数据

提交form表单数据

提交json数据 ?

用例管理

作用:规范法管理接口上的大量测试用例

实现步骤

1:创建测试集:点击‘New Collection’,在弹出框中输入测试集的名称和其他信息,再点击‘Create’按钮。Collection可以理解成一个项目(系统),包含多个接口请求

2:创建目录:在测试集上点击右键选择‘Add Folder’,在弹出框中输入目录的名称和其他信息,再点击‘Create’按 钮Folder可以理解成一个项目模块

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

Postman断言

让程序判断预期结果和实际结果是否一致的过程就是断言

特点

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

选择断言代码片段

?Tests输入框的右侧配置了一些常用的断言代码片段,点击后自动填写到Tests输入框中,然后再进行修改

常用断言

  • 断言响应状态码是否为200(进入Tests标签,选择?Status code is 200
// 判断响应状态码是否等于200,"Status code is 200" 是可以修改的提示信息
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);// status()中的参数是,要断言的数据
});
  • 断言响应体JSON数据校验(进入Tests标签,选择Response body:JSON value check)
// 代码说明
pm.test("Your test name", function () {
    //获取响应回来的JSON数据
    var jsonData = pm.response.json();
    //jsonData.value 获取指定key对应的值,与eql方法中的数据进行比较
    pm.expect(jsonData.value).to.eql(20);
});

//断言JSON数据中的success 是否为true
pm.test("success是true", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.success).to.eql(true);
});

//断言JSON数据中的code是否为10000
pm.test("code是10000", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.code).to.eql(10000);
});

//断言JSON数据中的message 是否为操作成功!
pm.test("message是操作成功!", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.message).to.eql("操作成功!");
});
  • 断言响应体是否包含指定字符串(进入Tests标签,选择Response body: Contains string
// 代码说明Body matches string,提示信息,可以自定义
pm.test("Body matches string", function () {
    //pm.response.text() 返回的JSON数据, include 中的参数是要判断的内容
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});

pm.test("返回值JSON包含10000", function () {
    //判断JSON数据是否包含10000
    pm.expect(pm.response.text()).to.include(10000);
});
  • 断言响应体是否等于指定字符串(进入Tests标签,选择Response body:Is equal to a string
// 服务器响应体数据中等于【操作成功】精确查找 pm.test("服务器响应体数据中等于【操作成功】精确查找",

pm.test("服务器响应体数据中等于【操作成功】精确查找", function () {
    //bdoy参数的数据必须和响应的JSON一模一样,否则断言失败
    pm.response.to.have.body("10000");
});
  • 断言响应头是否包含指定的头信息(进入Tests标签,选择Response headers: Content-Type header check
//Content-Type is present 可以自定义提示信息
pm.test("Content-Type is present", function () {
    //断言header中是否有响应头,参数可以根据需求变化
    pm.response.to.have.header("Content-Type");
});

排错说明:

  • 检查断言代码片段是否选错了
  • 检查断言代码是否设置错了 预期结果或者是判断实际结果的字段选择错误
  • 先点击发送,基于响应中的body数据做初步预判
  • 检查请求相关参数(请求方式、请求头、请求体)

环境变量与全局变量

概念:

  • 全局变量:作用范围是针对postman下面所有测试集均生效全局变量是全局唯一的,不可重复定义的变量
  • 环境变量: 只对选择了对应环境的测试集生效常见环境分类:?开发环境、测试环境、生产/线上环境。一套环境中变量不能重复、但是可以定义多个不重复的变量。环境与环境之间可以定义重复的变量

全局变量的设置

方式一:手动设置

?查看是否设置成功

?方式二代码设置:

?进入Tests标签中

环境变量的设置

方式一: 手动设置

查看是否设置成功

注意优先的问题??

方式二:代码设置 ?

前提:必须选择具体的环境

?进入Tests标签中,

获取变量保存的值

全局变量与环境变量中保存的值我们可以通过:{{变量名}} 获取

在URL中获取变量的值

?在请求头中获取变量的值

?在请求体中获取变量的值

?我们可以可以通过代码来获取变量中保存的值

关联?

后一个接口的请求需要依赖前一个接口的响应数据,一般通过全局变量或者环境 变量来进行参数在接口之间的传递,这就是关联

实现步骤:

1: 要获取某个请求的响应结果数据,可以通过在 ‘Tests’ 标签页中编写 JavaScript 脚本来实现
// 获取JSON格式的响应数据 
var jsonData = pm.response.json();

2:多个请求之间可以使用全局变量或环境变量来传递数据

// 把数据保存到全局变量中
pm.globals.set("city", city);

3:获取某个全局变量的值:{{var_name}}

案例
  1. 请求获取天气的接口,http://www.weather.com.cn/data/sk/101010100.html
  2. 获取返回结果中的城市名称
  3. 调用百度搜索接口: http://www.baidu.com/s?wd=北京 ,把获取到的城市名称作为请求参数

?实现步骤截图

1. 在第一个请求的 ‘Tests’ 标签页中编写 JavaScript 脚本

2. 在第二个请求中使用全局变量

请求前置脚本

Pre-request Script页签类编写,在请求发送之前被执行

使用场景

  • 在请求url中需要使用随机数或时间戳
  • 需要对敏感数据进行加密

?截图示例

批量执行测试用例 ?

要想批量执行测试用例,需要先把接口请求添加到测试集中, 通过运行测试集的方式就可以实现批量运行测试用例。
操作步骤
1. 点击测试集中的 “Run” 按钮,批量运行测试用例

2. 弹出 Collection Runner 窗口,点击运行按钮

3. 查看测试结果

读取外部文件实现参数化

应用场景: 针对于某个接口,如果有大量的测试数据需要批量验证,可以把测试数据保存到数据文件中,通过参 数化的方式来实现。

注意:我们一般把数据保存在 CSV、JSON?数据文件格式里

实现步骤:

1:把要测试的数据保存在CSV或者JSON中,一定要是UTF-8保存,否则乱码.

?2:设置参数在请求中使用时,直接通过{{变量名}}引用 ?

3:?在断言中使用时,需要借助postman内置的data方法来进行使用,如 data.username?

?4:选择数据文件进行批量执行,获取结果

Postman测试报告

Newman 是一款基于 nodejs 开发的可以运行 Postman 脚本的工具,并可以生成测试报告
1:环境准备
  • 安装nodejs:下载地址:http://nodejs.cn/download/??校验:打开cmd,输入 node -v ,看到输出node的版本信息,即代表安装成功
  • 安装newman:打开cmd输入:npm install -g newman? 校验:安装完成后,输入 newman -v 命令查看版本信息,检测是否安装成功
  • 安装newman-reporter-html:打开cmd输入: npm install -g newman-reporter-html
2:Postman导出测试集、环境变量、全局变量丶参数化需要的文件,放在同一个目录下
3:使用newman命令,运行导出的测试集脚本,打开cmd输入
  • 命令:newman run 测试脚本文件 -e 环境变量文件 -g 全局变量文件 -d 测试数据文件 -r html --reporter-html-export report.htmll

命令说明

  • run 测试脚本文件:表示要执行的postman脚本,及导出的测试集
  • -e 环境变量文件:指定脚本中依赖的环境变量文件的路径
  • -g 全局变量文件:指定脚本中依赖的全局变量文件的路径
  • -d 测试数据文件:指定脚本中依赖的测试数据文件的路径

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-09-14 13:39:31  更:2021-09-14 13:39:40 
 
开发: 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 0:41:12-

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