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
SOAP | REST |
---|---|
协议 | 独立于协议的架构技术。它也可以使用 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 客户端需遵循以下步骤:
打开 Google Chrome。转到 Web 商店。
搜索“高级 REST 客户端”。或点击下面的链接,然后安装扩展程序。https://chrome.google.com/webstore/detail/advancedrestclient/hgmloofddffdnphfgcellkdfbfbjeloo/
转到应用程序部分。选择“高级 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 Continue | 410 Gone |
101 Switching Protocols | 411 Length Required |
102 Processing | 412 Precondition Failed |
413 Request Entity Too Large | |
2xx 成功 | 414 Request-URI Too Long |
200 OK | 415 Unsupported Media Type |
201 Created | 416 Requested Range Not Satisfiable |
203 Non-Authoritative Information | 426 Upgrade Required |
204 No Content | 428 Precondition Required |
205 Reset Content | 429 Too Many Requests |
206 Partial Content | 431 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 Choices | 501 Not Implemented |
301 Moved Permanently | 502 Bad Gateway |
302 Found | 503 Service Unavailable |
303 See Other | 504 Gateway Timeout |
304 Not Modified | 505 HTTP Version Not Supported |
305 Use Proxy | 506 Variant Also Negotiates (Experimental) |
306 (未使用) | 507 Insufficient Storage (WebDAV) |
307 Temporary Redirect | 508 Loop Detected (WebDAV) |
308 Permanent Redirect | 509 Bandwidth Limit Exceeded |
510 Not Extended | |
4xx 客户端错误 | 511 Network Authentication Required |
400 Bad Request | 598 网络读取超时错误 |
401 Unauthorized | 599 网络连接超时错误 |
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应用程序以及调用应用程序中的问题。