Robot Framework:为啥套件设置似乎无法正常工作?

Posted

技术标签:

【中文标题】Robot Framework:为啥套件设置似乎无法正常工作?【英文标题】:Robot Framework: why suite setup seems not to be working properly?Robot Framework:为什么套件设置似乎无法正常工作? 【发布时间】:2018-06-25 18:43:51 【问题描述】:

我在 java 上使用 RF(通过 Hi-Fi selenium-java 实现)。我目前有一个 Java 类,我在其中实现了一个名为 Driver Setup 的关键字来设置我的浏览器驱动程序的路径。

问题是,我应该能够在 __init__.robot 中进行套件设置和拆卸,但似乎有些事情并没有像我预期的那样工作。我的套件设置是设置 selenium 驱动程序路径(我的 Driver Setup 关键字)。所以我这样做了:

*** Settings ***
Suite Setup                 Driver Setup
Test Setup                  Open Browser   $my app url  chrome
Test Teardown               Close Browser

但是,我似乎无法执行Driver Setup,因为我得到:Parent suite setup failed: No keyword with name 'Driver Setup' found. 但是,如果我执行Test Setup 而不是套件设置,则一切正常并且测试运行成功。

所以作为一种解决方法,我必须这样做:

*** Settings ***
Test Setup                  Run Keywords    Driver Setup    AND     Open Browser     $my app url  chrome
Test Teardown               Close Browser

对于上下文:

我的实现驱动设置的java类放在/src/main/java/mypackage/MyKeywords.java

/src/test/robotframework/acceptance 目录中,我有一个全局资源文件。同样在/src/test/robotframework/acceptance 中,我有一个目录,其中包含一个测试套件 (Tests.robot)、一个 __init__.robot 初始化文件和一个用于高级关键字和变量的 Resources.robot 文件。

这几乎总结了我的目录设置:

├───main
│   ├───java
│   │   └───mypackage
│   │           MyKeywords.java
│   │
│   └───resources
└───test
    ├───java
    ├───resources
    │       chromedriver.exe
    │
    └───robotframework
        └───acceptance
            │   GlobalResources.robot
            └───someApplicationFeature
                    Resources.robot
                    Tests.robot
                    __init__.robot

我在 GlobalResources.robot 中调用 SeleniumLibrary 和我自己的库,因为我希望它们可用于所有测试套件,所以我这样做了:

*** Settings ***
Library                 SeleniumLibrary
Library                 mypackage.MyKeywords

那么...为什么我的自定义关键字不适用于套件设置?

【问题讨论】:

澄清一下,您是说Suite Setup Driver Setup 不起作用,但在同一个文件中Test Setup Driver Setup 起作用? 没错。如果我为“测试设置”更改“套件设置”,我的测试就会运行。如果我将其保留为“套件设置”,则会出现“未找到名称为“驱动程序设置”的关键字”错误。万一它改变了任何东西,我正在使用 Maven 来运行我的项目(自动导入 RF 和 selenium 依赖项)。 【参考方案1】:

-下载最新版chrome驱动并更新chrome。

-将最新的 chrome 驱动程序移动到路径所在的文件夹。 (例如 mv chromedriver /usr/local/bin)

【讨论】:

以上是关于Robot Framework:为啥套件设置似乎无法正常工作?的主要内容,如果未能解决你的问题,请参考以下文章

Robot Framework 测试套件目录如何精确工作?

如何使用 Robot Framework 从测试套件运行特定的测试用例

Selenium GRID:并行运行多个 Robot Framework 测试套件

Robot Framework重点

Robot Framework 中的静态变量

robot framework怎么设置变量引用变量