Setup和Teardown

和很多其他测试自动化框架类似, Robot Framework也有setup和teardown的功能. 简而言之, setup在测试用例之前执行, 而teardown在测试用例之后执行.

在Robot Framework中, setup和teardown都是带参数的普通关键字而已, 并且各自只能指定一个关键字. 如果涉及到多个步骤, 只能创造一个更高层的 user keywords. 另一种解决方案是使用 BuiltIn 关键字 Run Keywords 来执行多个关键字.

Teardown在以下两个方面比较特殊. 首先, 它在测试用例执行失败的时候也会被执行, 所以常常用来作为测试环境的清理工作, 因为不管测试结果如何, 这些清理任务都需要做. 其次, teardown中所有的关键字都会被执行, 哪怕其中有的执行失败. 这种 失败后继续 机制也可以用来普通关键字上, 但是在teardown中, 这是个默认打开的.

为测试用例设置setup或teardown的最简单的方式是在测试用例文件中, 在设置表中指定 Test SetupTest Teardown.

每个单独的用例也可以指定自身的setup或teardown, 在测试用例表中设置 [Setup][Teardown] 即可. 如果用例文件的设置表中已经设置, 则此处设置会覆盖前者.亦或者设置 [Setup][Teardown] 项为空(可以是空白, 也可以使用特殊的 NONE 值), 则表示当前用例没有setup/teardown.

  1. *** Settings ***
  2. Test Setup Open Application App A
  3. Test Teardown Close Application
  4.  
  5. *** Test Cases ***
  6. Default values
  7. [Documentation] Setup and teardown from setting table
  8. Do Something
  9.  
  10. Overridden setup
  11. [Documentation] Own setup, teardown from setting table
  12. [Setup] Open Application App B
  13. Do Something
  14.  
  15. No teardown
  16. [Documentation] Default setup, no teardown at all
  17. Do Something
  18. [Teardown]
  19.  
  20. No teardown 2
  21. [Documentation] Setup and teardown can be disabled also with special value NONE
  22. Do Something
  23. [Teardown] NONE
  24.  
  25. Using variables
  26. [Documentation] Setup and teardown specified using variables
  27. [Setup] ${SETUP}
  28. Do Something
  29. [Teardown] ${TEARDOWN}

Setup或teardown中指定的关键字名称可以使用变量代替. 这样在不同的环境下, 只需在执行时通过命令行选项指定关键字名称, 就可以使用不同的setup或者teardown.

注解

测试套件可以有自己的setup和teardown.一个测试套件的setup在其中所有的用例以及所有子套件之前被执行, 而它的teardown则在最后.