当前位置: 首页 > news >正文

域名不同网站程序相同社区建立网站

域名不同网站程序相同,社区建立网站,做食品研发都有哪些网站,做搜狗手机网站快Pytest-Bdd-Playwright 系列教程(9):datatable 参数的使用 前言一、什么是 datatable 参数?Gherkin 表格示例 二、datatable 参数的基本使用feature文件:获取用户信息并执行相关操作的使用 datatable 处理表格数据Give…

Pytest-Bdd-Playwright 系列教程(9):datatable 参数的使用

  • 前言
  • 一、什么是 `datatable` 参数?
    • Gherkin 表格示例
  • 二、`datatable` 参数的基本使用
    • feature文件:获取用户信息并执行相关操作的
    • 使用 `datatable` 处理表格数据
    • `Given` 步骤:处理用户数据
    • `When` 步骤:分配角色
    • `Then` 步骤:验证权限

前言

  • pytest-bdd 在编写复杂的 Gherkin 场景时,往往会涉及到大量的表格数据。为了方便地管理和操作这些表格数据,pytest-bdd提供了一个非常有用的功能——datatable 参数。

一、什么是 datatable 参数?

datatable 参数是 pytest-bdd 中提供的一种特殊参数类型,用于处理 Gherkin 场景中定义的表格数据。Gherkin 语言中的表格通常用于提供一组结构化的输入数据或期望的结果数据。当测试场景需要处理多个数据行时,数据表是一种非常有效的方式。datatable 参数正是用来将这些数据表传递到测试步骤函数中的。

pytest-bdd 中,datatable 参数返回的是一个二维列表,其中每一行表示 Gherkin 表格中的一行数据,行与行之间通过列表的方式进行存储。

Gherkin 表格示例

假设我们在 Gherkin 场景中定义了如下的用户数据表:

Given the following user details:
| name  | email             | age |
| John  | john@example.com   | 30  |
| Alice | alice@example.com  | 25  |

在这个场景中,我们定义了一个包含姓名、邮箱和年龄的表格。当我们将这个表格传递到 pytest-bdd 测试步骤中时,它会变成以下结构:

[["name", "email", "age"],["John", "john@example.com", 30],["Alice", "alice@example.com", 25]
]

这就是 datatable 参数在测试步骤中的表现形式。可以看到,datatable 参数将每一行表格数据作为一个列表传递给测试函数,使得你可以像处理普通的 Python 列表一样操作这些数据。

二、datatable 参数的基本使用

在使用 pytest-bdd 编写自动化测试时,datatable 参数通常和 Gherkin 中的表格配合使用。在步骤定义中,我们通过 datatable 参数将表格数据传递给测试函数,并在测试中进行处理。

feature文件:获取用户信息并执行相关操作的

假设我们有一个场景,要求在系统中创建多个用户并赋予不同的角色。我们可以通过以下 Gherkin 场景来定义数据表:

Feature: 用户账户管理Scenario: 创建新用户并分配角色Given the following user details:| name  | email             | age || John  | john@example.com   | 30  || Alice | alice@example.com  | 25  |When each user is assigned the following roles:| role      | description             || Admin     | 系统的完全访问权限      || Contributor | 可以添加内容          |And the page is savedThen the user should have the following permissions:| permission       | allowed || view dashboard   | true    || edit content     | true    || delete content   | false   |

在这个场景中,我们首先定义了一个包含用户详细信息的表格(Given the following user details),然后在 When 步骤中,我们为每个用户分配了不同的角色,最后在 Then 步骤中,我们验证每个用户是否拥有正确的权限。

使用 datatable 处理表格数据

首先,我们需要导入 pytest-bdd 提供的步骤装饰器,并定义每个步骤对应的处理函数。

Given 步骤:处理用户数据

Given 步骤中,我们需要处理 Gherkin 场景中定义的用户数据表。通过 datatable 参数,我们可以将每一行数据提取出来并存储在一个列表中。

from pytest_bdd import given, when, then@given("the following user details:", target_fixture="users")
def _(datatable):users = []for row in datatable[1:]:  # 跳过表头users.append({'name': row[0],'email': row[1],'age': row[2]})print(users)return users

在这个步骤中,我们首先跳过表头(datatable[1:]),然后将每一行数据转换为字典形式,最后将所有用户数据返回。

When 步骤:分配角色

When 步骤中,我们需要将每个用户分配角色。通过 datatable 参数,我们可以获得角色数据,并遍历每个用户,进行角色分配。

@when("each user is assigned the following roles:")
def _(datatable, users):for user in users:for role_row in datatable:assign_role(user, role_row[0], role_row[1])

在这个步骤中,我们遍历每个用户,并为每个用户分配角色。datatable 包含了角色信息,我们通过 role_row[0]role_row[1] 获取角色名称和描述,并调用 assign_role 函数进行分配。

Then 步骤:验证权限

Then 步骤中,我们需要验证每个用户是否拥有正确的权限。datatable 参数再次用于提供期望的权限数据,并将其与每个用户的实际权限进行对比。

@then("the user should have the following permissions:")
def _(datatable, users):expected_permissions = []for row in datatable[1:]:  # 跳过表头expected_permissions.append({'permission': row[0],'allowed': row[1]})assert users_have_correct_permissions(users, expected_permissions)

在这个步骤中,我们首先提取期望的权限数据,并将其存储为字典列表。然后,使用 assert 语句验证每个用户的权限是否与期望值一致。

http://www.yayakq.cn/news/320824/

相关文章:

  • 网站曝光率织梦网站关掉wap
  • 淄博优化网站排名做游戏和做网站哪个难
  • 如何在自己电脑上建设网站福永响应式网站建设
  • 平面设计公司培训厦门做网站优化
  • 专为网站做点击量公司可以网上注册吗
  • 密云郑州阳网站建设网站建设业务流程
  • 怎么通过域名做网站网站蓝色导航栏代码
  • 请求做女朋友的网站源码商品网站建设
  • 中山市开发区建设局网站wordpress做的视听网站
  • 做包子网站企业网络营销策略研究
  • 物流网站建设实例dw怎么做单页网站
  • 教你做吃的网站wordpress数据库还原
  • 四川建设人才培训网站久久建筑网的账号
  • ppt模板免费的网站推荐公司注册网上申报流程
  • 惠州网站建设怎么样制作网站收费
  • 旅游建设网站目的及功能定位做我女朋友的网站
  • 电器网站建设流程做国外lead应该做什么网站
  • 安徽理工大学新校区建设网站广西华宇建设集团网站
  • 做网站js框架网站怎么做才算精致
  • 桂林市建设工程质量监督站网站南通企业网站有哪些
  • 自微网站黑帽seo是什么
  • 清新大气企业公司网站源码月编程做网站
  • 平阳做网站大型营销型网站建设
  • 阳谷建网站网站后台如何修改文字
  • 科技网站备案化妆品网站建设方案的预算
  • 义务教育标准化建设网站智能网站推广优化
  • 俄文网站建设方案管理咨询公司swot
  • 个人相册网站模板茶叶网站实际案例
  • 找个美工做淘宝网站需要多少钱超级软文
  • 徐州铜山区建设局网站一级做A网站