API 测试有助于检查应用程序业务逻辑。这是集成测试的一部分,没有 API 测试的任何质量保证过程都是不完整的。

然而,手动的 API 测试是一个相当令人厌倦的过程,所以测试工程师经常选择自动化这个过程。现在,有许多测试自动化工具和技术可供使用,但我想带你了解一些我最喜欢的工具和技术,以帮助你节省时间并获得更好的结果。

什么是API?

应用程序编程接口(API)是构建应用程序时使用的一组规则、方法、工具和协议。换句话说,它是不同软件组件相互沟通的一种方式。API 减少了项目开发时间,改善了项目的可维护性。

现代应用开发常分为三个层级:

数据库:数据存储在服务器中,并提供数据访问服务。业务逻辑:它由 API 组成;它的主要目的是方便不同组件之间相互通讯。呈现:它代表了用户看到的界面。

为什么需要测试API?

我们测试 API 来提高业务逻辑层的应用程序测试覆盖率。测试 API 很重要,因为每当它们不能正常工作时,应用程序逻辑、性能和安全性都会出现重大问题。

API测试工具

现在有三个流行的 API 测试工具:Postman、curl 和 SoapUI。

Postman 是一个用于测试网络服务的强大工具。它是为简单快速地发送HTTP请求而开发的。

curl 是一个命令行工具,用于通过 HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、LDAP、DAP、DICT、TELNET、FILE、IMAP、POP3、SMTP和RTSP协议发送请求。

SoapUI 是一个用来测试SOAP和RESTful Web服务的免费工具。

使用PostMan测试API

Postman 提供了简洁易用的界面。要发送一个简单的请求,只需要打开它,填写请求地址和必要的请求头,选择HTTP请求方法后,然后点击“send”按钮即可。

Postman Scripts是一个很棒的功能

Postman提供的最棒的一个功能是支持编写 JavaScript 测试脚本来校验 API 的响应。它支持两种脚本:

请求前脚本(pre-request script):在请求发送到服务器之前执行,需要填写在“Pre-request Script” 标签窗口内。测试脚本(test script):在请求收到之后执行,需要填写在“Tests”标签窗口内。

例子

首先我们在 Postman 中新建一个 API 请求,它将获得一本书的信息,数据将以 JSON 格式返回。

接下来我们需要编写测试脚本来验证 API 的响应。把如下内容填写在“Tests”标签窗口内:

再次发起请求,Postman 会在请求结束后在“Test Results”标签窗口内展示测试的结果:

Postman Collections

Collections 是 Postman 中的另一个有用的功能。可以让我们把各种请求组织到单独的文件夹中,当你要测试的请求数量众多时这个功能特别实用。它还支持把 collections 保存为 JSON 格式,然后稍后可以导入进来。创建一个 collection 也很容易,点击面板左上方的“+ New Collection”按钮即可。

使用 Postman Monitor自动化测试

第三个实用的功能是 Postman Monitor。它会以指定的时间间隔自动化运行 Collection 里的测试脚本,如果你是付费用户的话,还可以选择分布在世界各地的网络节点进行测试,确保在全球范围内 API 都是可用的。

使用 Newman 自动化测试

Postman 还提供了另一个自动化测试工具 Newman。它是一个命令行工具,可以运行 collection 里的测试脚本,主要用于配合 Jenkins, Travis CI 等自动化集成工具使用。

首先需要在操作系统上下载并安装 Newman。如果你已安装了 Node.js,只需要运行 npm install -g newman 即可。

要运行 collection 里面的测试脚本,你需要先把 collection 导出为 JSON 格式。然后可以在命令行中运行 newman run 命令,假设你导出的文件名为 Collection1.postman_collection.json:

newman run Collection1.postman_collection.json

测试运行完成后,会在终端打印出详细的测试结果。

我们也可以选择把测试结果导出为一个 HTML 文件,首先运行 npm install -g newman-reporter-html 安装生成 HTML 报告所需的 NPM 包,然后再次运行 newman run 命令,同时指定报告的导出形式为 HTML,假设导出的文件路径是 /home/test/report.html:

newman run Collection1.postman_collection.json --reporters html --reporter-html-export /home/test/report.html

结语

如你所见,Postman 是一款用于 API 测试的强大工具。不过为了获得最佳结果并节省时间和精力,必须正确地使用它。如果你付出了时间和经历掌握了 Postman 技能,你将能够显著提高项目的质量。

举报/反馈

如何使用postman测试服务器的性能,如何用Postman测试API相关推荐

  1. 如何用Postman mock服务?

    VOL 315 03 2021-11 今天距2022年58天 这是ITester软件测试小栈第315次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 0 ...

  2. 如何用postman实现接口自动化测试

    postman使用 开发中经常用postman来测试接口,一个简单的注册接口用postman测试: 接口正常工作只是最基本的要求,经常要评估接口性能,进行压力测试. postman进行简单压力测试 下 ...

  3. 如何用Postman写接口文档,团队协作开发

    最近为了减少对代码的侵入性,舍弃了之前一直使用的Swagger,但是showdoc写文档又比较麻烦,测试接口也不方便,于是看了一下网上的多篇关于postman写接口文档的文章,并且亲身实验后将经验结合 ...

  4. 如何用postman发送新浪微博

    首先在Chrome里发送一条微博: 在Chrome开发者工具的network标签页里记录下url: https://www.weibo.com/aj/mblog/add?ajwvr=6&__r ...

  5. Postman使用总结(1)——Postman 自动化测试小结

    一.接口结果判断 首先,既然是自动化测试,那么我们肯定需要通过工具 Postman 或者代码,帮我们直接判断结果是否符合预期.那么在接口测试上,大体就两个思路:1. 判断请求返回的 code 是否符合 ...

  6. ab 发送post请求测试API性能

    apache benchmark 工具 测试API 性能发送 Post 请求(Linux环境验证通过) 在apache bin 目录,在linux上执行命令: ./ab -n 1 -v 4 -p 'u ...

  7. 如何用R和API免费获取Web数据?

    API是获得Web数据的重要途径之一.想不想了解如何用R调用API,提取和整理你需要的免费Web数据呢?本文一步步为你详尽展示操作流程. 权衡 俗话说"巧妇难为无米之炊".即便你已 ...

  8. mysql ssd 性能测试 写入_MySQL服务器的SSD性能问题分析和测试详解

    [问题] 我们有台HP的服务器,SSD在写IOPS约5000时,%util达到80%以上,那么这块SSD的性能究竟有没有问题,为解决这个问题做了下面测试. [工具] blktrace是linux下用来 ...

  9. postman下载教程linux,linux 安装postman

    Postman背景介绍 用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具.今天给大家介绍的 ...

最新文章

  1. 【转】多线程Core Data
  2. 原始套接字SOCK_RAW
  3. android:descendantFocusability
  4. 00后确实卷,公司新来的卷王,我们这帮老油条真干不过.....
  5. pythonpyquery去掉br_如何在将pyquery对象转换为字符串时取消特殊字符的转义
  6. 如何使用dll ip转换_如何使用多功能转换插座更安全
  7. 有了这个数据强一致“利器”,DBA们轻松修复数据对加班“say no”
  8. oracle数据库数据消失,,保存在数据库里的数据莫名其妙的消失
  9. java 环境变量_Win10系统配置Java环境变量
  10. Palabos User Guide中文解读 | 第十四章 | 网格加密Refinement
  11. Android 网络图片加载之cude 框架
  12. javascript文档_用javascript print js打印文档的最简单方法
  13. 美国弗吉尼亚大学计算机科学,弗吉尼亚大学计算机科学专业怎么样?
  14. 计算机设备2后符号,表情符号含义展示的方法及设备与流程
  15. 表单reset重置按钮的作用并非是清空表单
  16. 专访STEM领域人才资深人工智能图像算法工程师张旦
  17. OMNET随笔(初学感悟)
  18. network中的weight initialization
  19. linux 系统基础命令
  20. 一种基于“spark lite”和“按键自动精灵”软件的不间断跑流量方法

热门文章

  1. 关于ipxe启动的几个疑问
  2. django migration使用指南
  3. Android 自定义AlertDialog(退出提示框)
  4. 从程序员到项目经理(13):如何管理自己的时间(下)【转载】
  5. 就算神游 之五:东京迪斯尼乐园 1
  6. 盘点苹果乔布斯憎恨Google的十大原因
  7. 关于C#的GetHashCode
  8. 关于STM32没有硬件浮点单元的纯经验之谈,是否可以在stm32上用float运算?
  9. Centos7:dubbo监控中心安装,配置和使用
  10. mysql基本知识总结