测试用例的标签

Robot Framework的标签功能是一个简单而强大的分类机制. 标签本身就是任意的文本, 它们被用于如下目的:

  • 标签在 reports, logs 以及测试数据中展示, 显示关于测试用例的元数据信息.
  • 用例的 执行统计 (total, passed, failed 就是自动基于标签收集的).
  • 使用标签, 可以 包含或排除 测试用例来执行.
  • 使用标签, 可以指定何种用例是 critical.

本节仅介绍如何针对测试用例设置标签, 几种不同的方式列在下面, 这些方法可以自然地组合.

  • Force Tags 在Setting表中设置
  • 包含该设置的测试用例文件中所有用例都被指定打上这些标签. 如果这是用在test suite initialization file, 则下面的所有子测试套件都被打上这些标签.
  • Default Tags 在Setting表中设置
  • 没有单独设置 [Tags] 的用例将被打上这些默认标签.默认标签不支持在测试套件的初始化文件中指定.
  • [Tags] in the Test Case table
  • 每个测试用例各自要打的标签. 如果设置了, 就不再包含 Default Tags,所以, 可以通过设置一个空值来覆盖默认标签, 亦可以使用 NONE.
  • —settag 命令行选项
  • 所有通过包含该选项的命令执行的测试用例, 除了已有的标签, 都会再加上选项中指定的标签.
  • Set Tags, Remove Tags, Fail and Pass Execution 关键字
  • 这些内置的关键字可以用来在测试执行过程中动态的操纵用例的标签.

标签本身就是任意的文本, 但是它们会被标准化: 去除所有空格, 全部转为小写.如果一个用例打上相同的标签多次, 仅保留第一个.标签可以使用变量来创建, 只要变量存在即可.

  1. *** Settings ***
  2. Force Tags req-42
  3. Default Tags owner-john smoke
  4.  
  5. *** Variables ***
  6. ${HOST} 10.0.1.42
  7.  
  8. *** Test Cases ***
  9. No own tags
  10. [Documentation] This test has tags owner-john, smoke and req-42.
  11. No Operation
  12.  
  13. With own tags
  14. [Documentation] This test has tags not_ready, owner-mrx and req-42.
  15. [Tags] owner-mrx not_ready
  16. No Operation
  17.  
  18. Own tags with variables
  19. [Documentation] This test has tags host-10.0.1.42 and req-42.
  20. [Tags] host-${HOST}
  21. No Operation
  22.  
  23. Empty own tags
  24. [Documentation] This test has only tag req-42.
  25. [Tags]
  26. No Operation
  27.  
  28. Set Tags and Remove Tags Keywords
  29. [Documentation] This test has tags mytag and owner-john.
  30. Set Tags mytag
  31. Remove Tags smoke req-*

保留的标签

通常情况下, 用户在各自的环境下可以任意使用自定义的标签. 不过, 某些标签名称对Robot Framework来说有特殊的意义, 如果用于其它目的可能会引发不可预测的结果.所有的特殊标签现在(并且在将来也会)都以前缀 robot- 开始. 为了避免出现问题, 用户应该避免使用带 robot- 前缀的标签, 除非是刻意要使用特殊功能.

目前(3.0版本), 唯一的特殊标签只有 robot-exit, 当使用 优雅地结束测试执行 时, 自动添加该标签到相应的测试.

当然, 将来也许会增加更多的特殊标签.