0


Postman:Postman API测试:Postman测试结果的分析与报告

Postman:Postman API测试:Postman测试结果的分析与报告

在这里插入图片描述

Postman简介与安装

Postman的功能概述

Postman是一款强大的API开发工具,它不仅支持API的构建、测试和修改,还提供了API请求的发送功能。Postman的界面直观,操作简便,使得开发者能够轻松地创建和管理API请求,包括GET、POST、PUT、DELETE等HTTP方法。此外,Postman还支持环境变量、预请求脚本、测试脚本等功能,帮助开发者在不同的环境下测试API,确保API的稳定性和可靠性。

主要功能点

  • API请求构建:用户可以自定义请求的URL、HTTP方法、请求头、请求体等,构建复杂的API请求。
  • 环境管理:Postman允许用户创建和管理不同的环境,每个环境可以有不同的变量值,方便在开发、测试、生产等不同环境下进行API测试。
  • 测试脚本:Postman支持编写测试脚本来验证API响应是否符合预期,可以使用Chai、Mocha等测试框架。
  • 预请求脚本:在发送请求前,可以运行预请求脚本来设置请求参数,如生成随机数、加密数据等。
  • 集合与迭代:Postman的集合功能可以将多个API请求组织在一起,通过迭代功能自动执行这些请求,便于批量测试。
  • 监控与集成:Postman可以监控API的性能,同时与GitHub、Jenkins等工具集成,实现持续集成和持续部署。

Postman的安装与配置

安装步骤

  1. 访问Postman官网:首先,访问Postman的官方网站(https://www.postman.com/)。
  2. 选择安装版本:根据你的操作系统(Windows、macOS或Linux),选择相应的安装包。
  3. 下载并安装:点击下载链接,下载完成后运行安装程序,按照提示完成安装过程。
  4. 启动Postman:安装完成后,从开始菜单或桌面快捷方式启动Postman。

配置环境

创建环境
  1. 在Postman中,点击顶部菜单的Manage Environments
  2. 点击Add按钮,输入环境名称,例如Development
  3. 在环境变量中添加你想要管理的变量,如base_url,并设置其值为你的开发环境API地址。
使用环境变量

在请求的URL中,你可以使用环境变量,例如:

GET {{base_url}}/users
配置预请求脚本

预请求脚本可以用来设置请求参数,例如,如果你需要在请求中发送一个随机生成的token,可以在预请求脚本中使用以下JavaScript代码:

// 设置随机生成的token
pm.environment.set("token", Math.random().toString(36).substring(2,15)+ Math.random().toString(36).substring(2,15));
编写测试脚本

测试脚本用于验证API响应是否符合预期。例如,你可以使用以下代码来检查响应状态码是否为200:

// 检查响应状态码
pm.test("Status code is 200",function(){
    pm.response.to.have.status(200);});

集成与监控

Postman可以与GitHub、Jenkins等工具集成,实现API测试的自动化。此外,Postman还提供了监控功能,可以定期检查API的性能和稳定性。

集成GitHub
  1. 在Postman中,点击Collections,选择你想要集成的集合。
  2. 点击Export,选择OpenAPIPostman Collection格式导出集合。
  3. 登录GitHub,创建一个新的仓库,将导出的集合文件上传到仓库中。
  4. 在Postman中,点击Import,选择从GitHub导入,输入仓库的URL,即可将集合导入到Postman中。
监控API
  1. 在Postman中,选择你想要监控的集合或请求。
  2. 点击Monitor,设置监控的频率、环境和通知方式。
  3. Postman会按照设置的频率自动执行监控,你可以在Monitor面板中查看监控结果。

通过以上步骤,你就可以在Postman中构建、测试和管理API了。Postman的强大功能和易用性,使得API开发和测试变得更加高效和便捷。

Postman:API测试教程 - 创建API测试

创建API测试

定义测试请求

在Postman中创建API测试的第一步是定义测试请求。这包括设置请求的HTTP方法(如GET,POST,PUT,DELETE等),指定URL,添加必要的头部信息,以及在请求体中包含数据。以下是如何在Postman中定义一个简单的GET请求的步骤:

  1. 打开Postman:启动Postman应用程序。
  2. 选择请求类型:在顶部选择GET方法。
  3. 输入URL:在URL输入框中输入API的URL。
  4. 添加参数:如果API需要查询参数,可以在URL中直接添加,或者使用Postman的参数化功能。
  5. 设置头部:点击“Headers”标签,添加如Content-TypeAuthorization等头部信息。
  6. 发送请求:点击“Send”按钮发送请求。
示例:定义一个GET请求
- 打开Postman,选择GET方法。
- 输入URL:`https://api.example.com/users`
- 添加头部:`Content-Type: application/json`
- 发送请求。

使用Pre-request脚本

Pre-request脚本是在发送请求之前运行的脚本,可以用来动态生成请求参数,设置变量,或者执行任何必要的预处理任务。这在测试需要动态数据或复杂设置的API时非常有用。

示例:使用Pre-request脚本设置动态参数

假设我们有一个API,它需要一个动态生成的token作为查询参数。我们可以使用Pre-request脚本来生成这个token,并将其添加到请求中。

// Pre-request脚本示例// 生成一个随机的token并将其设置为查询参数// 生成随机tokenvar token ='token_'+ Math.random().toString(36).substring(7);// 设置token为查询参数
pm.sendRequest({url: pm.environment.get('tokenEndpoint'),method:'POST',header:{'Content-Type':'application/x-www-form-urlencoded'},body:{mode:'urlencoded',urlencoded:[{key:'username',value: pm.environment.get('username')},{key:'password',value: pm.environment.get('password')}]},preRequestScript:function(){// 在这里可以执行任何预请求脚本// 例如,设置环境变量
        pm.environment.set('token', token);}},function(err, res){if(err){
        console.error(err);}else{// 如果请求成功,可以处理响应// 例如,从响应中提取tokenvar responseJson = res.json();
        pm.environment.set('token', responseJson.token);}});// 将生成的token添加到请求URL中
pm.request.url.addQueryParams({token: pm.environment.get('token')});

在这个例子中,我们首先生成一个随机的token,然后使用

pm.environment.set

将其存储为环境变量。接着,我们发送一个POST请求到

tokenEndpoint

来获取一个真实的token,这个真实的token将被存储并用于后续的请求中。最后,我们将这个真实的token作为查询参数添加到请求URL中。

通过使用Pre-request脚本,我们可以确保每个测试请求都使用最新的、有效的token,从而避免了硬编码token可能带来的问题。这不仅提高了测试的灵活性,也增强了安全性,因为真实的token不会被硬编码在测试脚本中。

以上就是在Postman中创建API测试的基本步骤,包括定义测试请求和使用Pre-request脚本来执行预处理任务。通过这些步骤,你可以开始构建和执行复杂的API测试,确保你的API在各种条件下都能正常工作。

Postman:API测试执行与分析

执行API测试

单个请求的测试

在Postman中,测试单个API请求是基础且关键的步骤。这涉及到向API发送请求并验证响应是否符合预期。Postman提供了内置的测试脚本功能,允许你编写JavaScript代码来自动化测试过程。

示例:验证响应状态码
// 测试脚本示例:验证响应状态码是否为200
pm.test("响应状态码为200",function(){
    pm.response.to.have.status(200);});
示例:验证响应体中的特定值
// 测试脚本示例:验证响应体中的特定值
pm.test("验证响应体中的特定值",function(){var jsonData = pm.response.json();
    pm.expect(jsonData.name).to.eql("John Doe");});

批量测试与集合

Postman的集合功能允许你将多个请求组织在一起,形成一个测试流程。这非常适合模拟用户与API的交互,或执行一系列依赖于前一个请求结果的测试。

创建集合
  1. 在Postman中,选择“New”创建一个新的集合。
  2. 添加请求到集合中,可以是GET、POST、PUT等不同类型的请求。
  3. 为每个请求编写测试脚本,确保每个步骤的响应符合预期。
运行集合

Postman的集合运行器可以自动执行集合中的所有请求,并生成详细的测试报告。这包括每个请求的响应时间、状态码、以及测试脚本的结果。

示例:使用集合运行器
// 集合运行器脚本示例:检查前一个请求的响应是否包含特定的token
pm.test("前一个请求返回了token",function(){var prevResponse = pm.response.json();
    pm.expect(prevResponse.token).to.exist;});

分析测试结果

测试完成后,Postman会提供一个测试结果的摘要,包括通过和失败的测试数量。对于失败的测试,Postman会显示详细的错误信息,帮助你快速定位问题。

查看测试结果
  1. 在Postman中,选择“Runner”运行集合。
  2. 运行完成后,查看“Summary”标签页,这里会显示测试的总体结果。
  3. 对于失败的测试,可以查看“Failures”标签页,这里会列出所有失败的测试及其错误信息。
示例:分析测试报告

假设你运行了一个包含10个请求的集合,其中9个请求通过了测试,1个请求失败。在“Summary”标签页中,你会看到:

  • Passes: 9
  • Fails: 1
  • Tests: 10
  • Failures: 详细列出失败的测试及其错误信息。

生成测试报告

Postman允许你将测试结果导出为HTML或JSON格式的报告,这对于分享测试结果或进行更深入的分析非常有用。

示例:导出HTML报告
  1. 在“Runner”中运行完集合后,选择“Export”按钮。
  2. 选择“HTML”作为导出格式。
  3. 保存报告到你的本地文件系统。
示例:导出JSON报告
  1. 在“Runner”中运行完集合后,选择“Export”按钮。
  2. 选择“JSON”作为导出格式。
  3. 保存报告到你的本地文件系统。

JSON报告示例:

{"id":"example-collection-id","name":"Example Collection","runMode":"sequential","requests":[{"request":{"method":"GET","url":"https://api.example.com/users"},"response":{"status":200,"body":"{...}"},"tests":[{"name":"响应状态码为200","pass":true},{"name":"响应体包含用户列表","pass":true}]},// 更多请求...]}

通过以上步骤,你可以在Postman中有效地执行API测试,分析测试结果,并生成详细的测试报告。这不仅提高了测试的效率,也确保了API的稳定性和可靠性。

Postman:API测试结果的分析与报告

分析测试结果

理解测试结果界面

在Postman中执行API测试后,测试结果界面是分析测试输出的关键。此界面提供了详细的测试执行情况,包括每个请求的状态、响应时间、以及测试脚本的通过或失败情况。

测试结果界面布局
  • 请求列表:显示所有已执行的请求,每个请求旁边有其状态(如通过、失败)的图标。
  • 响应时间:每个请求的响应时间,帮助识别性能瓶颈。
  • 测试脚本结果:显示每个测试脚本的执行结果,包括任何失败的断言。
  • 错误日志:如果测试失败,这里会显示详细的错误信息,包括错误类型和错误消息。
示例:解析测试结果

假设我们有以下的测试结果:

1. GET /users
   - 状态: 通过
   - 响应时间: 123ms
   - 测试脚本结果: 通过

2. POST /users
   - 状态: 失败
   - 响应时间: 200ms
   - 测试脚本结果:
     - 断言失败: "响应状态应为201"
     - 错误日志: "Expected response code 201 but received 400"

在这个例子中,

GET /users

请求成功执行且测试脚本通过,而

POST /users

请求失败,因为响应状态不是预期的201,而是400,这通常表示客户端错误。

解析失败的测试案例

当测试失败时,Postman提供了详细的错误信息,帮助你快速定位问题。

错误类型
  • 响应状态码错误:当API返回的状态码与预期不符。
  • 响应体内容错误:当API返回的数据不符合预期格式或内容。
  • 性能问题:响应时间超出预期,可能指示性能瓶颈。
示例:处理失败的测试

假设我们使用以下的测试脚本来验证一个API的响应:

pm.test("响应状态应为200",function(){
    pm.response.to.have.status(200);});

pm.test("响应体应包含'hello'",function(){
    pm.expect(pm.response.text()).to.include("hello");});

如果API返回了404状态码,且响应体中不包含"hello",测试结果将显示两个失败的断言,每个断言都有详细的错误信息。

解析错误日志

错误日志通常包含以下信息:

  • 错误类型:如AssertionError
  • 错误消息:具体描述了什么预期与实际不符。
  • 测试脚本行号:指出错误发生在脚本的哪一行。

通过这些信息,你可以快速定位到问题所在,修改测试脚本或API代码,然后重新运行测试。

修正策略
  • 检查API文档:确认API的预期行为是否与你的测试脚本一致。
  • 审查测试脚本:确保断言正确无误,没有逻辑错误。
  • API调试:使用Postman的调试功能,逐步执行API请求,观察响应。

通过上述步骤,你可以有效地分析和修正失败的测试案例,确保API的稳定性和可靠性。

Postman:API测试结果的分析与报告

生成与分享测试报告

创建测试报告

在Postman中,测试报告是API测试结果的可视化表示,它帮助你理解测试的执行情况,包括哪些请求成功,哪些失败,以及具体的失败原因。创建测试报告的步骤如下:

  1. 运行测试集合:首先,你需要运行一个包含测试的集合。这可以通过点击“Runner”或直接在集合上点击“运行”按钮来完成。
  2. 选择测试报告选项:测试运行完成后,Postman会显示一个测试结果的概览。你可以点击“查看报告”来生成详细的测试报告。
  3. 自定义报告:在报告生成页面,你可以选择要包含的测试结果,比如只看失败的测试,或者查看所有测试的详细信息。此外,你还可以添加注释或标签,以便于后续的分析和追踪。
示例:分析测试报告

假设你运行了一个包含以下请求的测试集合:

  • GET /users
  • POST /users
  • GET /users/1
  • PUT /users/1
  • DELETE /users/1

测试报告可能显示如下:

  • GET /users:成功,响应时间200ms,返回了预期的用户列表。
  • POST /users:失败,响应时间500ms,返回了500错误,原因可能是服务器无法处理请求。
  • GET /users/1:成功,响应时间150ms,返回了用户1的详细信息。
  • PUT /users/1:成功,响应时间250ms,用户1的信息被成功更新。
  • DELETE /users/1:失败,响应时间300ms,返回了404错误,原因可能是用户1不存在。

导出与分享报告

导出测试报告是将Postman中的测试结果保存为文件,以便于分享给团队成员或存档。分享报告则是在Postman之外的地方展示这些结果,比如在项目管理工具中或通过电子邮件。

  1. 导出报告:在Postman中,你可以选择“导出”选项,将测试报告保存为HTML、JSON或CSV格式的文件。这一步骤对于存档和进一步的数据分析非常有用。
  2. 分享报告:分享报告可以通过多种方式完成,包括直接通过Postman的“分享”功能,将报告链接发送给他人,或者将导出的文件通过电子邮件或云存储服务分享。
示例:导出与分享测试报告

假设你已经创建了一个测试报告,并想要将其分享给你的团队。以下是导出和分享的步骤:

  1. 导出报告:在Postman的测试报告页面,点击“导出”按钮,选择你想要的格式(例如HTML)。这将生成一个包含测试结果的文件。
  2. 分享报告:你可以通过点击“分享”按钮,生成一个可以公开访问的链接,然后将这个链接通过电子邮件发送给你的团队成员。或者,你也可以将导出的文件上传到团队共享的云存储服务,如Google Drive或Dropbox。

通过这种方式,即使团队成员没有Postman账户,他们也可以查看测试结果,这对于项目管理和协作非常有帮助。


以上就是在Postman中生成与分享测试报告的基本流程。通过这些步骤,你可以有效地分析API测试结果,并与团队成员进行有效的沟通和协作。

高级测试报告功能

自定义报告模板

在Postman中,自定义报告模板允许你根据项目需求调整测试结果的呈现方式。这不仅增强了报告的可读性,还使得关键信息更加突出,便于团队成员或利益相关者快速理解API测试的状态。

如何创建自定义报告模板

  1. 选择测试结果:在Postman中运行一组测试后,点击“查看报告”。
  2. 编辑模板:在报告页面,你可以选择“编辑模板”来修改报告的布局和内容。
  3. 添加或删除信息:你可以选择显示或隐藏特定的测试结果部分,如请求、响应、测试脚本、日志等。
  4. 格式化数据:使用模板语言(如Handlebars或Mustache)来格式化数据,使其更符合你的报告需求。
  5. 保存模板:编辑完成后,保存模板以便后续使用。

示例:使用Handlebars创建自定义报告

假设你有一个测试结果集,其中包含多个请求和响应。下面是一个使用Handlebars语法创建自定义报告模板的例子:

<h1>API测试报告</h1><h2>测试概览</h2><p>测试总数:{{tests.length}}</p><p>通过的测试:{{#eachtests}}{{#ifthis.passed}}{{this.name}}{{#if@last}}{{else}},{{/if}}{{/if}}{{/each}}</p><p>失败的测试:{{#eachtests}}{{#ifthis.failed}}{{this.name}}{{#if@last}}{{else}},{{/if}}{{/if}}{{/each}}</p><h2>详细测试结果</h2><table><thead><tr><th>测试名称</th><th>请求方法</th><th>请求URL</th><th>响应状态</th><th>测试结果</th></tr></thead><tbody>{{#eachtests}}<tr><td>{{this.name}}</td><td>{{this.request.method}}</td><td>{{this.request.url}}</td><td>{{this.response.status}}</td><td>{{#ifthis.passed}}通过{{else}}失败{{/if}}</td></tr>{{/each}}</tbody></table>

在这个模板中,我们使用了Handlebars的

{{#each}}

{{#if}}

语句来遍历测试结果,并根据测试是否通过来显示不同的信息。

{{this.name}}

{{this.request.method}}

{{this.request.url}}

{{this.response.status}}

分别显示测试的名称、请求方法、请求URL和响应状态。

解释

  • {{#each tests}}:遍历所有的测试结果。
  • {{#if this.passed}}:如果测试通过,则显示“通过”。
  • {{#if this.failed}}:如果测试失败,则显示“失败”。
  • {{this.request.method}}:显示每个测试的请求方法。
  • {{this.request.url}}:显示每个测试的请求URL。
  • {{this.response.status}}:显示每个测试的响应状态。

报告的自动化与集成

自动化测试报告的生成和集成到你的工作流程中,可以节省时间并确保团队及时收到测试结果的更新。Postman提供了多种方式来自动化报告的生成和分发。

如何自动化测试报告

  1. 使用Postman API:你可以使用Postman的API来触发测试运行,并获取测试结果。这允许你通过代码或脚本来自动化报告的生成。
  2. 集成到CI/CD流程:将Postman测试集成到持续集成/持续部署(CI/CD)流程中,如Jenkins、Travis CI或GitHub Actions,确保每次代码更改后自动运行测试并生成报告。
  3. 使用Webhooks:设置Webhooks来在测试运行完成后自动发送报告到指定的URL或服务,如Slack或电子邮件。

示例:使用Postman API自动化测试报告

下面是一个使用Node.js和Postman API来自动化测试报告生成的例子:

// 引入必要的模块const axios =require('axios');// Postman API的URLconst postmanApiUrl ='https://api.getpostman.com/collections/{collection_id}/runs';// Postman API的访问令牌const postmanAccessToken ='your_postman_access_token';// 运行测试的配置const runConfig ={collection:{id:'your_collection_id'},environment:{id:'your_environment_id'},// 可以添加更多的配置选项};// 发送请求运行测试
axios.post(postmanApiUrl, runConfig,{headers:{'Content-Type':'application/json','X-API-Key': postmanAccessToken
    }}).then(response=>{
    console.log('测试运行成功,报告ID:', response.data.run.id);// 你可以在这里添加代码来获取测试报告并发送邮件或保存到数据库}).catch(error=>{
    console.error('测试运行失败:', error);});

在这个例子中,我们使用了axios库来发送POST请求到Postman API,触发测试运行。

runConfig

对象包含了运行测试所需的配置信息,如测试集合和环境的ID。

解释

  • axios.post:发送POST请求到Postman API。
  • postmanApiUrl:Postman API的URL,用于运行测试。
  • postmanAccessToken:Postman API的访问令牌,用于身份验证。
  • runConfig:包含测试运行配置的JSON对象。
  • response.data.run.id:测试运行成功后返回的报告ID,可以用于后续获取报告的详细信息。

通过上述方法,你可以有效地在Postman中利用高级测试报告功能,不仅自定义报告的外观和内容,还能将其自动化,确保测试结果的及时性和准确性。这将大大提高你的API测试效率和团队协作。


本文转载自: https://blog.csdn.net/weixin_42749425/article/details/142322430
版权归原作者 kkchenjj 所有, 如有侵权,请联系我们删除。

“Postman:Postman API测试:Postman测试结果的分析与报告”的评论:

还没有评论