从imbus TestBench 3.0及更高版本的测试用例生成Robot Framework代码
项目描述
安装Robot代码生成器
安装软件的前提是已有一个Python安装。所需的最小版本是Python 3.8。要检查是否已安装正确的Python版本,可以使用以下命令行命令
python --version
代码生成器的安装是从Python包索引中进行的。
pip install testbench2robotframework
安装完成后,以下命令将显示当前安装的版本
tb2robot --version
Robot代码生成器的使用
安装Robot代码生成器成功后,可以通过命令 tb2robot
或 testbench2robotframework
来执行。
命令 tb2robot --help
显示了如何从TestBench JSON报告生成Robot Framework测试套件,以及如何读取执行结果。
使用子命令 write
和两个参数来生成Robot Framework测试套件
-
到JSON文件的路径,该文件用作生成器的输出配置文件。如果调用代码生成器时未提供,则将自动生成一个名为
config.json
的配置文件。 -
到TestBech JSON报告文件的路径。这些文件可以位于目录中或ZIP文件中。
以下示例演示了如何使用它
tb2robot write -c .\Konfigurationsdatei.json E:\TestBench\report.zip
以下示例展示了如何将TestBench的测试主题树转换为Robot Framework测试套件。
从TestBench测试主题树生成Robot Framework测试套件的示例。对于每个测试主题,都会创建一个目录。该目录包含一个__init__.robot
文件,其中包含有关测试主题的信息。此外,为每个测试用例集生成一个包含实际测试用例的Robot Framework测试套件。
执行Robotframework测试套件后,可以将结果写回Tesbench的Json报告。为此,使用子命令read
,该命令读取XML结果文件并将结果写入JSON文件。
-
读取测试执行结果的Robot Framework XML结果文件的路径。
-
要存储结果的目录或ZIP文件的路径。这是一个可选参数。如果不提供参数,则覆盖提供的JSON报告。
-
TestBech JSON报告文件的路径(不包含结果)。这些可以位于目录或ZIP文件中。
以下调用演示了如何通过示例读取结果。
tb2robot write -o .\output.xml -r .\ReportWithResults.zip E:\TestBench\report.zip
结果配置
在调用Robot Code Generator时,应传递JSON配置文件的路径以配置结果。这样,可以指定*.robot文件生成的路径。配置文件可以包含以下设置
rfLibraryRegex
一组正则表达式,通过这些正则表达式可以识别TestBench子分区作为Robot Framework库。默认设置的Regex找到所有以"[Robot-Library]"结尾的子分区。如果使用来自找到的子分区的一个交互,则该子分区将在生成的Robot Framework测试套件中作为库导入。例如,使用以下TestBench子分区的交互将导入Browser-
和BuiltIn
库。
*** Settings ***
Library Browser
Library BuiltIn
可以在配置文件中更改正则表达式。要导入Robot Framework测试套件的库的名称必须通过命名组?P<resourceName>
指定。
"rfLibraryRegex": [
"(?:.*\\.)?(?P<resourceName>[^.]+?)\\s*\\[Robot-Library\\].*"
]
rfResourceRegex
类似于rfLibraryRegex
,也存在一个用于识别应导入为Robot Framework资源的子分区的正则表达式。默认情况下,通过此Regex导入所有以"[Robot-Resource]"结尾的子分区作为资源。在以下示例中,导入名为keywords.resource
的Robot Framework资源,因为相关的子分区以[Robot-Resource]
结尾。
*** Settings ***
Resource keywords.resource
可以在配置文件中更改正则表达式。要导入Robot Framework测试套件的资源的名称必须通过命名组?P<resourceName>
指定。
"rfResourceRegex": [
"(?:.*\\.)?(?P<resourceName>[^.]+?)\\s*\\[Robot-Resource\\].*"
]
rfLibraryRoots
包含Robotframework库的各种TestBench根子分区的列表。使用rfLibraryRoots
子分区中的交互会导致将第二个级别的子分区(其中包含使用的交互,在任何深度)作为库导入到Robot Framework测试套件中。
不在任何根子分区中包含的库(测试元素树的第二层子分区)在Robot文件中以Unknown
导入标记。
以下示例仅将RobotLibraries
子分区作为rfLibraryRoot
指定。
"rfLibraryRoots": ["RobotLibraries"]
这导致只导入该子分区中包含的库BuiltIn
和OperatingSystem
。相反,Process
库在一个未指定为rfLibraryRoot
的子分区中定义。因此,它不会被导入。
*** Settings ***
Library BuiltIn
Library OperatingSystem
# UNKNOWN Process
rfResourceRoots
类似于库,还必须在配置文件中指定Robot Framework资源文件的根子分区。
以下示例展示了导入未指定为 rfResourceRoots
的子分区。
"rfResourceRoots": ["RF-Resources"]
由于 UnknownResources
不包含在 rfResourceRoots
中,因此该子分区中包含的资源文件 unknownKeywords
不会被导入。
*** Settings ***
Resource keywords.resource
# UNKNOWN unknownKeywords
fullyQualified
布尔变量,用于指示在生成的 Robot 文件中,关键字是否仅通过关键字名称调用,或者是否需要先调用库名称。
例如,配置 "fullyQualified": true
将导致以下关键字调用:
SeleniumLibrary.Open Browser https://robotframework.org/ firefox
如果使用 "fullyQualified": false
,则关键字调用将不包含相关的库名称。
Open Browser https://robotframework.org/ firefox
resourceDirectory
为了使 Robot 代码生成器在测试套件的设置部分中正确绑定资源,必须在配置文件中指定一个包含所有项目所需资源文件的目录路径。该路径可以是相对于运行 Robot 代码生成器目录的绝对路径或相对路径。在相对路径的情况下,必须先指定一个 {root}
。
"resourceDirectory": "{root}/Resources",
*** Settings ***
Resource ../Resources/myKeywords.resource
generationDirectory
可以通过 generationDirectory
参数指定包含生成的 Robot Framework 测试套件的目录路径。与 resourceDirectory
一样,此路径可以是相对路径或绝对路径。
"generationDirectory": "{root}/generatedRobotFiles"
createOutputZip
如果希望 Robot 代码生成器的输出也以 ZIP 文件形式提供,则必须将变量 createOutputZip 设置为 true。这将导致创建一个包含生成的 Robotframework 测试套件的目录和 ZIP 文件。
logSuiteNumbering
通过布尔变量 logSuiteNumbering
可以指定是否在日志中显示目录的前缀。目录的前缀决定测试套件的执行顺序。
"logSuiteNumbering": true
clearGenerationDirectory
如果将变量 clearGenerationDirectory
设置为 true
,则每次运行 Robot 代码生成器时都会删除之前运行的文件。
"clearGenerationDirectory": true,
logCompoundInteractions
在将测试台测试案例集转换为 Robotframework 时,仅调用 Robotframework 中的原子交互。为了用户能够看到 Robotframework 中测试案例集的整个层次结构,必须将变量 logCompoundInteractions
的值设置为 true
。这将导致在测试套件中显示为注释的复合交互。通过适当的缩进,用户可以识别出原子交互是在哪个复合交互中调用的。
"logCompoundInteractions": true,
subdivisionsMapping
在 subdivisionsMapping
中可以定义测试台子分区对应于 Robotframework 中的哪个导入语句。这样还可以包含具有特定参数的库和“远程库”。在此处定义的库和资源仅在相应库/资源的关键字也被使用时才会导入。
"subdivisionsMapping": {
"libraries": {
"SeleniumLibrary": "SeleniumLibrary timeout=10 implicit_wait=1 run_on_failure=Capture Page Screenshot",
"SuperRemoteLibrary": "Remote http://127.0.0.1:8270 WITH NAME SuperRemoteLibrary"
},
"resources": {
"MyKeywords": "{root}/../MyKeywords.resource",
"MyOtherKeywords": "{resourceDirectory}/subdir/MyOtherKeywords.resource"
}
}
forcedImport
为了将库、资源或变量文件导入,而无需在测试台中存在相应的子分区,必须将其作为 forcedImport
存储。通过这种方式导入的文件将在每个测试套件中导入,而不管是否使用该文件中的关键字。
"forcedImport": {
"libraries": [
"SeleniumLibrary"
],
"resources":
[
"technical_keywords.resource"
],
"variables": [
"myVars.py"
]
}
loggingConfiguration
通过设置 loggingConfiguration
,可以设置日志级别。有效的选项包括:
-
"CRITICAL"
-
"FATAL"
-
"ERROR"
-
"WARNING"
-
"WARN"
-
"INFO"
-
"DEBUG"
-
"NOTSET"
默认日志级别为 INFO
。
"loggingConfiguration": {
"console": {
"logLevel": "info"
}
}
referenceBehaviour
为了将测试执行过程中创建的引用导入到TestBench中,必须指定referenceBehaviour
。这定义了引用是作为附件导入还是作为指向文件系统的文件的引用导入。因此,参数可以接受两个值之一:REFERENCE
或ATTACHMENT
。
"referenceBehaviour": "ATTACHMENT"
attachmentConflictBehaviour
如果需要将引用作为附件导入,必须指定如何处理具有相同名称的文件。为此,可以使用attachmentConflictBehaviour
参数,并指定以下值之一:ERROR
、USE_NEW
、USE_EXISTING
或RENAME_NEW
。
这些值的含义如下
- ERROR:如果存在多个具有相同名称的附件,将抛出错误消息。仅导入第一个读取的附件。
- USE_EXISTING:如果存在多个具有相同名称的附件,仅导入第一个读取的附件。
- USE_NEW:如果存在多个具有相同名称的附件,仅导入最后一个读取的附件。
- RENAME_NEW:如果读取附件时已经存在同名附件,则将新附件的名称更改,以确保其唯一性,然后导入。
"attachmentConflictBehaviour": "USE_EXISTING"
testCaseSplitPathRegEx
通过在参数testCaseSplitPathRegEx
中指定的值,用户可以确定是否将TestBench中的测试用例集拆分为多个Robot Framework测试用例。为此,用户必须在testCaseSplitPathRegEx
中定义一个交互名称,以便代码生成器能够识别测试用例应在此处拆分的位置。然后,可以在测试用例集中使用此Splitting interaction
来拆分测试用例。
项目详细信息
下载文件
下载适合您平台的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。
源分发
构建分发
哈希值 for testbench2robotframework-0.7.0-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d0caa0cb6d12ae6ef130e56fac1e2e480a4071193634f3bce707a55188c70562 |
|
MD5 | c5e63ab14fc69d5b921116370e4c5dbe |
|
BLAKE2b-256 | feec6bb4b26e33f0206d1513bbc46eab07d321888ea8a80c95570f58ecf3db37 |