Postman:Postman简介:Postman自动化测试与Newman
Postman:Postman简介:Postman自动化测试与Newman

Postman简介
Postman的功能与优势
Postman是一款强大的API开发工具,它不仅简化了API的测试过程,还提供了丰富的功能来支持API的开发、调试、修改和发布。以下是Postman的一些主要功能和优势:
-
API测试:Postman允许你构建测试来验证API的响应是否符合预期,包括数据结构、状态码等。
-
环境变量:可以设置和管理环境变量,使得在不同的测试环境中(如开发、测试、生产)可以轻松切换,无需手动修改请求的URL或参数。
-
集合:集合功能可以将多个请求组织在一起,方便管理和共享。这对于API的测试和文档化特别有用。
-
预请求脚本和测试脚本:使用JavaScript编写预请求脚本和测试脚本,可以在发送请求前或接收响应后执行自定义的代码,增加了测试的灵活性和深度。
-
自动化测试:通过集成Newman,Postman可以运行自动化测试,这对于持续集成/持续部署(CI/CD)流程至关重要。
-
监控:可以设置监控,定期检查API的健康状况,确保API的稳定性和可靠性。
-
文档生成:Postman可以自动生成API文档,这对于团队协作和API的推广非常有帮助。
-
团队协作:Postman支持团队协作,可以共享集合、环境和文档,使得团队成员可以协同工作,提高开发效率。
Postman的安装与基本使用
安装Postman
- 访问Postman的官方网站(https://www.postman.com/)。
- 选择适合你的操作系统的版本进行下载。
- 安装程序并按照提示完成安装。
基本使用
创建请求
- 打开Postman,选择左上角的
+按钮创建一个新的请求。 - 选择请求类型(GET、POST、PUT等)。
- 输入请求的URL。
- 在请求头(Headers)中添加必要的头信息,如
Content-Type。 - 在请求体(Body)中输入请求数据,对于POST请求,可以选择
raw模式并输入JSON数据。
// 示例:发送一个POST请求
{
"key": "value",
"anotherKey": "anotherValue"
}
发送请求
- 点击
Send按钮发送请求。 - 观察响应状态码和响应体,以验证API是否按预期工作。
使用集合
- 点击左侧面板的
Collections,选择Create Collection创建一个新的集合。 - 将请求拖入集合中,或者在请求界面点击
Add to Collection按钮。 - 可以在集合中组织和管理多个请求,方便进行批量测试或分享给团队成员。
运行自动化测试
- 安装Newman,一个Postman的命令行集合运行器,可以在CI/CD流程中使用。
- 使用Newman运行Postman集合,例如:
newman run <collection_name> -e <environment_name>
这里,<collection_name>是你的Postman集合的名称,-e参数后跟的是环境名称,用于指定运行测试的环境。
管理环境变量
- 在Postman中,选择
Manage Environments。 - 创建一个新的环境,例如
development、testing或production。 - 在环境中设置变量,如API的URL、认证信息等。
- 在请求中使用这些环境变量,例如:
pm.environment.set("apiUrl", "https://api.example.com");
生成API文档
- 选择一个集合,点击
Export按钮。 - 选择
Documentation格式,Postman将自动生成API文档。
结论
Postman是一款功能全面的API开发工具,它简化了API的测试和开发过程,提供了自动化测试、环境管理、文档生成等高级功能,是API开发和测试的首选工具。通过熟练掌握Postman的使用,可以显著提高API开发的效率和质量。
Postman自动化测试
创建自动化测试集合
在Postman中,自动化测试集合是通过将一系列请求组织在一起,形成一个可以重复执行的测试流程。这有助于确保API的稳定性和可靠性,特别是在进行持续集成和持续部署(CI/CD)时。
步骤1:创建集合
- 打开Postman,点击左侧菜单的
Collections。 - 选择
New来创建一个新的集合。 - 命名集合,例如
Automation Test Suite。
步骤2:添加请求
在集合中添加请求,每个请求代表与API的一次交互。例如,对于一个用户登录功能,你可能需要创建以下请求:
GET /usersPOST /users/login
步骤3:编写测试脚本
在每个请求中,可以编写测试脚本来验证API的响应。使用Postman的Tests脚本编辑器,可以编写JavaScript代码来执行这些验证。
示例:验证登录请求
// 获取响应体
const responseJson = pm.response.json();
// 验证响应状态码
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
// 验证响应中包含特定的字段
pm.test("Response contains 'token'", function () {
pm.expect(responseJson).to.have.property('token');
});
使用预设和环境变量
预设和环境变量允许你在测试中使用动态数据,这对于自动化测试特别有用,因为它们可以让你的测试更加灵活和可重复。
预设
预设(Globals)是Postman中存储全局变量的地方,这些变量在整个Postman应用中都是可用的。
环境变量
环境变量(Environment Variables)则是在特定的环境中存储变量,这些变量只在该环境中可用。
示例:使用环境变量
假设你有一个API的URL,你希望在不同的环境中(如开发、测试、生产)使用不同的URL,可以这样设置:
- 在Postman中,点击
Manage Environments。 - 创建一个环境,例如
Development。 - 在该环境中添加一个变量
API_URL,并设置其值为https://dev.example.com/api。
然后,在请求中,你可以使用{{API_URL}}来引用这个环境变量。
编写测试脚本
测试脚本是Postman自动化测试的核心,它们用于验证API的响应是否符合预期。使用JavaScript编写这些脚本,可以进行复杂的逻辑验证。
示例:验证响应时间
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
示例:验证JSON响应结构
pm.test("Response has correct JSON structure", function () {
const responseJson = pm.response.json();
pm.expect(responseJson).to.have.all.keys('id', 'name', 'email');
});
运行测试并查看结果
一旦测试集合和脚本准备就绪,你就可以运行测试并查看结果了。
步骤1:选择集合
在Postman中,选择你想要运行的测试集合。
步骤2:运行测试
点击Runner,然后选择你的集合,设置运行次数和环境,最后点击Run。
步骤3:查看结果
测试运行后,你可以在Runner的Results标签下查看测试结果。这里会显示每个请求的测试结果,包括通过、失败和任何错误信息。
示例:使用Newman运行测试
Newman是一个Postman集合运行器,可以在命令行中运行Postman集合,非常适合CI/CD流程。
newman run "Automation Test Suite" -e "Development" -r cli
在这个命令中:
"Automation Test Suite"是你的集合名称。-e "Development"指定了运行的环境。-r cli表示输出格式为命令行界面。
通过以上步骤,你可以在Postman中创建和运行自动化测试集合,使用预设和环境变量来管理动态数据,编写测试脚本来验证API的响应,最后使用Newman在CI/CD流程中运行这些测试。这不仅提高了测试的效率,也确保了API的稳定性和可靠性。
Newman简介
Newman的功能与用途
Newman 是一个命令行集合运行器,用于 Postman 集合。它允许您在无头环境中运行 Postman 集合,例如持续集成(CI)服务器、脚本或任何其他非交互式环境。Newman 的主要功能包括:
- 自动化测试:在构建、测试或部署过程中自动运行 Postman 集合,无需手动操作。
- 持续集成:与 CI/CD 工具(如 Jenkins、Travis CI、CircleCI 等)集成,确保每次代码更改后都能自动测试 API。
- 环境变量:支持使用环境变量,使集合能够在不同的环境中运行,例如开发、测试和生产。
- 报告生成:生成详细的测试报告,包括测试结果、响应时间、失败的测试等,便于分析和调试。
- 并行执行:能够并行运行多个集合,提高测试效率。
示例:使用 Newman 运行 Postman 集合
假设我们有一个 Postman 集合,名为 API-Tests.postman_collection.json,我们想要在 Jenkins 服务器上自动运行这个集合。以下是如何使用 Newman 运行集合的示例:
newman run API-Tests.postman_collection.json --environment environment_variables.json --reporters cli,html --reporter-html-export test-report.html
在这个命令中:
API-Tests.postman_collection.json是 Postman 集合的文件。--environment environment_variables.json指定了一个环境变量文件,用于在测试中使用。--reporters cli,html指定了报告的类型,这里我们选择了命令行和 HTML 报告。--reporter-html-export test-report.html指定了 HTML 报告的输出文件。
Newman的安装与配置
Newman 可以通过 npm(Node.js 包管理器)安装。以下是安装和配置 Newman 的步骤:
安装 Newman
在您的计算机上,打开终端或命令提示符,运行以下命令来全局安装 Newman:
npm install -g newman
配置 Newman
配置 Newman 主要涉及设置环境变量和报告器。环境变量用于在不同的环境中运行集合,例如开发和生产环境。报告器用于生成测试结果的报告。
环境变量配置
环境变量通常存储在 JSON 文件中。以下是一个环境变量文件的示例:
{
"values": [
{
"key": "base_url",
"value": "https://api.example.com",
"enabled": true
},
{
"key": "api_key",
"value": "1234567890",
"enabled": true
}
]
}
在这个文件中,base_url 和 api_key 是两个环境变量,它们在运行集合时会被使用。
报告器配置
Newman 支持多种报告器,包括命令行、JSON、HTML 和 Markdown。以下是如何配置 HTML 报告器的示例:
newman run API-Tests.postman_collection.json --reporters cli,html --reporter-html-export test-report.html
在这个命令中,--reporters cli,html 指定了使用命令行和 HTML 报告器。--reporter-html-export test-report.html 指定了 HTML 报告的输出文件。
运行 Newman
一旦安装并配置了 Newman,您就可以运行它来测试您的 Postman 集合。以下是一个运行 Newman 的示例命令:
newman run API-Tests.postman_collection.json --environment environment_variables.json --reporters cli,html --reporter-html-export test-report.html
在这个命令中,我们指定了集合文件、环境变量文件、报告器类型以及报告的输出文件。运行这个命令后,Newman 将会自动执行集合中的所有请求,并生成测试报告。
Newman与CI/CD集成
Newman 可以轻松地与 CI/CD 工具集成。例如,在 Jenkins 中,您可以创建一个新的构建任务,并在构建步骤中添加一个 shell 命令,如下所示:
pipeline {
agent any
stages {
stage('Run API Tests') {
steps {
sh 'newman run API-Tests.postman_collection.json --environment environment_variables.json --reporters cli,html --reporter-html-export test-report.html'
}
}
}
}
在这个 Jenkinsfile 中,我们定义了一个名为 Run API Tests 的阶段,其中包含一个 shell 命令,用于运行 Newman。这样,每当代码更改并触发构建时,Newman 将会自动运行 API 测试集合。
通过以上步骤,您可以有效地使用 Newman 来自动化您的 Postman 集合测试,确保您的 API 在每次代码更改后都能正常工作。
使用Newman进行自动化测试
从Postman导出集合
在开始自动化测试之前,首先需要从Postman中导出你的API测试集合。Postman集合是一种组织和管理API请求的方式,它允许你将多个请求分组,以便于测试和分享。Newman能够读取这些集合,并在非交互式的环境中运行它们,非常适合CI/CD流程。
步骤1: 创建或选择集合
在Postman中,创建一个包含你想要自动化的API请求的集合。确保每个请求都包含了所有必要的参数,如URL、方法、头信息和请求体。
步骤2: 导出集合
- 打开你的集合。
- 点击右上角的“…”按钮。
- 选择“Export”。
- 选择“Collection v2.1 Format”并导出。
示例
假设你有一个名为“User API”的集合,其中包含以下请求:
- GET /users
- POST /users
- PUT /users/:id
- DELETE /users/:id
导出的集合文件可能看起来像这样:
{
"info": {
"_postman_id": "example-uuid",
"name": "User API",
"description": "A collection of tests for the User API",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "GET users",
"request": {
"method": "GET",
"url": "{{base_url}}/users",
"header": []
},
"response": []
},
{
"name": "POST users",
"request": {
"method": "POST",
"url": "{{base_url}}/users",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\": \"John Doe\",\n \"email\": \"john.doe@example.com\"\n}"
}
},
"response": []
},
// 更多请求...
]
}
在命令行中运行Newman
Newman是一个命令行工具,用于运行Postman集合。它允许你在持续集成服务器、脚本或任何其他非GUI环境中执行API测试。
安装Newman
确保你已经安装了Node.js和npm。然后,通过npm全局安装Newman:
npm install -g newman
运行Newman
使用以下命令运行你的Postman集合:
newman run <collection-file> -e <environment-file>
其中<collection-file>是你的Postman集合的JSON文件路径,<environment-file>是可选的环境变量文件路径,用于覆盖集合中的变量。
示例
假设你已经导出了“User API”集合,并且你有一个环境变量文件environment.json,其中包含了base_url变量的值。你可以在命令行中这样运行Newman:
newman run UserAPI_collection.json -e environment.json
Newman的报告与集成
Newman支持多种报告格式,包括HTML、JSON和JUnit,这使得将测试结果集成到你的工作流程中变得非常容易。
生成报告
运行Newman时,可以使用--reporters选项来指定报告格式。例如,要生成HTML报告,可以使用:
newman run <collection-file> --reporters cli,html --reporter-html-export <report-file.html>
集成到CI/CD
将Newman集成到持续集成/持续部署(CI/CD)流程中,可以确保每次代码更改时都自动运行API测试。这通常涉及到在你的CI/CD服务器上设置一个脚本,该脚本在构建过程中运行Newman。
示例
在Jenkins中,你可以创建一个构建任务,其中包含以下脚本:
pipeline {
agent any
stages {
stage('Run API Tests') {
steps {
sh 'newman run UserAPI_collection.json --reporters cli,junit --reporter-junit-export api-test-results.xml'
}
}
}
}
这将运行你的API测试,并生成一个JUnit格式的报告,可以被Jenkins或其他CI工具解析。
高级Newman用法与技巧
Newman提供了许多高级功能,包括环境变量、全局变量、测试脚本和集合变量,这些都可以帮助你更有效地进行API测试。
环境变量与全局变量
环境变量和全局变量允许你在集合中使用动态值。例如,你可以使用环境变量来指定不同的API端点,或者使用全局变量来存储和重用测试中的值。
测试脚本
Newman支持在请求和集合级别上运行测试脚本。这些脚本可以使用Chai或Assert库来验证API响应。
示例
在Postman集合中,你可以在请求的“Tests”选项卡中添加以下脚本:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("Body contains user name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.name).to.equal("John Doe");
});
集合变量
集合变量允许你在集合的请求之间共享数据。例如,你可以在一个请求中创建一个用户,并在后续请求中使用该用户的ID。
示例
在Postman集合中,你可以在“Pre-request Script”选项卡中添加以下脚本来设置集合变量:
// 设置集合变量
pm.collectionVariables.set("user_id", "12345");
然后,在后续请求中,你可以使用{{user_id}}来引用这个变量。
总结
通过使用Newman,你可以将Postman集合的API测试自动化,这不仅提高了测试效率,还确保了API在每次代码更改后都能正常工作。利用环境变量、全局变量、测试脚本和集合变量,你可以创建更复杂、更动态的测试场景,以满足你的项目需求。
Postman与Newman的结合应用
在CI/CD管道中集成Postman与Newman
在持续集成(CI)和持续部署(CD)的流程中,Postman与Newman的结合使用可以自动化API测试,确保每次代码提交后,API的功能和性能都符合预期。Newman是一个命令行集合运行器,可以运行Postman的集合,非常适合集成到CI/CD管道中。
集成步骤
-
安装Newman
在CI/CD服务器上,通过npm安装Newman:npm install -g newman -
配置Postman集合
在Postman中创建和配置API测试集合,包括请求、预请求脚本、测试脚本等。 -
运行Newman
使用Newman运行Postman集合,可以将结果输出到不同的格式,如HTML、JSON等,便于分析和报告。newman run "集合名称" -e "环境名称" --reporters cli,html --reporter-html-export "报告路径" -
集成到CI/CD
将Newman命令添加到CI/CD的构建脚本中,确保每次构建时都会自动运行API测试。
示例
假设我们有一个Postman集合,名为API-Tests,并且我们使用Jenkins作为CI/CD工具。以下是在Jenkins中配置Newman的示例:
-
Jenkinsfile
pipeline { agent any stages { stage('Run API Tests') { steps { script { def newmanCommand = 'newman run API-Tests -e Staging --reporters cli,html --reporter-html-export /var/reports/api-test-report.html' sh newmanCommand } } } } } -
运行测试
每次代码提交并触发构建时,Jenkins将执行上述Jenkinsfile中的Newman命令,运行API测试集合,并将结果保存为HTML报告。
使用Newman进行大规模测试
Newman不仅适用于CI/CD管道中的自动化测试,还能够处理大规模的API测试,包括高并发测试和数据驱动测试。
高并发测试
通过使用--iteration-count和--iteration-data参数,Newman可以执行多次迭代,模拟多个用户同时访问API。
数据驱动测试
使用CSV文件作为数据源,Newman可以执行基于不同数据点的测试,确保API在各种输入下都能正确响应。
示例
假设我们有一个CSV文件data.csv,其中包含用于测试的用户数据:
username,password
user1,pass1
user2,pass2
user3,pass3
以下是如何使用Newman进行数据驱动测试的示例:
newman run "API-Tests" -e "Staging" --iteration-count 3 --iteration-data "data.csv" --reporters cli,html --reporter-html-export "报告路径"
Postman与Newman的调试与故障排除
在使用Postman和Newman进行自动化测试时,可能会遇到各种问题,如请求失败、脚本错误等。以下是一些调试和故障排除的技巧:
查看日志
运行Newman时,使用--reporters cli参数可以查看命令行输出,这有助于快速定位问题。
使用Postman的调试模式
在Postman中,可以使用调试模式运行集合,这将提供详细的请求和响应信息,帮助识别问题所在。
检查环境变量
确保在运行Newman时,正确加载了环境变量。使用-e参数指定环境文件。
示例
如果在运行Newman时遇到错误,可以尝试以下命令来获取更多日志信息:
newman run "API-Tests" -e "Staging" --reporters cli,json --reporter-json-export "错误报告路径"
通过查看JSON格式的错误报告,可以更详细地了解测试失败的原因,包括具体的请求和响应数据。
通过上述步骤和示例,你可以有效地在CI/CD管道中集成Postman与Newman,进行大规模的API自动化测试,并掌握基本的调试和故障排除技巧。这将大大提高API测试的效率和可靠性,确保软件质量。
更多推荐

所有评论(0)