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

Automated tests 如何保持机器人测试套件干燥?,automated-tests,robotframework,Automated Tests,Robotframework,我使用Robot框架完成了一系列自动化测试,已经进行了一半,我开始注意到很多重复。目前,我的测试是按测试页面(即主页、登录页面)组织的 我感觉不确定的是,有些测试是在两个不同的测试套件中逐字重复的,只是设置不同;但另一方面,通过我所做的重构,感觉关键字本身就是测试用例。我只是想知道是否有一个更标准的做法来做这件事 我在下面列出了一个简单的例子: 普通机器人 ... *** Keywords *** User logs in # login logic here ... 主页 ... **

我使用Robot框架完成了一系列自动化测试,已经进行了一半,我开始注意到很多重复。目前,我的测试是按测试页面(即主页、登录页面)组织的

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

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

普通机器人

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

...
*** Test Cases ***
Verify user login
   User logs in
...
...
*** Test Cases ***
Verify user login
   User logs in
...
其他页面

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

如果您想共享测试关键字,可以在多个级别上共享

  • 因此,您可以定义一个resource.txt文件,将所有常用关键字放在其中,然后调用它们进行不同的测试
  • 您可以有一个单亲测试,在这里您可以简单地重用具有不同参数的关键字
  • 您还可以通过列表提供参数,并在For循环中调用相同的关键字
  • 也就是说,关于如何组织测试套件的结构这一更大的问题,这是一个讨论很多的话题,没有单一的答案就足够了。你可以看看佩卡关于这个话题的著作。
    测试框架设计是一种类似于代码设计的“艺术形式”。

    Ahh,你能详细说明第2点吗?测试文件如何称之为父测试?当然。因此,实现这一点的最佳方法如下。首先,尽可能概括你的关键词。因此,在您的示例中,您还可以将页面链接作为关键字的一部分传递。其次,将关键字保存在一个公共文件/位置,以便父测试可以访问它们。最后,使用robotframework内置库中的“meta”关键字构建测试,如“Run关键字if”、“Run关键字和return status”、“Run关键字和ignore error”等。好的,在第三步中有点迷失了方向。我会在父文件中放置一个“用户登录”测试用例;然后我可以使用Run关键字从另一个文件调用测试?测试用例可以像关键字一样调用吗?Robot框架非常灵活,因此这里也有几种方法。您可以将测试用例转换为关键字,这将启用我提到的结构。那将是我更喜欢的方式。或者,如果您必须保留测试用例的结构,那么您可以完全采用另一种方法,并为运行测试定义一个参数文件。还有更多,谢谢!看起来我有很多选择…太多选择了。