接口测试(二)—— Postman用法详解、newman生成测试报告

这篇具有很好参考价值的文章主要介绍了接口测试(二)—— Postman用法详解、newman生成测试报告。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

其他 接口自动化测试 知识参考:接口自动化测试

目录

一、Postman介绍和安装

1、简介

2、安装

3、安装Postman插件newman 

二、Postman基本用法

1、案例一

2、案例二

三、Postman高级用法

1、管理测试用例Collections

1.1、创建 collections

1.2、创建 用例集、子目录和 请求

2、用例集导出、导入

2.1、导出

2.2、导入

3、Postman 断言简介

4、Postman 常用断言

4.1、断言响应状态码

4.2、断言响应体是否包含某个字符串

4.3、断言响应体是否等于某个字符串(对象)

4.4、断言JSON数据

4.5、断言响应头

5、Postman断言工作原理

6、全局变量和环境变量

6.1、全局变量 

6.2、环境变量

7、Postman 请求前置脚本

8、Postman 请求前置脚本的工作原理

9、Postman 关联 

批量执行测试用例

四、Postman测试报告

使用newman生成测试报告


其他 接口自动化测试 知识参考:接口自动化测试

一、Postman介绍和安装

1、简介

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

  • 特征:

    1. 简单易用的图形用户界面

    2. 可以保存接口请求的历史记录

    3. 使用测试集Collections可以更有效的管理组织接口

    4. 可以在团队之间同步接口数据

最新版本下载 官方下载页面 下载链接:Win64 Win32 Mac Linux
- 注意 👇👇👇👇👇 看下面 👇👇👇👇👇 注意
历史版本下载 请把下面链接的"版本号"替换为指定的版本号,例如:9.12.2
Windows64位 https://dl.pstmn.io/download/version/版本号/win64
Windows32位 https://dl.pstmn.io/download/version/版本号/win32
Mac Intel Chip https://dl.pstmn.io/download/version/版本号/osx_64
Mac Apple Chip https://dl.pstmn.io/download/version/版本号/osx_arm64
Linux https://dl.pstmn.io/download/version/版本号/linux

官网         汉化步骤与汉化文件下载地址       

2、安装

双击Postman安装包,全自动安装,不需要任何人为干预。 安装完成后,会默认打开英文注册页面。或者手动打开注册页面。 自行翻译英文页面提示,根据提示完成注册或登录,完全免费

3、安装Postman插件newman 

前提:安装node.js

1. windows使用win + R,输入cmd打开终端,输入命令 npm -v,如能显示版本号(版本略有差异无所谓)。 可跳过 “1 安装node.js” 这步,直接看 “2 安装 newman”。

        如显示, npm 命令无法识别,则需下载node.js(下载地址),下载完成双击安装即可,安装完成后,在终端输入npm -v验证是否安装成功。

2. 安装newman (前提:确保 npm -v 验证通过)

        在线安装命令:

npm install -g newman

        尽量避开网络访问高峰期(早7:30~9:30 午11:30~14:30 晚18:30~22:30)安装,保证安装时网络稳定。 如果安装失败,反复尝试。大约尝试 10 几次 或 几十次!

        国内推荐切换npm镜像源:

        接口测试(二)—— Postman用法详解、newman生成测试报告 

nrm -V 查看版本,以及是否安装成功
# 1.查看当前使用的镜像地址
nrm ls 查看所有源地址, *表示当前使用的镜像地址
# 2.切换镜像源  淘宝
nrm use taobao

3. 安装newman-reporter-html

npm install -g newman-reporter-html

二、Postman基本用法

1、案例一

使用 postman 发送 http请求,访问 tpshop 商城的 “搜索” 接口

访问 tpshop 商城的 “搜索” 接口所需要的信息:

—— 结合 F12 浏览器开发者工具分析:

  • 请求方法:GET

  • URL:http://tpshop-test.itheima.net/Home/Goods/search.html?q=%E6%89%8B%E6%9C%BA

  • 请求头:无

  • 请求体:无

  • 返回数据:html网页

接口测试(二)—— Postman用法详解、newman生成测试报告

2、案例二

使用 Postman 向 topshop 商城 登录接口 发送一个密码错误的 登录请求

  • 请求方法:post

  • URL:http://tpshop-test.itheima.net/index.php?m=Home&c=User&a=do_login&t=0.6693319462870182

  • 请求头:Content-Type:application/x-www-form-urlencoded

  • 请求体:

    • username: 13812345678

    • password: 12345699999

    • verify_code : 8888

  • 返回数据:

    {"status":-2,"msg":"密码错误!"} ---- 实际返回结果 “验证码错误” 与业务有关,后续说明

 接口测试(二)—— Postman用法详解、newman生成测试报告

三、Postman高级用法

1、管理测试用例Collections

1.1、创建 collections

接口测试(二)—— Postman用法详解、newman生成测试报告接口测试(二)—— Postman用法详解、newman生成测试报告接口测试(二)—— Postman用法详解、newman生成测试报告接口测试(二)—— Postman用法详解、newman生成测试报告

1.2、创建 用例集、子目录和 请求

接口测试(二)—— Postman用法详解、newman生成测试报告

2、用例集导出、导入

2.1、导出

接口测试(二)—— Postman用法详解、newman生成测试报告接口测试(二)—— Postman用法详解、newman生成测试报告 接口测试(二)—— Postman用法详解、newman生成测试报告 接口测试(二)—— Postman用法详解、newman生成测试报告

2.2、导入

接口测试(二)—— Postman用法详解、newman生成测试报告 接口测试(二)—— Postman用法详解、newman生成测试报告接口测试(二)—— Postman用法详解、newman生成测试报告

3、Postman 断言简介

  • postman 断言借助 JavaScript - js 语言编写代码,自动判断预期结果与实际结果是否一致。

  • 断言 代码写在 Tests 的标签中。

4、Postman 常用断言

4.1、断言响应状态码

Status code: Code is 200

  1. 在 Tests 标签中,选中 Status Code:code is 200, 生成对应代码

  2. 适当调整 test() 方法参数1,和 匿名函数中的 预期结果。

  3. 点击 send 按钮,发送请求,执行断言代码。

  4. 查看断言结果。

    // 断言响应状态码 是否为 200
    pm.test("Status code is 200", function () {
        pm.response.to.have.status(200);
    });
    
    pm:代表 postman 的一个实例
    test():是 pm实例的一个方法。有两个参数
    	参数1:在断言成功后,给出的文字提示。可以修改。"Status code is 200"
    	参数2:匿名函数。
    pm.response.to.have.status(200); 
    // 意思:postman 的响应结果中应该包含状态码 200
    		200 ——> 预期结果!

    接口测试(二)—— Postman用法详解、newman生成测试报告

4.2、断言响应体是否包含某个字符串

Response body: Contains string

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

pm:postman的一个实例
test(): postman实例的方法,有两个参数
	参1:断言后显示的文字提示信息,可改。
    参2:匿名函数
pm.expect(pm.response.text()).to.include("string_you_want_to_search"); 
// 意思:pm 期望 响应文本 中,包含 xxxx 字符串。
	"string_you_want_to_search" ——> 预期结果。 可以修改

接口测试(二)—— Postman用法详解、newman生成测试报告

4.3、断言响应体是否等于某个字符串(对象)

Response body: Is equal to a string

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

pm.response.to.have.body("response_body_string");

// 意思是,pm 的 响应中应该有 响应体 xxx
"response_body_string" ——> 预期结果。 可以修改

4.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();
// var jsonData: 用js语法定义一个变量。jsonData 就是变量名
// pm.response.json();  代表响应的json结果

/* 举例:response.json();
{
    "success": true,
    "code": 10000,
    "message": "操作成功!",
    "data": "95c78d75-721c-40fb-b2d5-742fea42cbd5"
}
*/
pm.expect(jsonData.value).to.eql(100);
// 意思:pm 预期 json结果 key对应的值 等于 xxx
// to.eql(100); 中的 100 代表预期结果。可以修改的。

/* 举例:
		jsonData.value 的  value:
        取 :success、code、message、data
*/

示例:

// 断言json的响应结果-success的值为true
pm.test("断言响应结果success的值为true", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.success).to.eql(true);
});

pm.test("断言响应结果中code的值为10000", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.code).to.eql(10000);
});

pm.test("断言响应结果中message的值为 操作成功", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.message).to.eql("操作成功!");
});

接口测试(二)—— Postman用法详解、newman生成测试报告

4.5、断言响应头

Response headers: Content-Type header check

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

pm.response.to.have.header("Content-Type");
// pm 的响应 头中包含 Content-Type

// 示例:可以在 header 中,添加 响应头中的 key 对应的 value 判定。用 ,隔分。
// 断言响应头
pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type", "application/json;charset=UTF-8");
});

5、Postman断言工作原理

接口测试(二)—— Postman用法详解、newman生成测试报告

6、全局变量和环境变量

6.1、全局变量 

  • 概念:在 Postman 全局生效的变量,全局唯一。

  • 设置:

    • 代码设置pm.globals.set(“全局变量名”,全局变量的值)

      // 示例:
      pm.globals.set("glb_age", 100)
  • 获取:

    • 代码获取: var 接收值的变量 = pm.globals.get(“全局变量名”)

      // 示例:
      var ret = pm.globals.get("glb_age")  // ret 的值为 100
    • 请求参数获取(postman界面获取): {{全局变量名}}

      // 示例:
      {{glb_age}}

6.2、环境变量

  • 概念:在 特定环境(生产环境、开发环境、测试环境)下,生效的变量,在本环境内唯一。

  • 设置:

    • 代码设置:pm.environment.set("环境变量名", 环境变量值)

      // 示例
      pm.environment.set("env_age", 99)
  • 获取:

    • 代码获取:var 接收值的变量 = pm.environment.get("环境变量名")

      // 示例
      var ret = pm.environment.get("env_age")  // ret 的值为 99
    • 请求参数获取(postman界面获取):{{环境变量名}}

      // 示例
      {{env_age}}

7、Postman 请求前置脚本

  • 在 send 按钮点击后,请求前置脚本代码,第一时间被执行。在 postman 内部实际 http请求之前。

假设,这样一种场景:

调某接口时,要输入 “时间戳”,如果输入的 “时间戳” 的绝对值,超过标准时间10分钟。 则不允许调用。

时间戳

  • 时间戳:对应绝对时间,从 1970年1月1日00:00:00 到现在 所经历的秒数。

一天:86400秒

51年 6月(180) 9天 --- 1,624,665,600 秒

案例

调用百度首页接口,传时间戳给服务器

实现步骤:

  1. Pre-request Script 标签页中,添加代码。拿到时间戳,写入全局变量

    // 拿到时间戳
    var timestamp = new Date().getTime()
    ​
    // 将时间戳设置到 全局变量
    pm.globals.set("glb_timestamp", timestamp)
  2. 点击 Send 按钮,发送请求。请求发送前执行 上述代码。写入全局变量

  3. 查看写入的变量接口测试(二)—— Postman用法详解、newman生成测试报告

  4. 在 请求参数(界面)中,使用全局变量。{{全局变量名}}接口测试(二)—— Postman用法详解、newman生成测试报告

  5. 在 postman的 控制台,查看 发送的 http请求接口测试(二)—— Postman用法详解、newman生成测试报告

8、Postman 请求前置脚本的工作原理

接口测试(二)—— Postman用法详解、newman生成测试报告

9、Postman 关联 

介绍:应用于 多个 http请求之间,有数据关联、或依赖关系时。

实现步骤

A接口 依赖 B接口 的数据

  1. 向B接口发送http请求,获取数据

  2. 将数据 设置 至 全局变量(环境变量)中

  3. A 接口 获取 全局变量(环境变量)中 数据值,进行使用。

案例

请求 获取天气接口, 提取响应结果中的 城市, 将城市名,给百度搜索接口使用。

实现步骤:

  1. 创建 用例集,分别创建 查询天气 请求 和 百度搜索的请求接口测试(二)—— Postman用法详解、newman生成测试报告

  2. 在查询天气请求 Tests 中,编写代码 获取 城市名,写入全局变量

    // 获取 全部响应结果
    var jsonData = pm.response.json()
    // 从响应结果中 获取 城市名
    var city = jsonData.weatherinfo.city
    // 将城市名写入到全局变量
    pm.globals.set("glb_city", city)
  3. 点击 Send 按钮,发送 请求,查看设置的全局变量。接口测试(二)—— Postman用法详解、newman生成测试报告

  4. 修改 百度搜索请求,使用全局变量,按 城市名进行搜索。

    http://www.baidu.com/s?wd={{glb_city}}

批量执行测试用例

接口测试(二)—— Postman用法详解、newman生成测试报告

接口测试(二)—— Postman用法详解、newman生成测试报告

四、Postman测试报告

参考:接口自动化测试(三)—— Postman读取外部数据文件(参数化)

安装newman ,请参考上方安装插件。

使用newman生成测试报告

步骤:

  1. 批量执行测试用例集。(确认无误)

  2. 导出 Export 用例集。(得到 xxxx.json文件)

  3. 终端 中 执行命令,生成测试报告

# 现在 终端中,测试一下。
newman run xxxx.json

# 完整的命令
newman run xxxx.json -e 环境变量文件 -d 外部数据文件 -r html --reporter-html-export 测试报告名.html

# 示例:
newman run 批量执行测试用例.postman_collection.json -r html --reporter-html-export 我的第一个测试报告.html

# 如果添加 -r html 就报错!说明: newman-reporter-html 安装失败!

#示例
newman run ihrm项目.postman_collection.json -e 测试环境.postman_environment.json -r htmlextra --
reporter-htmlextra-export ihrm项目完整测试报告.html

 其他 接口自动化测试 知识参考:接口自动化测试文章来源地址https://www.toymoban.com/news/detail-410597.html

到了这里,关于接口测试(二)—— Postman用法详解、newman生成测试报告的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 接口自动化测试-Postman+Newman+Git+Jenkins实战集成(详细)

    1、Postman 创建Collection,在Collection中创建接口请求,如下图所示。 编写接口对应的断言Test和Pre-request Script,如下图所示。 配置接口对应的环境变量或全局变量。 导出接口集合Collection和导出对应接口的环境变量,导出生成的是JSON文件。 之前有写过postman接口测试文章,可以查

    2024年02月13日
    浏览(50)
  • 通过 Postman+Newman+Jenkins 进行接口自动化测试和进一步实现 CI

    目录 前言: Postman 部分 Collection 或者说测试集的建立 Postman 使用详解 测试工具 mock server Newman 的安装和使用 newman 的使用 对 SSL 的支持 newman 第三版以后(目前已经是 4.3.1)可以支持通过 CLI 选项来支持 SSL 对 newman 配置代理:通过对 Postman 的 request 环境变量进行设置来完成代

    2024年02月16日
    浏览(49)
  • 【全栈接口测试进阶系列教程】postman接口测试实战cookie,token,session鉴权,Base64,MD5,RSA加密,Sign签名,持续集成postman+Newman+jenkins

    目录 【一:postman简介和安装以及postman的登录和注册】 一、postman下载 二、安装、注册/登陆 三、简单使用 1.postman模拟发送get请求: 2.postman模拟发送post请求:  3.post数据类型说明: 【二:postman发送get请求,post请求实战以及页签详解】 发送GET请求 响应页面 发送POST请求 【三

    2024年02月10日
    浏览(58)
  • 【Postman】Postman接口测试进阶用法详解:断言、全局与环境变量、关联、批量执行用例、读取外部文件实现参数化

    Postman断言使用JavaScript语言编写,写在Postman的【Tests】 标签中。 【Tests】中的脚本在发送请求之后执行,它会把断言的结果(PASS/FAIL)最终在【Test Results】 标签页中。 断言响应状态码是否为200(Status code is 200) 断言响应体JSON数据校验(Response body:JSON value check) 断言响应体

    2024年02月15日
    浏览(60)
  • API自动化测试【postman生成报告】

    PostMan生成测试报告有两种: 1、控制台的模式 2、HTML的测试报告 使用到一个工具newman Node.js是前端的一个组件,主要可以使用它来开发异步的程序。 一、控制台的模式 1、安装node.js 双击node.js进行安装,安装成功后在控制台输入node -v,检查是否安装成功。 2、安装newman 1)在

    2024年02月06日
    浏览(53)
  • 接口测试工具:Postman的高级用法

    Postman 是一款功能强大的 API 开发和测试工具,以下是一些高级用法的详细介绍和操作步骤。 【文末有配套视频教程和免费的资料文档领取】 环境变量允许你设置特定于环境(如开发、测试、生产)的变量,全局变量则在所有环境中都能访问。 操作步骤: 1. 转到左侧的侧边

    2024年02月02日
    浏览(67)
  • 接口测试工具:Postman的高级用法!

    Postman 是一款功能强大的 API 开发和测试工具,以下是一些高级用法的详细介绍和操作步骤。 一. 环境和全局变量 环境变量允许你设置特定于环境(如开发、测试、生产)的变量,全局变量则在所有环境中都能访问。 操作步骤: 1. 转到左侧的侧边栏,点击\\\"Environments\\\"。 2. 点击

    2024年02月03日
    浏览(76)
  • 必备工具:Postman Newman 详解

    Postman Newman 是一个 CLI(命令行界面)工具,可以使用它来运行 Postman 中的集合(Collection)和环境(Environment)进行自动化测试。它是 Postman 的命令行 Collection Runner,能够直接从命令行运行 Postman 集合。使用 Newman 可以测试 API 的功能、性能、可靠性和安全性,同时可以将测试

    2024年04月09日
    浏览(53)
  • Postman+Newman+Git+Jenkins+Slack 接口自动化和监控

    目录 前言: 一、Newman 介绍: 1、简介 2、安装 3、检查 4、运行 二、Newman 命令行介绍: newman run [options] 测试结果配置 ------------------------------------分 割 线---------------------------------------------------- 三、Newman 实现接口自动化流程 1、Postman 中调试接口,编写业务逻辑和 Tests 1.1 H

    2024年02月16日
    浏览(54)
  • Postman Newman API 自动化测试快速入门

    Newman 是一款专为 Postman 打造的命令行工具,旨在通过自动运行 Postman 集合和环境,实现 API 测试的自动化。它使得开发者无需打开 Postman 图形界面,即可直接在命令行中执行测试用例。 使用 Newman 进行 API 测试,可以带来诸多好处: 快速反馈 :每当代码发生变更,开发者都可

    2024年04月14日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包