前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用postman 自动化测试接口

使用postman 自动化测试接口

作者头像
狂奔滴小马
发布2021-11-15 15:06:58
9350
发布2021-11-15 15:06:58
举报
文章被收录于专栏:前端专享前端专享

为什么需要自动化测试

软件测试是软件开发的重要组成部分,是贯穿整个软件生命周期,对软件产品进行验证和确认的活动过程,其目的是尽早发现软件产品中存在的各种问题,如与用户需求、预先定义不一致等问题。

随着代码库的增长,需要确保自己没有破坏自己以前可以正常运行的任何功能。测试覆盖率越高,代码将越灵活且具有更好的抗错误性。

单元测试

对软件中的最小可测试单元进行检查和验证,具体来说就是开发者编写一小段代码,用于检验被测代码的一个很小的,很明确的功能是否正确。

集成测试

集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。 也就是说,在集成测试之前,单元测试应该已经完成,因为如果不经过单元测试,那么集成测试的效果将会受到很大影响,并且会大幅增加软件单元代码纠错的代价

系统测试

是对整个系统的测试,将需测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件数据等其他系统元素及环境结合在一起测试, 系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统定义不符合或与之矛盾的地方。

接口测试流程

接口测试一般遵循如下流程,细节部分可根据实际项目情况进行调整。

编写接口测试计划

一般来说,接口测试计划包含概述、测试资源、测试功能及重点、测试策略、测试风险、测试标准。

编写、评审接口测试用例

和功能测试类似,在开始接口测试前,需要根据需求文档、接口文档等项目相关文档编写并评审接口测试用例。

50341-00-025-1
50341-00-025-1

执行接口测试

依据编写的接口测试用例,借助测试工具(如 Postman、JMeter、SoapUI 等)执行接口测试,上报发现的问题。

接口自动化测试持续集成要点

进行项目测试时,接口会增加、减少或变更,测试用例也会相应更新,因此需要借助工具(如 GitHub 等)来维护测试用例进行持续集成,通过自动化测试实时监控项目接口运行情况。对接口测试而言,持续集成是核心内容,通过自动化的手段才能做到低成本、高收益。接口自动化测试持续集成主要包括以下内容。

① 流程方面。在回归阶段加强接口异常场景的覆盖,并逐步向系统测试、冒烟测试阶段延伸,最终达到全流程自动化。

② 结果展示。更加丰富的结果展示、趋势分析、质量统计和分析等。

③ 问题定位。报错信息、日志更精准,方便问题复现与定位。

④ 结果校验。加强自动化校验能力,如数据库信息校验。

⑤ 代码覆盖率。不断尝试由目前的黑盒向白盒下探,提高代码覆盖率。

⑥ 性能需求。完善性能测试体系,通过自动化的手段监控接口性能指标是否正常。

初识postman

image-20200519114408787
image-20200519114408787

创建一个request

将请求保存到collection

运行collection

编写测试用例

postman 内置包含了一些js模块(chai,lodash,tv4 uuid xml2js)等,具体可以查看文档

只需要require 就可以使用

代码语言:javascript
复制
var uuid = require('uuid');
    console.log(uuid())

HTTP响应状态码

1××:指示信息,表示请求已接收,继续处理。 2××:成功,表示请求已被成功接收、理解和接受。 3××:重定向,要完成请求必须进行更进一步的操作。 4××:客户端错误,请求有语法错误或请求无法实现。 5××:服务器错误,服务器未能实现合法的请求。 以下对常见状态代码和状态描述进行说明。 200 OK:客户端请求成功。 400 Bad Request:客户端请求有语法错误,不能被服务器所理解。 401 Unauthorized:请求未经授权。 403 Forbidden:服务器收到请求,但是拒绝提供服务。 404 Not Found:请求资源不存在,如输入了错误的 URL。 500 Internal Server Error:服务器发生不可预期的错误。 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

测试脚本流程

workflow for single request
workflow for single request

Pre-request 在请求之前,tests在请求之后。

项目示例

我们可以使用官方模板来,查看如何编写测试用

image-20200603145905165
image-20200603145905165
  • 注册登录,用户鉴权
  • rest API

TDD测试驱动开发

在开发功能代码之前,先编写单元测试用例代码,是敏捷开发中的一项核心实践和技术,也是一种设计方法论。

  • 接口路径
  • 接口状态码
  • 请求参数
  • 返回结果

postman 脚本 newman

Newman是Postman的命令行运行程序,要运行Newman,请确保您具有Node.js> = v10

安装

代码语言:javascript
复制
yarn init -y    //项目初始化
yarn add newman //安装newman

使用

新建一个js文件index.js , ./sample-collection.json文件可以通过postman导出。

代码语言:javascript
复制
const newman = require('newman'); 
 
// call newman.run to pass `options` object and wait for callback
newman.run({
    collection: require('./sample-collection.json'),
    reporters: 'cli',
    environment: {
      name: 'dev',
      values: [
        {
          key: 'base_url',
          value: 'http://10.1.11.235',
          enabled: true,
        }
      ],
    },
}, function (err) {
    if (err) { throw err; }
    console.log('collection run complete!');
});

运行

node index.js 就可以运行,运行完成后测试报告就打印在命令行中。

image-20200603143845879
image-20200603143845879

安装 newman-reporter-html, 修改报告生成,就可以生成html 形式的测试报告

代码语言:javascript
复制
...
- reporters: 'cli',
+ reporters: ['cli',html],
...
image-20200603143751009
image-20200603143751009

文件上传

将上传文件sample-file.txtcollection.json在同一个目录中就可以测试文件上传接口。

代码语言:javascript
复制
{
    "info": {
        "name": "file-upload"
    },
    "item": [
        {
            "request": {
                "url": "https://postman-echo.com/post",
                "method": "POST",
                "body": {
                    "mode": "formdata",
                    "formdata": [
                        {
                            "key": "file",
                            "type": "file",
                            "enabled": true,
                            "src": "sample-file.txt"
                        }
                    ]
                }
            }
        }
    ]
}

持续集成

整合github

整合Jenkins

总结

优点

  • Postman 安装简单、使用方便、功能强大,另外,这也是开发人员常用的接口调试工具
  • 接口文档生成,版本管理
  • 导入导出
  • CI/CD 对接到各个平台

缺点

  • request名称重复容易导致请求错误
  • 客户端编写js,不是很方便,没有代码自动提示
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么需要自动化测试
    • 单元测试
      • 集成测试
        • 系统测试
        • 接口测试流程
          • 编写接口测试计划
            • 编写、评审接口测试用例
              • 执行接口测试
                • 接口自动化测试持续集成要点
                • 初识postman
                  • 创建一个request
                    • 将请求保存到collection
                      • 运行collection
                      • 编写测试用例
                        • HTTP响应状态码
                          • 测试脚本流程
                            • 项目示例
                              • TDD测试驱动开发
                              • postman 脚本 newman
                                • 安装
                                  • 使用
                                    • 运行
                                      • 文件上传
                                      • 持续集成
                                        • 整合github
                                          • 整合Jenkins
                                          • 总结
                                            • 优点
                                              • 缺点
                                              相关产品与服务
                                              持续集成
                                              CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
                                              领券
                                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档