如何保持机器人测试套件干燥?

How do I keep Robot test suites DRY?

我正在使用 Robot Framework 完成一组自动化测试,我开始注意到很多重复。目前,我的测试是由被测试的页面(即主页、登录页面)组织的。

我感到不确定的是,有些测试是在两个不同的测试套件中逐字重复的,只是设置不同;但另一方面,通过我所做的重构,感觉关键字本身就是测试用例。我只是想知道是否有更标准的做法来做到这一点。

我在下面列出了一个简单的例子:

common.robot

...
*** Keywords ***
User logs in
   # login logic here
...

home_page.robot

...
*** Test Cases ***
Verify user login
   User logs in
...

other_page.robot

...
*** Test Cases ***
Verify user login
   User logs in
...

如果你想分享测试关键词,你可以在很多层面上进行。

  1. 因此您可以定义一个 resource.txt 文件并将所有常用关键字放入其中,然后调用它们进行不同的测试。
  2. 您可以进行单亲测试,您只需重复使用具有不同参数的关键字。
  3. 您还可以通过列表提供参数并在 For 循环中调用相同的关键字。

话虽如此,关于您更关心的是如何组织测试套件的结构,这是一个讨论得很多的话题,没有一个单一的答案是足够的。你可以看看 Pekka 关于这个话题的文章 (Link)。 测试框架设计'art-form'类似于代码设计。