泪洒枫丹:芙宁娜的未竟之歌,一段跨越时空的哀思

核心内容摘要

揭秘“枳积通肤肤”:免费入口网站的设置之道与无限可能
樱花漫画9.1大全:不止是漫画,是沉浸式的二次元盛宴

男生困困进女生困困洞引发热议:一个关于界限、理解与网络文化的深度探讨

简介API 测试为什么很重要如果你正在构建或维护现代 Web 服务那么你可能正在处理 API。

它们是当今互联软件领域的支柱。

但关键在于API 的好坏取决于其可靠性、速度和正确性。

这就是 API 测试的作用所在。

它不仅仅是你开发待办事项清单上的一个复选框它是确保你的 API 能够按预期运行的安全网即使用户或其他服务向它抛出难题。

Pytest作为API测试工具现在你可能会问“为什么要使用 Pytest”好吧如果你是 Python 开发人员你可能已经遇到过用于通用测试的 Pytest但它的用处不止于此。

Pytest 用途广泛也是API测试的强大工具。

凭借其简单的语法和丰富的插件架构可以编写干净、简洁、全面的 API 测试。

API 测试基础

2.

什么是 API 测试定义和意义API 测试就是将请求发送到 API 端点并验证响应。

听起来很简单对吧但它不仅仅是检查你是否获得 200 OK 状态200 OK status。

你需要验证数据结构、数据类型、数据值、性能甚至不同条件下的行为。

它就像 API 的 QA确保它强大、可靠且随时可用。

API 测试的类型对于 API 测试没有万能的方法。

下面简要介绍一下可能会遇到的测试类型单元测试这是最基本的测试主要关注 API 的各个组件。

可以考虑单独测试单个端点。

集成测试现在我们讨论的是确保服务的不同部分能够很好地协同工作。

这涉及测试多个端点之间的交互。

功能测试这些测试不仅限于单个组件和交互还着眼于完整的功能。

例如测试用户为完成某项任务可能进行的一系列 API 调用。

其他还有性能测试、安全测试甚至合同测试以确保API 符合某些商定的标准。

2.

为什么使用 Pytest 进行 API 测试使 Pytest 适合 API 测试的功能那么为什么我们都喜欢用 Pytest 进行 API 测试呢首先它是 Pythonic如果你正在阅读这篇文章那么你很可能是 Python 的粉丝。

但这不仅仅与语言偏好有关。

Pytest 提供了一些杀手级功能简单可以从简单的assert语句开始然后逐步升级到更复杂的测试。

灵活性使用 Pytest 装置可以创建可重复使用的测试组件。

在到达端点之前需要进行身份验证为此创建一个装置。

可扩展性Pytest 具有丰富的插件架构。

无论是使用 pytest-xdist 进行并行测试执行还是使用 pytest-benchmark 进行性能基准测试都可能有插件可以实现。

与其他测试框架的比较你可能会想“那么 unittest 或 Nose 等其他框架怎么样”好吧它们并不是糟糕的选择但 Pytest 提供了一种更直接、更 Pythonic 的方法。

此外它的插件生态系统是首屈一指的这意味着可以扩展其功能以满足几乎任何需求。

简而言之Pytest 就像测试框架中的瑞士军刀它功能多样、可靠是API 测试的首选。

测试 RESTful API好吧让我们深入了解使用 Pytest 进行 API 测试的本质。

我们讨论的是 RESTful API这是大多数 Web 服务的基础。

使用 Pytest 进行首次 API 测试在我们开始之前请确保您已经安装了 pytest 和 requests 。

如果没有快速执行 pip install pytest requests 应该可以解决问题。

RESTful API 中的请求和响应结构在 RESTful API 中有标准的 HTTP 方法——GET、POST、PUT、DELETE——并且每种方法都有其自身的一套规则。

请求通常由 URL、方法、标头headers组成有时还包括有效负载对于 POST 和 PUT。

响应将为你提供状态代码、标头以及 JSON 或 XML 主体。

编写并运行简单测试让我们从简单的开始。

我们将编写一个测试从一个虚构的 API 中获取一个用户。

创建一个名为 test_first_api.py 的 Python 文件并粘贴以下代码使用 pytest test_first_api.py 运行它你应该看到它通过。

恭喜你已经编写了第一个 API 测试测试各种 HTTP 方法GET、POST、PUT、DELETE不同的 HTTP 方法有不同的用途。

GET 用于检索数据POST 用于创建新数据PUT 用于更新现有数据而 DELETE 则用于删除数据。

让我们看看如何使用 Pytest 来测试这些方法。

创建一个名为 test_http_methods.py 的文件运行 pytest test_http_methods.py 来执行这些测试。

测试响应代码和标头检查状态码状态码能告诉你很多正在发生的事情。

200 OK 表示一切正常201 Created 表示您的 POST 操作成功404 Not Found 表示您正在请求不存在的东西。

在你的测试中可以断言这些代码以确保API 表现符合预期。

在上面的示例中我们一直在使用 assert response.status_code 200 来做这件事。

验证响应标头响应标头可以包含有价值的信息如内容类型、认证令牌和缓存设置。

要检查这些您可以使用 response.headers它会返回一个包含响应头的字典。

以下是一个在名为 test_response_headers.py 的文件中的快速示例使用 pytest test_response_headers.py 运行此代码。

测试异步 API你已经掌握了基础知识并且感觉自己像个 Pytest “武士”。

但是那些不遵循常规规则的 API 怎么办我说的是异步 API。

API 中的异步性简介什么是异步 API在典型的同步 API 中你发出请求并等待响应。

很简单对吧但在现实世界中某些操作需要花费时间 — 比如说很多时间。

这就是异步 API 的作用所在。

你发出请求收到确认然后稍后获取实际数据这样你就可以腾出时间去做其他事情。

为什么它很重要异步 API 对于耗时且不应阻碍用户其他活动的操作至关重要。

它们在聊天应用、在线游戏和金融交易平台等实时应用中很常见。

测试 WebSocket APIWebSocket 是一种协议它通过单个长期存在的连接提供全双工通信通道。

这就像在客户端和服务器之间有一条开放的电话线。

如何使用 Pytest 进行 WebSocket 测试要测试 WebSocket API你可以使用 pytest-asyncio 和 websockets 库。

首先安装它们创建一个名为test_websocket.py的 Python 文件使用 pytest test_websocket.py 运行测试。

测试 GraphQL APIGraphQL 是一种 API 查询语言由于其灵活性而受到广泛关注。

与 REST 不同可以精确指定所需的数据从而减少通过网络传输的数据量。

如何使用 Pytest 进行 GraphQL 测试对于 GraphQL可以使用该requests库发送带有包含查询的 JSON 有效负载的 POST 请求。

创建一个名为 test_graphql.py的 Python 文件使用 pytest test_graphql.py 运行测试。

高级技术现在你已经掌握了基础知识甚至涉足了一些异步 API 测试。

但我们不会止步于此让我们深入研究一些高级技术。

性能测试和基准测试性能不仅仅关乎速度它还关乎 API 在各种条件下的表现。

当多个用户访问时它是否会变慢它会崩溃吗让我们来一探究竟。

如何使用 pytest-benchmark 进行性能测试插件pytest-benchmark是你的好朋友。

请先安装它创建一个名为 test_performance.py的 Python 文件使用 pytest test_performance.py 运行测试。

模拟和存根 API你并不总是希望访问实际的 API尤其是在测试可能更改数据的内容或受到速率限制时。

使用 unittest.mock 模拟 API 响应Python 的内置unittest.mock库非常适合此用途。

创建一个名为的 Python 文件test_mocking.py使用 pytest test_mocking.py 运行测试。

自动化和 CI/CD自动化测试是拼图的最后一块。

它确保每次有人推送代码时测试都会运行从而控制 API。

与 Jenkins、Travis CI 和 GitHub Actions 集成对于 Jenkins 和 Travis CI你通常会编写一个脚本来安装 Python、安装依赖项然后运行 pytest。

对于 GitHub Actions创建一个.github/workflows/main.yml文件

案例研究和最佳实践好了你已经掌握了工具和技术。

现在让我们看看一些真实场景和最佳实践。

现实世界中复杂的 API 测试场景示例测试微服务架构想象一下你正在开发类似 Netflix 的流媒体服务。

你拥有用于用户身份验证、视频流和推荐的微服务。

如何测试它创建一个名为 test_microservices.py的 Python 文件使用 pytest test_microservices.py 运行测试。

测试速率受限的 API某些 API 有速率限制需要测试应用程序如何处理此问题。

创建一个名为 test_rate_limit.py 的 Python 文件使用 pytest test_rate_limit.py 运行测试。

API 测试最佳实践讨论保持测试原子性每个测试都应该代表一个逻辑概念。

混合使用多个断言可能会让人难以理解测试失败的原因。

对可重用组件使用 FixturePytest 装置非常适合设置测试条件。

将它们用于身份验证令牌或数据库连接等。

测试边缘情况不要只测试“快乐路径”。

确保测试边缘情况例如无效输入、速率限制和超时。

自动化一切如果你没有自动化测试那你就做错了。

确保你的测试自动运行特别是在代码合并之前。

结论阅读完本文后我希望你已经相信 Pytest 是一款功能强大的工具可用于各个级别的 API 测试。

它不仅可以测试基本的 API 功能它还提供异步测试、基准测试和 CI/CD 集成等高级功能。

本文的关键点是有效的 API 测试不仅仅是检查端点是否正常工作。

它还涉及了解 API 的不同元素如何相互作用、如何管理测试数据以及如何自动化这些测试以持续保证质量。

感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

成人漫画 羞羞歪歪漫画-成人漫画 羞羞歪歪漫画应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123