如何在 RobotFramework 中进行多行测试设置或拆卸而不创建新关键字?

Posted

技术标签:

【中文标题】如何在 RobotFramework 中进行多行测试设置或拆卸而不创建新关键字?【英文标题】:How to make multi-lines test setup or teardown in RobotFramework without creating new keyword? 【发布时间】:2014-05-06 16:21:47 【问题描述】:

我需要在测试用例中调用两个拆卸关键字,但不能为此创建新关键字。 如果关键字有这样的语法,例如文档或循环,我会很有趣:

[Documentation]  line1
...              line2
...              line3

【问题讨论】:

【参考方案1】:

使用“Run Keywords”关键字。

来自文档“当他们需要处理多个操作并且创建新的更高级别的用户关键字将是过度杀伤时,此关键字主要用于设置和拆卸”

看起来像这样:

Test Case
  [Teardown]  Run Keywords  Teardown 1  Teardown 2

也可以

Test Case
  [Teardown]  Run Keywords  Teardown 1  
  ...                       Teardown 2 

还有参数

Test Case
  [Teardown]  Run Keywords  Teardown 1  arg1  arg2
  ...         AND           Teardown 2  arg1  

【讨论】:

在这种情况下,Teardown 2 是 Teardown 1 的参数,因此它不起作用。 哦,是的,然后尝试使用“运行关键字” 谢谢。它几乎可以帮助我。有一个问题 - 如果我必须为 Teardown 1 或 2 提供参数,它就不起作用。 来自关键字文档:“从 Robot Framework 2.7.6 开始,关键字也可以使用大写 AND 作为关键字之间的分隔符来运行关键字。执行关键字时,第一个参数是第一个关键字和直到第一个 AND 之前的后续参数是它的参数。第一个 AND 之后的第一个参数是第二个关键字,直到下一个 AND 之前的后续参数是它的参数。依此类推" 太棒了!知道了。非常感谢!【参考方案2】:

要在 Test Teardown 方法中执行多个关键字,请使用以下技巧:

首先,定义一个包含您要执行的关键字集的新关键字。

例如这里Failed Case Handle是另外两个关键字take screenshotclose application的新定义。考虑这是截取屏幕截图,然后关闭正在运行的应用程序。

*** Keywords ***
Failed Case Handle
    take screenshot
    close application

基本上,当你调用Failed Case Handle关键字时,take screenshotclose application会分别被执行。

然后,在 ***Settings*** 部分通过以下示例定义 Test Teardown 过程。

*** Settings ***
Test Teardown  run keyword if test failed  Failed Case Handle

或者,

*** Settings ***
Test Teardown  run keyword  Failed Case Handle

因此,在第一种情况下,如果任何测试用例失败,将调用 Failed Case Handle 关键字。另一方面,在第二种情况下,Failed Case Handle 关键字将在每个测试用例之后调用。

【讨论】:

以上是关于如何在 RobotFramework 中进行多行测试设置或拆卸而不创建新关键字?的主要内容,如果未能解决你的问题,请参考以下文章

robotframework接口自动化https请求

RobotFramework自动化测试框架-Selenium Web自动化关于在RobotFramework中如何使用Selenium很全的总结(下)

robotframework我写了一条用例如何让这条用例循环跑100次

机器人框架设置测试文档多行

robotframework中怎么获取元组类型的数据

robotframework如何自定义报告?Message字段中自定义值