首页 > 解决方案 > 使用 Robot Framework 的执行级别设置和拆卸

问题描述

我知道Test Setup哪些会在每个测试用例之前执行,Suite Setup哪些会在每个套件(即每个 .robot 文件)之前执行。

但是,我正在尝试执行命令级别的安装和拆卸,一旦我运行robot命令并且当所有测试套件都运行时,运行拆卸。

尝试在我的场景目录中有__init__.robot文件,但根本没有调用它们。

*** Settings ***

Resource  ../_common/keywords.robot

Suite Setup  Prepare Browser
Suite Teardown  Close Browser

我希望能够在任何测试开始之前启动浏览器,然后仅在所有测试完成后关闭浏览器。

例如,robot 1.robot 2.robot应该:

  1. 打开浏览器
  2. 运行1.robot测试套件
  3. 运行2.robot测试套件
  4. 关闭浏览器

标签: robotframework

解决方案


您可以为此设置“特殊”套件,并在运行中首先调用它们并最后调用它们。SeleniumLibrary 具有全局范围,在第一个中初始化的浏览器应该可以在同一运行中被所有后续套件访问。

例如,套件“Startup.robot”将打开浏览器,“Closing.robot”将关闭它,任何中间人都将使用它:

robot Startup.robot 1.robot 2.robot Closing.robot

当您传递一个执行目录时,框架会按字母顺序获取其中的 .robot 文件,因此您可以将这些特殊套件命名为“0000_Startup.robot”和“zzzz_Closing.robot”,以便它们按相应的顺序运行(即如果您只使用 ascii/latin 文件名)。


是的,初始化文件不用于在其他套件之前运行某些东西 - 它们在那里为其他套件设置默认值,可以在下游覆盖。请参阅文档中的描述。


推荐阅读