跳转到主要内容

从imbus TestBench 3.0及更高版本的测试用例生成Robot Framework代码

项目描述

安装Robot代码生成器

安装软件的前提是已有一个Python安装。所需的最小版本是Python 3.8。要检查是否已安装正确的Python版本,可以使用以下命令行命令

python --version

代码生成器的安装是从Python包索引中进行的。

pip install testbench2robotframework

安装完成后,以下命令将显示当前安装的版本

tb2robot --version

Robot代码生成器的使用

安装Robot代码生成器成功后,可以通过命令 tb2robottestbench2robotframework 来执行。

命令 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"]

Robot Framework Bibliotheken werden in der TestBench als Subdivisionen dargestellt

这导致只导入该子分区中包含的库BuiltInOperatingSystem。相反,Process库在一个未指定为rfLibraryRoot的子分区中定义。因此,它不会被导入。

*** Settings ***
Library    BuiltIn
Library    OperatingSystem
# UNKNOWN    Process

rfResourceRoots

类似于库,还必须在配置文件中指定Robot Framework资源文件的根子分区。

以下示例展示了导入未指定为 rfResourceRoots 的子分区。

"rfResourceRoots": ["RF-Resources"]

Robot Framework Ressourcen Dateien werden in der TestBench als Subdivisionen dargestellt

由于 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。这定义了引用是作为附件导入还是作为指向文件系统的文件的引用导入。因此,参数可以接受两个值之一:REFERENCEATTACHMENT

"referenceBehaviour": "ATTACHMENT"

attachmentConflictBehaviour

如果需要将引用作为附件导入,必须指定如何处理具有相同名称的文件。为此,可以使用attachmentConflictBehaviour参数,并指定以下值之一:ERRORUSE_NEWUSE_EXISTINGRENAME_NEW

这些值的含义如下

  • ERROR:如果存在多个具有相同名称的附件,将抛出错误消息。仅导入第一个读取的附件。
  • USE_EXISTING:如果存在多个具有相同名称的附件,仅导入第一个读取的附件。
  • USE_NEW:如果存在多个具有相同名称的附件,仅导入最后一个读取的附件。
  • RENAME_NEW:如果读取附件时已经存在同名附件,则将新附件的名称更改,以确保其唯一性,然后导入。
"attachmentConflictBehaviour": "USE_EXISTING"

testCaseSplitPathRegEx

通过在参数testCaseSplitPathRegEx中指定的值,用户可以确定是否将TestBench中的测试用例集拆分为多个Robot Framework测试用例。为此,用户必须在testCaseSplitPathRegEx中定义一个交互名称,以便代码生成器能够识别测试用例应在此处拆分的位置。然后,可以在测试用例集中使用此Splitting interaction来拆分测试用例。

项目详细信息


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。

源分发

testbench2robotframework-0.7.0.tar.gz (125.8 kB 查看哈希值)

上传时间:

构建分发

testbench2robotframework-0.7.0-py3-none-any.whl (37.0 kB 查看哈希值)

上传时间: Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面