REST API 测试教程 - 示例手动测试用例


API

应用程序编程接口 (API) 是一种计算接口,用于在两个独立的系统之间进行通信和信息交换。执行 API 的系统涉及另一个系统也可以执行的功能。它定义了要发出的请求、如何发出请求、可以使用哪些格式等,这些都在两个不同的系统之间。

API 测试

它是一种评估 API 的软件测试。其目的是确定接口的功能、可靠性、性能和安全性。我们使用软件发送调用、获取输出并记录系统的响应,而不是标准的用户输入(如键盘和输出)。这些测试与 GUI 测试完全不同,并且不强调系统架构的业务逻辑层。API 的自动化测试需要一个能够通过 API 交互的应用程序。

REST API

REST API 也称为 RESTful API,是一种符合 REST 限制并允许与 RESTful 网络服务交互的 API。REST API 测试是一种开源自动化技术,用于测试 Web 应用程序的 RESTful API。它通常用于测试基于 JSON 和 XML 的 Web 应用程序。它与所有方法兼容:GET、PUT、POST、PATCH 和 DELETE。REST 是一个 Java 库。

此测试的目的是通过发送 HTTP 或 HTTPS 请求来估计和记录 REST API 的响应,以确定 REST API 是否正常工作。此测试通过以下方法完成:GET、PUT、POST、PATCH 和 DELETE。

REST——表述性状态转移,是一种架构技术和用于开发 Web 服务的通信方式。它是构建 API 的逻辑选择,并允许用户有效地连接和使用基于云的服务。API 是访问基于 Web 的应用程序的一组编程指令。也就是说,它是一组程序用来交互并使用彼此的功能来收集信息的命令。

API 的一个例子是 Google 的网站,它可以为许多功能提供 API,例如搜索、翻译、日历等。

主要有四种 API 测试方法:

  • GET - 此方法用于通过 URI(统一资源标识符)从服务器收集信息。此方法只能提取信息,不应以任何方式影响数据。

  • POST - 此方法用于创建新实体,以及通过 HTML 表单将数据(例如客户信息、文件上传等)发送到服务器。

  • PUT - 此方法用于更新实体或创建新实体。

  • DELETE - 此方法用于删除 URI 提供的目标资源的现有表示。

SOAP 与 REST

SOAPREST
协议独立于协议的架构技术。它也可以使用 SOAP 网络服务。
简单对象访问协议表述性状态转移
使用服务接口进行业务逻辑。使用 URI 进行业务逻辑。
遵循严格的标准。没有如此严格的标准,但可以遵循一些标准来开发 Web 服务。
需要更多带宽。轻量级。
定义自己的安全性。继承自传输的安全措施。
仅使用 XML 格式在请求正文中发送数据。使用 XML、JSON 和其他格式在请求正文中发送数据。
使用 HTTP、SMTP 和其他协议。仅 HTTP 协议。
消息、操作等的绑定规则写在 WSDL 中。使用 WADL 格式来描述提供的功能。
标准化的。非标准化的。
由于存在规则、绑定等,需要更多时间学习。由于其简单性,需要较少的学习时间。

REST API 测试的不同方法

  • 手动测试

  • 自动化测试

REST API 测试的过程

此测试需要一个应用程序与示例 API 交互。API 测试需要以下两件事:

  • 操作 API 的工具/框架。

  • 测试示例 REST API 的代码。此代码必须由测试人员编写。

REST API 测试用例工具:

  • 高级 REST 客户端

  • Postman-REST 客户端

  • LINUX 中的 Curl

在本文中,我们将使用高级 REST 客户端。

如何获取高级 REST 客户端

获取高级 REST 客户端需遵循以下步骤:

测试 RESTful API 的步骤

我们使用 Google Chrome 中的 REST 客户端扩展程序。安装完成后,请按照以下步骤测试 RESTful API:

  • 打开高级 REST 客户端。安装高级 REST 客户端。成功安装后启动它。

  • 在文本框中输入要测试的 API 的 URL。

  • 在 API 测试中选择 HTTP 方法,例如 POST。

  • 在“标头”文本框中设置标头。然后,单击“插入标头集”。

  • 单击“使用此集合”。

  • 提供正文内容。

    • 打开“正文”选项卡。

    • 选择正文内容类型和编辑器视图。

    • 选择编辑器视图:原始输入。

    • 转到有效负载。传递要测试的 API 的请求正文,例如键值对:{“key-1”:“value-1”, “key-2”:“value-2”}。对于 post API,传递正文或参数。

  • 提交详细信息以开始测试。

    • 单击“发送”。

    • 要查看响应标头,请单击“详细信息”。

验证结果

在 Web API 测试中,主要确定的是响应代码、响应消息和响应正文。在 API 测试期间可能遇到的响应代码为:



1xx 信息4xx 客户端错误
100 Continue410 Gone
101 Switching Protocols411 Length Required
102 Processing412 Precondition Failed

413 Request Entity Too Large
2xx 成功414 Request-URI Too Long
200 OK415 Unsupported Media Type
201 Created416 Requested Range Not Satisfiable
203 Non-Authoritative Information426 Upgrade Required
204 No Content428 Precondition Required
205 Reset Content429 Too Many Requests
206 Partial Content431 Request Header Fields Too Large
207 Multi-Status (WebDAV)451 Unavailable For Legal Reasons
已报告 (WebDAV)499 Client Closed Request (Nginx)
226 IM Used

5xx 服务器错误
3xx 重定向500 Internal Server Error
300 Multiple Choices501 Not Implemented
301 Moved Permanently502 Bad Gateway
302 Found503 Service Unavailable
303 See Other504 Gateway Timeout
304 Not Modified505 HTTP Version Not Supported
305 Use Proxy506 Variant Also Negotiates (Experimental)
306 (未使用)507 Insufficient Storage (WebDAV)
307 Temporary Redirect508 Loop Detected (WebDAV)
308 Permanent Redirect509 Bandwidth Limit Exceeded

510 Not Extended
4xx 客户端错误511 Network Authentication Required
400 Bad Request598 网络读取超时错误
401 Unauthorized599 网络连接超时错误
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Timeout
409 Conflict

API 测试中的挑战

  • 确保测试更改 API 调用的参数,以便验证其工作并检测故障。这涉及探索边缘条件和分配常用参数。

  • 为具有多个参数的调用创建参数值组合。

  • 确定 API 调用的内容。这包括设置环境条件(例如外围设备、文件等)以及内部存储影响 API 的数据。

  • 根据要执行的序列函数对 API 调用进行排序。

  • 从连续调用中获得 API 的有用结果。

REST API 测试工具

JMeter − 它是一个广泛使用的开源性能测试工具。它由Apache开发,完全用Java编写。它旨在测试功能并测量性能。它还可以用于分析和测量Web应用程序和各种服务的性能。最初,它用于测试Web应用程序或FTP应用程序。如今,它也用于功能测试、数据库服务器测试等等。

此工具通过模拟真实世界的行为和测试环境来加载Web服务器、网站和Web应用程序。它提供用户友好的GUI,易于安装,并提供测试策略、模拟和其他性能测试功能。它简化了性能测试任务。

结论

API是一组访问基于Web的应用程序的编程指令。REST API测试中的四种主要方法是:GET、POST、DELETE和PUT。在API测试中,会检查响应代码、响应消息和响应正文。API测试可以防止API应用程序以及调用应用程序中的问题。

更新于:2021年9月22日

14K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告