Postman操作(接口测试、生成测试报告、MockServer等)

news/2025/2/25 13:56:43

文章目录

  • 前言
  • Postman简介
  • Postman下载和安装
    • 下载
    • 安装
    • 注册与登录
  • Postman工具介绍
    • 界面说明
    • 发送第一个请求
      • 1. 创建一个工程目录
      • 2. 创建collection合集
      • 3. 创建一个接口请求
      • 4. 输入接口请求参数
      • 5. 发送请求
    • Collection
    • Folder
    • Requset
      • 请求基础功能
      • 响应
    • 全局变量、集合变量、环境变量
      • 全局变量
      • 环境变量
      • 集合变量
      • 获取变量
      • 内置变量
    • 接口关联
      • JSON提取器
        • JSON提取数据常见情况
      • 正则表达式提取器(使用不多)
    • Pre-request script、Test script脚本
    • 断言
      • 常用Postman断言
    • 日志调试
    • 批量执行测试用例
    • Postman的参数化(数据驱动)
    • 数据导入导出
      • 链接或文件方式导入
      • Collection导出
      • Environments导出
      • 导出本地Postman所有数据
      • 分享Postman数据
    • Postman实现Cookie、token鉴权
    • Mock Server
      • Mock应用场景
    • Newman(生成测试报告、用于持续集成)
  • 参考目录


前言

阅读本文前请注意最后编辑时间,文章内容可能与目前最新的技术发展情况相去甚远。欢迎各位评论与私信,指出错误或是进行交流等。


Postman简介

Postman是一款非常流行的接口调试工具,它使用简单,功能强大。不仅测试人员会使用,开发人员也经常使用。
官方网站:https://www.getpostman.com/
在做接口测试时,Postman可以用来模拟各种HTTP请求(如:get/post/delete/put…),它相当于一个客户端,模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果,随后验证响应中的结果数据是否和预期值相匹配;能够及时发现接口中的bug,进而保证产品上线之后的稳定性和安全性。

主要特点

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

下图大致罗列了 Postman中所包含的功能。

在这里插入图片描述

Postman下载和安装

下载

直接在官网下载即可,下载地址:https://www.postman.com/downloads/
Postman支持Windows、Mac和Linux系统,根据自己的操作系统以及所需版本选择下载。

注意:不同版本界面操作会有所不同。

在这里插入图片描述

安装

找到下载好的文件直接双击.exe文件,会默认安装在C盘,安装完会自动打开。

在这里插入图片描述

注册与登录

Postman最新版本已经不维护离线模式(即:未登录),要体验全部功能需要登录。打开Postman,注册新用户,点击【Create Acount】进行注册

在这里插入图片描述
输入邮箱、用户名、密码,点击注册

在这里插入图片描述

注册完成后登录,如下图所示即登录成功

在这里插入图片描述

Postman工具介绍

界面说明

在这里插入图片描述

发送第一个请求

第一次使用 Postman 发送请求,下面这个例子可以作为一个最基本的入门,可以帮我们建立一个初始印象。

1. 创建一个工程目录

注意:如果没有特别的需求,只需要创建一次即可
在这里插入图片描述

2. 创建collection合集

collection是postman用于管理接口请求的,在其内部还可以添加文件夹用于进一步管理接口请求。我们在自己的工程下,点击【+】号,再点击【Blank collection】创建一个空集合,可对其进行重命名。
在这里插入图片描述

3. 创建一个接口请求

在上一步创建的集合下右键点击【Add request】,新建一个接口请求,即接口用例,新建后也可重命名

在这里插入图片描述

4. 输入接口请求参数

对于一个接口请求来说,需要三部分内容:

请求地址(URL):http://www.baidu.com/s
请求方式:get
请求参数:params

请求参数示例:
wd=csdn

在这里插入图片描述

5. 发送请求

点击send按钮发送请求。放请求后,我们接收到响应信息,状态码200 描述OK,点击Headers可以查看响应行信息、可查看Cookies信息。点击Body查看响应体信息,通过选择Pretty、Raw、Preview切换响应体内容的展现形式。下图选择了Preview方式,将响应体中返回的HTML文件以网页的形式展现。

在这里插入图片描述

Collection

Collection是多个Folder和Request的合集。Collection可以添加Pre-request Script、Tests脚本和Variables变量,作用于Collection里的所有Request。

选择侧边栏的Collections,再点击加号创建一个空的Collection。

在这里插入图片描述
对空Collection进行重命名,可以添加Pre-request Script、Tests脚本和Variables变量。(创建后也可以进行重命名和增加脚本、变量)
在这里插入图片描述
删除Collection
在这里插入图片描述

Folder

在Collection中,我们可以创建Folder(文件夹)。Folder里放的是请求,请求也可以直接放在Collection中,不放在Folder里,主要用于将请求进一步细分。同样的,创建Folder时,可以添加Pre-request Script、Tests脚本,且作用于Folder下的所有请求。

选择指定的Collection右侧三个点,下拉弹窗选择Add folder新建Folder。

在这里插入图片描述

在这里插入图片描述
删除Folder:

在这里插入图片描述

Requset

Request是请求接口,可以在Collection或Folder下创建,可以添加Pre-request Script、Tests脚本,且只作用于当前Request。

选择指定的Collection或Folder右侧的三个点,下拉弹窗选择Add request新建Request。

在这里插入图片描述
Request未保存状态窗口标签会有一个红点提示。
在这里插入图片描述
删除Request

在这里插入图片描述
注意:在窗口栏上点击加号创建Request,是没有指定保存在哪个Collection或Folder里的。
在这里插入图片描述
后续保存时需要自己选择保存到哪个地方。
在这里插入图片描述

请求基础功能

在这里插入图片描述

  • 新建的请求默认请求方法是,也可以通过左侧的下拉框进行修改。
  • URL框用于输入请求地址。
  • Params:一般是GET请求用的查询传参。Key为参数名,Value为参数值。所谓查询参数,其实就是 URL 地址中问号(?)后面的部分。比如:https://www.baidu.com/s?wd=百度。在这个接口中,查询参数就是:wd=百度。而这一部分,是由键值对组成,格式为:key1=value1&key2=value2, 如果有多组键值对,要用&隔开。
  • Authorization:一般用于用户名密码或者token鉴权
  • 如果需要请求在请求头中携带一些信息,需要对Headers进行设置。与请求参数类似,是由键值对组成。
    在这里插入图片描述
  • Body:一般在进行POST请求时,会写入参数
    在这里插入图片描述
  • none:没有参数
  • from-data:文件上传或表单格式(可选)
  • x-www-form-urlencoded:表单请求(键值对格式)
  • raw:使用原始数据格式请求(JSON、XML、HTML、Text、JavaScript)
  • binary:二进制文件上传
  • GraphQL:不怎么使用,可忽略
  • 若有一些在请求前需要执行的脚本,在Pre-request Script下添加
  • 收到响应后需要执行的脚本,在Tests下添加

参数为表单类型的POST请求
在这里插入图片描述
上传文件的表单请求

在做接口测试时,经常会遇到需要上传文件的接口,比如更新微信头像。这时候,可以用form-data。它也属于一种表单,但它既支持表单请求,也支持文件上传。
在这里插入图片描述
JSON 类型的接口请求

在这里插入图片描述

响应

点击Send按钮后,会接收到响应结果。

在这里插入图片描述

在这里插入图片描述
Body:响应体的内容

  • Pretty:以不同的格式查看响应体的内容
  • Raw:以文本格式查看响应体的内容
  • Preview:以网页格式查看响应体的内容

Cookies:响应的Cookie
Headers:响应头
Test Results:断言的结果

全局变量、集合变量、环境变量

在 Postman 常用的三种变量分别是全局变量,环境变量,集合变量。
它们的作用域范围从大到小依次排列为:全局变量>集合变量>环境变量

全局变量

  • 全局变量,在Postman中被称为Globals。整个Postman,包括Collection、Folder、Request和脚本都可以使用这个变量。

手动设置Global全局环境变量:
在这里插入图片描述

在 Tests,Pre-requests Script 中代码设置Global全局变量: pm.globals.set(“var_name”, value);

环境变量

环境变量:

  • 一个变量只能属于某个环境,在某一个环境中变量不可重复定义
  • 在环境与环境之间变量可以重复定义
  • 一个环境可以包含多个环境变量
  • 当我们有多个不同环境,例如:本地、开发、测试、生产环境,不同环境变量值分别不同,每个环境变量可以单独设置。

环境变量设置如下:
创建新环境。
在这里插入图片描述
新建环境重命名,并设置环境变量

在这里插入图片描述
在 Tests,Pre-requests Script 中代码设置环境变量:
pm.environment.set(“var_name”, value);

集合变量

  • 集合变量是针对集合的,也就是说声明的变量必须基于某个集合,它的使用范围也只是针对这个集合有效。

选择一个集合,打开查看更多动作(…)菜单,然后点击编辑。
选择“变量”选项卡以编辑或添加到集合变量。
在这里插入图片描述
在 Tests,Pre-requests Script 中代码设置集合变量:
pm.variables.set(“var_name”, value);

获取变量

定义好变量,接下来就可以使用变量了。需要注意的是,在不同的位置获取变量,编写的规则也是不一样的。

  • 如果在请求参数中获取变量,无论是获取全局变量、环境变量,还是集合变量,获取的方式都是一样的编写规则:{{变量名}}
    请求参数指的是:URL,Params,Authorization,Headers,Body

  • 如果在编写代码的位置(Tests,Pre-requests Script)获取不同类型的变量,则编写的代码各不相同,具体如下:
    1、获取环境变量:pm.environment.get(‘变量名’)
    2、获取全局变量:pm.globals.get(‘变量名’)
    3、获取集合变量:pm.collectionVariables.get(‘变量名’)
    在这里插入图片描述

内置变量

说明:内置变量和全局变量、环境变量、集合变量一样,只是它是Postman内部已经定义好的,可以直接在请求参数和脚本中引用。

常用内置变量:

  • 时间戳:{{$timestamp}}
  • 生成0-1000的随机整数:{{$randomInt}}
  • 生成一个GUID的字符串:{{$guid}}
  • 生成一个随机UUID:{{$randomUUID}}

Postman内置变量参考:https://learning.postman.com/docs/writing-scripts/script-references/variables-list/

接口关联

在接口测试中,经常出现这种情况:上一个接口的返回数据,是下一个接口的输入参数,那么这两个接口之间就产生了关联。这种关联在做接口测试时,非常常见,所以在Postman 中,如何实现这种关联关系呢?

实现步骤:

  • 提取上一个接口的返回数据值
  • 将这个数据值保存到环境变量或全局变量
  • 在下一个接口获取环境变量或全局变量

JSON提取器

// 获取JSON格式的响应数据
var jsonData = pm.response.json();
//将响应数据中的var_value(某个变量的值)设置为全局变量(全局变量名为key,可自行指定)
pm.globals.set("key", jsonData.var_value);
//在其他地方即可获取变量
JSON提取数据常见情况

注意:实际是熟悉Javascript代码获取JSON格式的数据

案例 1:多层 JSON 嵌套, 获取 user_id 的值

{
	"code": 0,
	"message": "请求成功!",
	"data": {
	"user_id": "1252163151781167104"
	}
}

//获取 JSON 体数据
var JSONData = pm.response.JSON()
// 获取 user_id 的值,通过.获取
var user_id = JSONData.data.user_id

案例 2:JSON 中存在列表,获取 points 中的第二个元素

{
	"code": 0,
	"message": "请求成功!",
	"data": {
		"roles": {
			"api": [
				"API-USER-DELETE"
			],
		"points": [
			"point-user-delete",
			"POINT-USER-UPDATE",
			"POINT-USER-ADD"
		]
		},
		"authCache": null
	}
}

//获取 JSON 体数据
var JSONData = pm.response.JSON()
// 获取 user_id的值,通过下标获取列表中某个元素
var user_id = JSONData.data.roles.points[1]

正则表达式提取器(使用不多)

根据正则表达式获取到响应结果中的值,将其设置为全局变量,其他步骤一致

//打印响应结果
console.log(responseBody);
//通过正则表达式匹配值(match匹配**key:正则表达式格式**的形式)
var datas = responseBody.match(new RegExp('"key":"(.*?)"'));
console.log(datas[1]);
//设置成全局变量
pm.globals.set("key",datas[1] );

Pre-request script、Test script脚本

Postman 可以在Pre-request script、Test script中编写JavaScript 脚本,允许向Request、Collection和Folder添加动态行为。这允许您编写测试套件,构建可以包含动态参数的请求,在请求之间传递数据等等。

pre-request script:请求前脚本,在请求接口发送前执行。
test script:测试脚本,在接收到响应数据后执行。

脚本的执行顺序:

在这里插入图片描述

可以看出,一个请求在发送之前,会先去执行 Pre Request Script(前置脚本)中的代码。那么这个功能在实际工作中有什么作用呢?
主要场景:一般情况下,在发送请求前需要对接口的数据做进一步处理,则都可以使用这个功能。比如说,登录接口的密码,在发送前需要做加密处理,那么就可以在前置脚本中做加密处理;再比如说,注册接口的邮箱输入参数会用到随机字符串,每请求一次接口该参数值都要求发生变化,这时,就可以在前置脚本中编写生成随机字符串的代码。总体来说,凡在请求接口之前,需要对请求数据作进一步加工处理的,都可以使用前置脚本这个功能。

而Test script是在接收到响应数据后进行的代码。主要使用场景:设置/获取变量,获取响应参数,断言测试。

注:Postman在编写脚本的右侧有代码片段,只需要点击一下就会在编辑框生成代码片段,更友好的使用。

断言

所谓断言,就是对返回的响应结果做判断,如果结果符合预期则判定为pass,如果结果与预期不符则判定为fail。

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

Postman 已经内置了一些常用的断言。用的时候,只需从右侧点击其中某个断言,该断言对应的断言代码块,就会自动生成。

在这里插入图片描述

常用Postman断言

  • 断言响应状态码是否为200(Status code is 200)
pm.test("Status code is 200", function () {
pm.response.to.have.status(200); //这里填写的 200 是预期结果,实际结果是请求返回结果
});
  • 断言响应体是否包含指定字符串(Response body: Contains string)
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
//响应文本中是否包含string_you_want_to_search

  • 断言响应体是否等于指定字符串(Response body:Is equal to a string)
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});

//注解
响应体是否等于response_body_string

  • 断言响应头是否包含指定的头信息(Response headers: Content-Type header check)
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type"); //断言响应头存在"Content-Type"
});

  • 断言响应体(JSON)中某个键名对应的值:Response body : JSON value check
pm.test("Your test name", function () {
var JSONData = pm.response.json();
pm.expect(JSONData.value).to.eql(100);
});
//注解
var JSONData = pm.response.json() 获取响应体,以 JSON 赋值给JSONData.注意:该响应体返回格式必须是 JSON,否则会报错
pm.expect(JSONData.value).to.eql(100) 获取 JSONData 中的value为响应体中的key,然后和 100 进行比较
或者响应体中带列表
pm.expect(JSONData.value[0].value-key).to.eql(100) 


  • 断言响应时间:Response time is less than 200ms
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200); //断言响应时间<200ms
});

操作示例

在这里插入图片描述

日志调试

在做接口测试时,经常会因为代码写的有问题导致报错。这时,通过日志查看错误就显得非常重要,Postman 也提供了这样的功能,它允许我们在脚本中编写打印语句,用以查看打印的结果。同时,也可以查看每个请求的日志信息。

在 Postman 中有两个入口:

第一个入口就是:View -> Show Postman Console。
第二个入口就是左下角Console。

示例

var body=responseBody;
var title=body.match(new RegExp('"username":"(.*?)"}'))
// 打印标题
console.log(title)

在这里插入图片描述
更多内容,详情可自行查阅JavaScript的console调试方法。

批量执行测试用例

当在一个 Collection 中编写了很多个接口测试用例,想一起执行这批用例,在Postman 中如何操作呢?

可以先创建Runner,后选择Collection和设置
或者选中一个 Collection,点击 RUN 按钮。

在这里插入图片描述
这时,会出现一个叫 Collection Runner 的界面,默认会把 Collection 中的所有用例选中。对Runner进行设置后,点击RUN按钮执行测试用例。

在这里插入图片描述
执行完毕后,将看到测试的结果。

  • 断言统计:统计当前 Collection 中断言成功的执行数和失败的执行数,如果没有编写断言,默认都为 0。
  • Run Summary:运行结果总览,点击它,可以看到每个请求中,具体的测试断言的详细信息。
    Export Result:导出运行结果,默认导出的结果文件格式为 JSON 格式。
    Retry: 重新运行,点击它会把该 Collection 重新运行一遍。
    New:返回到 Runner,可以重新选择用例的组合。

在这里插入图片描述

Postman的参数化(数据驱动)

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

常用的数据文件格式有:CSV、JSON。如下图所示

在这里插入图片描述
参数化执行步骤:

  1. 准备测试数据文件
  2. 设置参数
  3. 在请求中使用时,直接通过{{变量名}}引用
  4. 在断言中使用时,需要借助postman内置的data方法来进行使用,如 data.username
  5. 选择数据文件进行批量执行
  6. 结果检查

案例:

需求:批量查询手机号归属地和所属运营商信息,并校验运营商数据是否正确
接口地址: http://cx.shouji.360.cn/phonearea.php?number=13012345678 部分测试数据:
手机号: 13012345678 运营商: 联通
手机号: 13800001111 运营商: 移动
手机号: 18966778899 运营商: 电信

  1. 准备测试数据文件
    CSV格式:
    在这里插入图片描述
    Json格式:
    在这里插入图片描述
  2. 设置参数
    在请求参数中使用时,直接通过{{变量名}}引用,在执行时会逐行引用数据文字的{{变量}}值。
    在这里插入图片描述
    在断言中使用时,需要借助postman内置的data方法来进行使用,内置的data会读取传入的数据文件。
    在这里插入图片描述
  3. 选择数据文件进行批量执行
    在自己创建的collection集合右上角点击【Run collection】,打开批量执行窗口,选择csv或者json文件,选择后会自动带入执行次数,再勾选要测试的接口,点击执行
    在这里插入图片描述
  4. 结果检查
    在这里插入图片描述
    通过Console控制台查看结果
    在这里插入图片描述

数据导入导出

Postman支出数据导入导出,包括Collection、Environment环境变量、Pre-request Script和Tests脚本。用于不同工作人员之间同步工作进度,传递资料。

链接或文件方式导入

点击主页标题栏下的import按钮。
在这里插入图片描述
选择导入的方式,下图所示三种方式。
在这里插入图片描述

Collection导出

选择要导出的Collection,点击右侧三个点,选择Export导出。
在这里插入图片描述
默认选择,直接导出JSON文件。
在这里插入图片描述
注意:如果Collection有Variable变量、Pre-request script和Tests脚本也会一同被导出。

Environments导出

Globals导出,点击Export按钮,直接导出为JSON文件。
在这里插入图片描述
自定义的其他环境导出,点击右侧三个点,选择Export,导出JSON文件。
在这里插入图片描述

导出本地Postman所有数据

打开设置
在这里插入图片描述
选择Data -> Request Data Export。
在这里插入图片描述
会跳转到网页上,点击Export Data按钮。
在这里插入图片描述
默认全选,选择导出,会通过Email方式发送到你的账号邮箱,访问邮箱链接下载导出文件。
在这里插入图片描述

分享Postman数据

除了Collection可以生成分享链接,其他的Folder、Request和Environment都只能分享给指定的用户或者用户邮箱,分享数据和导出数据一样。

除了Collection可以生成分享链接,其他的Folder、Request和Environment都只能分享给指定的用户或者用户邮箱,分享数据和导出数据一样。

Collection分享:
选择要分享的Collection,以下二种方式任意选一个。
在这里插入图片描述
选via api,点击Generate New Key,最后复制完整链接给其他用户,用户通过该链接导入分享的Collection。
在这里插入图片描述

Request分享:
点击Request右侧三个点,选择Share。
在这里插入图片描述
分享方式:
在这里插入图片描述
注意:下面让你选择什么方式去合作,默认选择创建一个新的工作台并移除当前Collection给你的团队,另一个是分享你的工作台给你的团队。

Postman实现Cookie、token鉴权

Postman会自动完成cookie、token鉴权,无需手动完成。
在第一次获取cookie、token以后,随后postman发送请求不需要自己手动添加cookie、token,postman会自动帮我们填写在请求头上

在这里插入图片描述
可手动对cookie进行管理
在这里插入图片描述

Mock Server

使用Mock Server(模拟服务器)目的是,因项目中任务的不同分工(目前项目基本都是前后端分离),会出现每个人的任务进度不一样的情况。就会出现模块A开发完成,但其依赖项模块B还未完成,这时候如果进行集成测试时,就会出现两个模块无法有效完成工作。针对这种情况,就可以使用Mock Server用来模拟未完成的模块B来返回响应数据,测试模块A是否正确。

Mock应用场景

  • 依赖的接口响应速度慢
  • 依赖的接口未实现
  • 接口各种异常模拟

Postman可以创建两种类型的Mock服务

私有Mock:私有Mock服务需要在请求头中添加Postman API key,如X-Api-Key:postman API key
公有Mock:公有Mock服务可以被任何人访问,在使用过程中不需要添加Postman API key

公有Mock Server具体使用操作:

(1)点击左侧图标【Mock Servers】,点击【Create Mock Server】,在右侧填写相应的Mock服务器参数,并点击【Next】,如下图所示。在创建Mock Server的同时,并设定了对该服务器使用GET和POST请求访问后所得到的响应状态码、响应体。

在这里插入图片描述
填写Mock服务器的相关信息并点击【Create Mock Server】

在这里插入图片描述
在创建Mock Server成功后,会出现如下界面

在这里插入图片描述
创建Mock服务后,postman会自动创建集合以及环境变量(生成了Mock Server的url,存放在环境变量),直接对该url发送请求即可(切换至Collections,发送请求)

GET请求Mock Server 示例

在这里插入图片描述
POST请求Mock示例
在这里插入图片描述
注意: Postman中的Mock Server存在以下限制

  • 每月仅能访问该Mock Server 1000次
  • 需要与Postman保持连接

因此,Mock Server更多的是使用Python代码进行模拟。

例如使用Flask实现Mock Server,操作如下 (仅供参考)

  1. flask安装 在cmd中输入 pip install flask
  2. 验证flask是否安装成功 在cmd中输入:pip show flask
  3. 假设有一个登录接口,地址url后的路径为/login,需要输入用户名和密码来进行登录并获得反馈。基于flask搭建Mock Server,代码如下:
from flask import Flask, request, jsonify

app = Flask(__name__)


@app.route('/login', methods=['get', 'post'])
def flask_mockserver():
    # 获取客户端传来的账号密码
    data = request.get_json()
    print(data)
    user = data['username']
    pwd = data['password']
    # 账号密码进行登录判断
    if user == 'admin' and pwd == '123456':
        # jsonify()返回响应的json数据
        return jsonify(
            {
                "code": "001",
                "msg": "Login successfully"
            }
        )
    elif user == '' or pwd == '':
        return 'The account or password cannot be empty!'
    else:
        return 'error'


if __name__ == '__main__':
    app.run(debug=True)

对搭建的模拟服务器进行POST请求

import requests

data = {
    'username': 'admin',
    'password': '123456'
}
url = 'http://127.0.0.1:5000/login'
res = requests.post(url=url, json=data)
print(res)
print(res.text)

结果:(1)账号密码正确, 返回了自行设置的Json,相当于获得了响应体内容。
在这里插入图片描述
(2)账号或密码为空
在这里插入图片描述
(3)账号或密码错误
在这里插入图片描述

Newman(生成测试报告、用于持续集成)

Newman是一款基于Node.js开发的,专为 postman 而生的命令行工具,通过命令行执行的方式执行脚本。此外,Newman可以在 Jenkins 上实现 postman 接口测试持续集成。

  1. 安装Node.js(略)
  2. 安装newman
//安装命令
npm install -g newman
  1. 验证是否安装成功
//验证命令
newman -v
  1. 安装newman-reporter-html (用于生成测试报告)
//安装html报告模板 
npm install -g newman-reporter-html
  1. 导出postman中用于测试的 接口用例集合、环境变量以及全局变量三部分内容(可参考上文的数据导出章节)

导出测试用例集合

在这里插入图片描述
环境变量在这里插入图片描述
全局变量
在这里插入图片描述
注: 导出文件都为json格式,这里要注意的是,文件命名不要用中文命名,且都在同一文件路径下。

  1. 打开cmd窗口,使用Newman命令,运行导出的测试脚本。在输入命令之前,先了解newman的命令行参数。
参数用法
-e– environment 后面跟环境变量文件
-g– global 后面跟全局变量文件
-n– iteration-count 后面跟迭代次数
-d– iteration-data 指定用于迭代的数据源文件
-r– reporters 后面跟数据结果
html将结果生成为html文件,指定生成到具体目录需要配合 --reporter-html-export 文件名 使用
newman run "e:\\newmans\\yongli.json" -e "e:\\newmans\\huanjing.json" -g "e:\\newmans\\quanju.json" -r cli,html,json,junit --reporter-html-export "e:\\newmans\\report.html"

命令行展示测试结果
在这里插入图片描述
生成测试报告【report.html】

在这里插入图片描述

注:关于Newman用于持续集成,以及Jenkins自动化构建测试部署、美观好用的测试报告模板Allure 会在后续博客中更新(newman-reporter-html生成的测试报告效果一般)。


参考目录

https://blog.csdn.net/whowhowhoisimportant/article/details/124111940
https://blog.csdn.net/Leoon123/article/details/125549812
https://blog.csdn.net/qq_42055933/article/details/139583344
https://blog.csdn.net/qq_45674493/article/details/135413501
https://blog.csdn.net/qq_29180433/article/details/123832025
https://blog.csdn.net/2301_80864686/article/details/135936366
https://blog.csdn.net/whowhowhoisimportant/article/details/124837390
https://blog.csdn.net/whowhowhoisimportant/article/details/123905940

https://www.bilibili.com/video/BV1h54y1L7kz
https://www.bilibili.com/video/BV1tcHCemEx4
https://www.bilibili.com/video/BV11K4y1J7sh


http://www.niftyadmin.cn/n/5865576.html

相关文章

字符型验证码自动识别与填充提交——OCR浏览器插件的完整实现

【创作不易&#xff0c;切勿抄袭&#xff0c;转载请注明出处&#xff0c;侵权必究】 本文概览 本文结合开源的tesseract OCR库共尝试三种方法实现了字符型验证码识别与填充提交浏览器插件&#xff08;非通用型&#xff0c;具体得根据自己网页内容改造&#xff0c;可借鉴本文方…

解决VMware 安装 Ubuntu 后无法全屏的问题

根据以往的经验&#xff0c;一直想安装 VMware-tools&#xff0c;但是看了官方介绍才突然发现早就已经有更好的替代品了。 官方介绍连接在此&#xff1a;Install VMware Tools in VMware products 如上图所述&#xff0c;早期的 Linux 系统推荐安装 VMware-tools&#xff0c;但…

Win11安装dpanel实现docker可视化面板,并解决端口冲突的问题

目标是给Win11的docker安装dpanel可视化面板&#xff0c;可以更直观的看到docker中的数据。 执行镜像&#xff08;没有则自动拉取&#xff09; 首先配置好docker加速环境&#xff08;阿里云的docker加速等&#xff09;&#xff0c;然后访问GitHub - donknap/dpanel: 轻量化 do…

文件包含-session2

[题目信息]&#xff1a; 题目名称题目难度文件包含-session22 [题目考点]&#xff1a; 由于网站功能需求&#xff0c;会让前端用户选择要包含的文件&#xff0c;而开发人员又没有对要包含的文件进行安全考虑&#xff0c;就导致攻击者可以通过修改文件的位置来让后台执行任意…

调查报告:DLL项目运行时库设置与依赖兼容性分析

文章目录 引言背景与问题描述理论基础问题分析1. DLL项目为何必须使用 /MD2. 静态库项目为何不适合使用 /MD3. 尝试在DLL项目中链接 /MT 依赖的潜在问题4. 可行性分析 解决方案与建议1. 最佳实践2. 配置示例3. 测试与验证 运行时库设置对比表结论 引言 在C项目开发中&#xff…

【NLP 26、实践 ⑥ 引入bert,判断文本中是否有特定字符出现】

目录 引入bert&#xff0c;判断文本中特定字符出现 1.设计模型 2.前馈运算 3.建立词表 4.生成样本 5.建立数据集 6.建立模型 7.测试模型结果 8.模型训练 9.用训练好的模型预测 10.完整代码 我欲挑灯见你&#xff0c;可是梦怕火 我泪眼婆娑&#xff0c;坐实你来过 —— 25.1.2…

【Deepseek高级使用教程】Deepseek-R1的5种高级进阶玩法,5分钟教会你Deepseek+行业的形式进行工作重构的保姆级教程

AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/ 最近&#xff0c;有各行各业的小伙伴问我&#xff0c;到底应该怎么将deepseek融入进他们自身的工作流呢&#xff1f;其实这个问题很简单。我就以…

Fetch API 与 XMLHttpRequest:深入剖析异步请求的利器

Hi&#xff0c;我是布兰妮甜 &#xff01;在现代 Web 开发中&#xff0c;异步通信是实现动态和交互式用户体验的基石。XMLHttpRequest (XHR) 作为老牌劲旅&#xff0c;曾一度统治着这一领域。然而&#xff0c;随着 Fetch API 的横空出世&#xff0c;开发者们迎来了一个更现代、…