Robot Framework

pip install tracera-robot

需要 Python ≥ 3.11 和 Robot Framework ≥ 7(见 自动化测试适配器)。tracera-robot on PyPI。

注册 listener:

robot --listener tracera_robot.listener.TraceraListener suite.robot

可选配套库,用于 comment、error、attachment、Tracera Step 和 Tracera Test Case:

*** Settings ***
Library    tracera_robot.keywords.TraceraKeywords

环境变量与运行模式见 自动化测试适配器。

绑定 testCaseId 与 autotestName

优先在测试上使用标签。

*** Test Cases ***
Login
    [Tags]    tracera.id:42    tracera.name:e2e/login
    Log    hello

tracera.name 中的空格与特殊字符按需编码(e2e%2Flogin)。若未指定 tracera.name,则 autotestName 取 Robot 测试名。

Skip

使用 Robot 标准 Skip。Skip reason 作为 comment 添加到结果。

*** Test Cases ***
Login
    [Tags]    tracera.id:42    tracera.name:e2e/login
    Skip    env not ready — https://example.com/skip

步骤

测试中的关键字成为结果 测试 分区下的步骤。Test Setup 与 Test Teardown 映射为结果的 准备 与 清理;Suite Setup 与 Suite Teardown 不上报。

*** Settings ***
Test Setup       Open Shop
Test Teardown    Cleanup

*** Keywords ***
Open Shop
    Log    opening

Add To Cart
    Log    adding

Cleanup
    Log    done

*** Test Cases ***
Checkout
    [Tags]    tracera.id:10    tracera.name:e2e/checkout
    Add To Cart

默认步骤标题是关键字名(Add To Cart)。要换标题:

*** Settings ***
Library    tracera_robot.keywords.TraceraKeywords

*** Test Cases ***
Checkout
    [Tags]    tracera.id:10
    Tracera Step    add sku-1    Add To Cart

会执行 Add To Cart,结果中的步骤标题是 add sku-1。

Python 辅助函数也可用 core 的 tracera.step 或 @tracera.step("…")。

也会上报:FOR、IF、WHILE、TRY、ELSE、EXCEPT 和 FINALLY(不含循环迭代)。TraceraKeywords 的调用不会作为步骤上报。

注释、错误与附件

评论、错误与附件:自动化测试适配器。

*** Settings ***
Library    tracera_robot.keywords.TraceraKeywords

*** Keywords ***
Open Login
    Tracera Comment    landed on login
    Tracera Attach Text    suite-log.txt    finished login flow

*** Test Cases ***
Login
    [Tags]    tracera.id:42    tracera.name:e2e/login
    Tracera Comment    result-level note
    Tracera Error    result-level error text
    Open Login

从磁盘附加文件:Tracera Attach File ${path} image/png。

参数化测试

使用 Robot [Template] 时,写在测试上的 [Tags] 作用于模板下的每一行参数:

*** Test Cases ***
Login row
    [Tags]    tracera.id:42    tracera.name:e2e/login
    [Template]    Open Path
    /login
    /login/sso

*** Keywords ***
Open Path
    [Arguments]    ${path}
    Log    ${path}

每行参数要不同的用例 id:为每行单独建测试并写各自的 [Tags](同「绑定」)。