首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

pytest-xlsx 2.0 (二):加法测试示例

加法测试是指:在 xlsx 中编写进行相加的两个数以及预期结果,并由 pytest 加载、执行、判断。

其步骤类型单一,且不需要任何第三方组件,适合新手练习。

设计用例

假设在进行加法测试时,需要 3 个值:

num1: 第一个数字

num2 : 第二个数字

expected_results:预期的计算结果

为符合插件要求,需要加上必填字段,即为:

如果在测试用例需要包含更多步骤,name 标记下中继续增加内容:

自此 xlsx 用例已设计完毕,pytest 执行结果如下:

实现钩子

此时 pytest 虽然能够识别、加载用例内容,却没有根据用例步骤进行具体动作的执行。

既没有进行加法运算,也没有对结果进行断言。

接下来通过实现钩子将 xlsx 用例步骤变为具体的用例动作

# conftest.py

from pytest_xlsx import XlsxItem

def add(num1,num2,expected_results):    c = num1 + num2    assert c == expected_results

def pytest_xlsx_run_step(item: XlsxItem):

   step = item.current_step    action = step.get("关键字")    # `_BlankField` 存储所有空白字段数据    num1, num2, expected_results =  step.get("_BlankField")

   if action == 'add':  # 判断xlsx中的关键字

       assert == num1 + num2

   return True

实现钩子后重新启动 pytest:

(.venv) C:\demo\pytest-xlsx-demo>pytest=========================== test session starts ============================platform win32 -- Python 3.12.0, pytest-8.2.2, pluggy-1.5.0rootdir: C:\demo\pytest-xlsx-democonfigfile: pytest.iniplugins: xlsx-2.0.0collected 1 item

tests\example\test_add.xlsx F                                        [100%]

================================= FAILURES =================================_______________________________ Sheet1.加法运算 ________________________________xlsx content:|     | 关键字   |   _BlankField |     |     ||-----|----------|---------------|-----|-----||     | add      |           111 | 222 | 333 || 》》 | add      |           111 | 333 | 555 ||     | add      |           111 | 333 | 999 |C:\demo\pytest-xlsx-demo\conftest.py:24: AssertionErrorassert 444 == 555========================= short test summary info ==========================FAILED tests/example/test_add.xlsx::Sheet1::加法运算============================ 1 failed in 0.03s =============================

首先看到的是,这个用例 执行失败了

再细看失败原因,正是由于第二个测试步骤 断言失败了

_______________________________ Sheet1.加法运算 ________________________________xlsx content:|     | 关键字   |   _BlankField |     |     ||-----|----------|---------------|-----|-----||     | add      |           111 | 222 | 333 || 》》 | add      |           111 | 333 | 555 ||     | add      |           111 | 333 | 999 |C:\demo\pytest-xlsx-demo\conftest.py:24: AssertionErrorassert 444 == 555

创建多个用例

如果你有多个测试步骤,力求每一个步骤都进行能够执行,可以考虑把步骤分散的不同的用例中中。

按照一般的测试原则,用例之间相互隔离。所以就算某个用例失败了,其他用例也会继续执行。

这里有一个小技巧:

我们不需要真的创建三个 xlsx 文件,只需要在同一个 xlsx 在文件通过 name 进行分隔,即可创建三个用例:

执行结果如下:

从执行结果可以看到,1 个成功 2 个失败

失败的原因都是是因为断言失败(AssertionError)

下一步

至此,便实现了单一步骤类型的 xlsx 加法测试,

你可以在测试用例中补充更多的步骤,或者创建更多的 xlsx 文件里补充测试用例。

也可以修改用例的格式或步骤执行方式,实现其他类型的测试。

能看到这里说明是真爱,关注一下吧

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OuPOe0yjSiEGY5tL_PbtNL-g0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券