引言
pytest-bdd 是一个专为Python设计的行为驱动开发(BDD)测试框架,它允许开发人员使用自然语言(如Gherkin)来编写测试用例,从而使测试用例更易于理解和维护。
安装
通过pip
安装
pip install pytest-bdd
介绍
- 特性文件(Feature File):定义了要测试的系统功能。通常以.feature为扩展名,并使用Gherkin语言编写。特性文件包含特性名称、描述以及一个或多个场景。
- 场景文件(Scenario File):定义了特定场景的步骤。虽然pytest-bdd不直接要求场景文件具有特定的扩展名或格式,但通常会将场景步骤的定义放在Python测试文件中,并使用pytest-bdd提供的装饰器来映射场景文件中的步骤。
- 步骤定义:将特性文件中的步骤映射到Python代码中的函数。这些函数使用pytest-bdd提供的@given、@when、@then等装饰器来定义。
- 钩子:在特定测试事件(如测试开始或结束)时调用的函数。pytest-bdd提供了几个内置钩子,如before_scenario、after_scenario、before_step、after_step等,允许在测试的不同阶段执行自定义代码。
feature文件
首先整理好一个接口测试,需要用到的场景、参数等信息,写到feature文件中,以便根据各种测试中的行为来进行脚本实现。
接口测试
Feature: 用户接口测试
Scenario: demo接口测试
Given 初始化
Given 登录
When 调用 "/login" 接口
When 使用 "post" 请求
# post get put delete
When 参数类型 "json"
# params json form-data form-urlencoded
When 请求头 "{'Content-Type': 'application/json','pro': 'RedRocket'}"
When 参数 "{'username': 'admin', 'password': '123456'}"
When 校验类型 "包含校验"
# 校验类型: 包含校验 相等校验 字段类型校验 字段值校验 状态码校验
When 校验文本 "登录成功"
When 校验字段类型为 "str"
# 字段类型:int str float list dict bool
When 校验字段 "message"
When 上传文件 "test.txt"
# When 退出
Then 调用成功
UI测试
Feature: 用户登录测试
Scenario: demo UI测试
Given 初始化
Given 登录
When 在元素 "login" 中,输入账号 "admin"
When 在元素 "password"中,输入密码 "123456"
When 点击 "login_button"
When 校验元素 "check_element" 校验是否包含文本 "成功"
Then 退出
项目介绍
项目代码获取方式,公众号后台回复pytest-bdd
获取。