【项目一】基于pytest的自动化测试框架day1

day1不涉及编写代码,只简单梳理接口测试相关的概念。

day1

接口测试的本质:功能测试的一部分

接口测试是功能测试的一部分,本质是将测试的对象从用户界面转移到了应用程序接口上。

测试用例的设计与实现

接口测试的第一步,从来都是获取接口文档。一个完整的接口文档通常包含以下几部分

  • 接口名词
  • 接口地址
  • 请求方法(GET,POST,PUT,DELETE等)
  • 请求头信息
  • 请求参数(必选参数与可选参数)
  • 返回值以及数据结构

测试用例的设计围绕如何验证接口的功能暂开,通常从以下几个方面入手:

  1. 单接口测试:验证某一个接口在不同参数组合下的行为是否符合预期。测试点包括:
  • 正向测试:使用正确的参数进行请求,验证返回值是否符合预期。
  • 反向测试:使用错误或异常参数进行请求,验证接口是否能正确处理异常情况。
  • 边界测试:例如对于要求固定长度的参数(如身份证号),测试其在不同长度下的响应情况。
  1. 业务逻辑测试:验证多个接口之间的协同工作。例如商品下单流程设计多个接口,如库存检查、订单创建、支付确认等。这些接口之间存在依赖关系,测试是需要保证每个步骤的返回值都正确传递给下一个接口。

接口调试与自动化:从postman到持续集成

postman、jmeter等可以帮助我们快速验证接口的功能。通过这些工具,可以确认接口是否正常工作,参数是否正确传递,以及返回值是否符合预期。自动化测试的实现通常是将手动测试的步骤脚本化,并在代码中实现。

例如,使用python的requests库,可以轻松地编写自动化测试脚本,并将这些脚本集成到持续集成(CI)系统中,如Jenkins、GitLab CI等。通过CI,我们可以设定每日定时执行测试,并将测试结果推送到团队的沟通工具(如钉钉、Slack)中,确保所有成员都能及时了解到项目的健康状态。

补充概念

DevOps:

一种将开发、运维结合的文化和实践方法。其目标是通过协作和自动化来提高软件交付的速度、频率和可靠性。DevOps 强调持续交付(CD)和持续部署(CI/CD),即通过自动化构建、测试和部署,确保代码能够快速、安全地推向生产环境。

自动化测试在DevOps中的作用:

自动化测试在 DevOps 流程中至关重要。通过自动化测试,可以在每次代码变更后立即验证其正确性,减少引入新 bug 的风险。自动化测试的主要作用包括:

  • 回归测试:确保新代码不会破坏已有功能
  • 持续集成:在每次代码提交时自动运行测试,快速发现和修复问题
  • 持续交付:确保代码在交付前通过所有测试,从而减少部署后的问题

DevOps工具链中的自动化测试:

在 DevOps 工具链中,自动化测试通常与持续集成/持续交付工具结合使用。例如,Jenkins 是一个广泛使用的 CI/CD 工具,它可以自动化地构建、测试和部署代码。通过 Jenkins,测试工程师可以设置流水线,在代码每次变更时自动运行测试并生成报告。

测试驱动开发(TDD):

测试驱动开发(TDD)是一种软件开发流程,强调先编写测试用例,然后编写最小量的代码来通过这些测试,流程通常是:

  • 编写一个失败的测试:根据需求编写一个测试用例,测试当前未实现的功能。
  • 编写通过测试的代码:编写代码通过刚刚的测试。
  • 重构:优化代码,同时确保所有测试继续通过。

TDD有助于确保代码的每个部分都是经过测试的,并且开发人员能够在早期阶段发现问题。

行为驱动开发(BDD):

行为驱动开发是一种在TDD基础上发展出来的开发流程。BDD强调在开发前,开发人员、测试人员和业务人员共同定义系统的行为,即用户故事。BDD 通常使用自然语言编写测试用例,使其更容易被非技术人员理解。例如:

• "当用户登录成功后,应该跳转到主页。"

BDD 的主要工具包括 Cucumber 和 Behave,这些工具允许测试用例以人类可读的形式编写,并且能够自动运行。

从TDD/BDD到CI/CD:

现代软件开发往往将TDD或BDD与CI/CD流程结合起来,以实现高效的测试和交付。具体流程如下:

  • TDD/BDD流程:开发人员在编写代码之前,首先编写测试(TDD)或行为描述(BDD)
  • 持续集成(CI):每次代码提交后,CI工具(如jenkins)自动运行所有测试,确保代码符合预期
  • 持续交付/持续部署(CD):通过CI工具,代码在所有测试通过之后被自动部署到生产环境,或准备好进行手动部署。
相关推荐
qq_4337169521 小时前
测试分层:减少对全链路回归依赖的探索!
自动化测试·软件测试·功能测试·测试工具·回归·pytest·postman
开心呆哥2 天前
【Android Wi-Fi 操作命令指南】
android·python·pytest
小码哥说测试4 天前
测试分层:减少对全链路回归依赖的探索!
自动化测试·软件测试·人工智能·测试工具·appium·pytest·postman
帅得不敢出门5 天前
Python+Appium+Pytest+Allure自动化测试框架-安装篇
python·appium·自动化·pytest·测试·allure
blues_C5 天前
Pytest-Bdd-Playwright 系列教程(5):仅执行测试用例的收集阶段
自动化测试·测试用例·pytest·bdd
帅得不敢出门7 天前
Python+Appium+Pytest+Allure自动化测试框架-代码篇
python·appium·自动化·pytest·测试·allure
qq_433716958 天前
接口测试 —— Postman 变量了解一下!
自动化测试·软件测试·jmeter·单元测试·pytest·接口测试·压力测试
彳亍2618 天前
【Python单元测试】pytest框架单元测试 配置 命令行操作 测试报告 覆盖率
python·单元测试·pytest
鹿鸣悠悠8 天前
pytest脚本常用的执行命令
pytest