python模块允许通过配置文件参数化所有测试序列
wooqi的Python项目详细描述
吴起测试序列器
简介
wooqi是名为 pytest。它允许以非常特殊的方式对测试进行编码。这是一个有用的工具 管理大型测试数据库,因为它简化了测试的创建、维护和 执行。
吴起修改了pytest的标准用法,引入了新的力学,以便应用精确的 测试方法可由以下要点描述:
- 有一个测试步骤数据库。
- 有一个测试序列数据库,其中每个序列都是 由从测试步骤数据库中选择的一个或多个测试步骤组成。
- 有一些常用工具(自定义python类或函数) 以及固定装置,这些装置都可用于任何测试步骤。
- 用户可以使用单个命令行执行单个测试序列。
- 所有测试序列的报告和日志都保存在一个公共的报告数据库中。
例如,创建日志、测试参数化、报表读取和测试调度。 用吴起简化的东西。此外,该工具的通用方面允许 只要你能尊重它的方法,就可以将它用于任何类型的测试目标。
最后,需要注意的是,wooqi不包含任何测试本身。只是一个 执行测试的工具,我们称之为Wooqi项目。这样,你就可以 在您的机器上有几个"Wooqi项目",每个项目都有自己的特定功能,而 只使用一个工具(wooqi插件)在任何项目中执行任何测试。
基于上述原因,wooqi可以被视为一个独立的工具,而不是一个简单的 Pytest插件。
安装
您可以将wooqi作为pip包安装。
pip install wooqi --user
或者您可以克隆存储库,并手动构建和安装包:
python setup.py bdist
pip install dist/<package_name>
其中,<;package\u name>;
是Wooqi软件包的名称及其版本
您的Wooqi项目
吴起只是一个测试序列器,并不包含一些测试本身。这意味着你必须创造 您自己的项目包含您自己的测试,将由Wooqi阅读和执行。
创建新项目
要自动初始化新的wooqi项目,请使用以下命令行:
wooqi --init-project MY_PROJECT
用项目目录的路径替换我的项目(可以是相对的或绝对的)。这个 为项目创建必要的子目录和文件。大部分文件都是空的,因为 它们只是一些例子。
创建的项目的树状视图只是一个建议,并不是Wooqi必须工作的。 您可以根据自己的喜好定制您的Wooqi项目,只要您遵守以下规则(请 阅读下一节以完全理解这些规则:
- 夹具必须导入到项目根目录下的conftest.py中。
- 测试步骤、操作和顺序必须遵守其专用部分中给出的规则。 < > >
- 一个测试步骤由一个函数表示。
- 测试步骤可以写入任何目录中的文件中(默认目录为测试步骤)。
- 此文件的名称必须以"test"开头。
- 测试步骤名称必须以"测试"开头,测试步骤中的断言必须遵守指南 pytest模块的
- 测试步骤的参数必须选自现有的fixtures和特殊的 下面给出的参数。 有关这些特殊参数的详细信息,请参见 本文件。
- < >
- Uut2
- 测试信息
- 测试步骤可以使用任何其他文件中的任何python函数,只要它是 进口。它是标准的蟒蛇!
- 一个动作由一个函数表示。
- 可以在任何目录中的文件中写入操作(默认目录为操作步骤)。
- 此文件的名称必须以"操作"开头。
- 动作名称必须以"动作"开头。
- 操作可以包含断言,如测试步骤,但这不是必需的。
- 操作的参数遵循与测试步骤相同的规则。
- 一个操作可以使用任何其他文件中的任何python函数,只要它被导入。 它是标准的蟒蛇!
- 动作名称必须以"动作"开头。
- [测试信息]它包含有关序列本身的信息。
此部分中可以包含以下属性:
- 循环测试:用于在序列中生成循环。
请参阅专用章节
- 循环项:用于在序列中生成循环。 请参阅专用章节
- 循环测试:用于在序列中生成循环。
请参阅专用章节
- 后置失败:待定
- 重新运行:待定
- UUT:TBC
- uut2:tbc
- […待定…]
- 循环测试=a b其中a和b是循环的第一步和最后一步的名称。
- 循环=k其中k是循环的迭代次数。
- [--seq config test_sequence_file](必需)测试序列的.ini文件的相对路径。
- [--sn sample_name](必需)样本名称。用于命名日志。
- [-s]在控制台中显示日志和打印输出。
- [-k test_name]仅执行指定的测试(名称可能不完整)。
- [-lf]仅执行上次失败的测试。
编写测试
编写测试步骤
测试步骤只是一个python函数,其中包含一个断言。以下规则必须是 观察:
编写操作
操作几乎与测试步骤相同,只是它不一定有断言。 必须遵守以下规则:
编写测试序列
基础知识
测试在配置文件(.ini中)中描述。此文件可以位于任何目录中(默认为 序列)。因此,此文件包含几个具有某些属性的部分,如:
[my_section]attr1=value1attr2=value2
这些配置文件中可能有一个初始部分:
其他部分是指测试步骤或操作。任何步骤或动作都可以从 只需将目录名作为节名进行测试。
示例:[测试电池电量]
。本节的一些属性用于在测试中组织此步骤,
另一些则以阶跃函数作为参数。步骤顺序由
.ini中的定义顺序
以下是可以在步骤/操作部分中写入的属性列表:
在一个序列中多次调用同一步骤
如果需要多次调用同一测试步骤,则有一种特殊语法。必须添加"x" 在测试名称的末尾,将数字"x"从"0"增加如下:
[test_foo_0] ; Start with 0uut=dummy1[test_foo_1] ; Continue with 1uut=dummy2[test_foo_X] ; and so on...uut=dummy3
在TE中循环ST序列
您必须在[测试信息]部分中添加两个属性:
在下面的示例中,序列"test"将重复2次:
[test_info]loop_tests=test_b|test_dloop_iter=2[test_a][test_b][test_c][test_d][test_e]
运行测试序列
要启动测试,请移动到项目存储库的根目录并运行以下命令:
wooqi --seq-config TEST_SEQUENCE_FILE --sn SAMPLE_NAME [-s] [-k TEST_NAME] [--lf]
其中:
示例:
wooqi --seq-config test_sequences/folder1/seq1.ini --sn mySample
自第一次失败后重新运行测试序列
要在第一次测试失败后重新运行序列,请使用相同的命令并添加--ff选项 (-首先失败):
wooqi --seq-config TEST_SEQUENCE_FILE --sn SAMPLE_NAME --ff
如果序列在循环中失败,则循环的所有测试都将重新运行。
您可以定义以前需要的测试或操作。如果测试失败有要求,则 自测试定义到.ini文件后重新运行序列。
pip install wooqi --user
0
高级功能
编写工具
步骤可能需要对其中几个步骤有用的外部函数。我们称之为 "工具"可以用任何python文件编写。然后它们可以导入到python文件中 包含步骤和/或装置,并在步骤中调用。唯一必须遵守的规则 混淆wooqi是为了避免用以"test"或"action"开头的名称命名这些函数, 因为这些名称仅用于步骤和操作。
配置Wooqi
复制项目目录根目录下的文件wooqi_conf_template.cfg
wooqi_conf.cfg
此文件将由wooqi读取,并允许您自定义其中的几个功能。所有的 本模板说明了可用参数及其使用。
编写自己的装置
fixtures的概念是py.test提供的一个很好的特性。为了得到更多的信息, 请阅读官方的文档。 与wooqi的唯一区别是,您必须导入wooqi中包含的自定义pytest模块:
pip install wooqi --user
1
您可以将自己的装置添加到项目的任何文件中。那么,你的每一步都可以 调用fixture作为其参数之一。这些固定装置将在 按顺序执行步骤。
编写自己的Wooqi挂钩
wooqi提供了所有pytest钩子,允许在 处决吴起。欲了解更多信息,请阅读官方网站 文档
您可以在Wooqi项目中添加自己的自定义挂钩。