【问题标题】:Robot framework and DRY: function steps repeat testcase steps机器人框架和 DRY:功能步骤重复测试用例步骤
【发布时间】:2018-10-10 14:31:35
【问题描述】:

我想自动化两个测试用例:
1) 登录系统

Valid Login  
    Given browser is opened to login page  
    When user "demo" logs in with password "mode"  
    Then welcome page should be open

2) 登录后做任何事

Change first name
    [Setup]    Log in 
    Given user is on account page
    When user edits first-name field
    Then new first name is displayed in first-name field

*** Keywords ***
Log in
   Open browser to login page
   Log in with username "demo" and password "mode"
   Verify that welcome page is opened

对于第二个,我必须编写一个完全重复第一个测试用例的步骤的关键字。

这在测试服中经常发生,所以我最终在我的项目中重复了很多步骤。是否有一个巧妙的技巧可以避免此类代码重复,同时保持顶级测试用例看起来像 Gherkin?

是否有针对此问题的最佳实践?

【问题讨论】:

  • 请用您的代码试验和相关 HTML 更新问题
  • 您是否考虑过将所有重复的步骤移至关键字中?和/或,您是否阅读过有关数据驱动测试的用户指南?
  • 如果还没有,您应该使用页面对象模式 (POM)。请注意,DRY 并不是一件好事,特别是如果删除重复的代码会导致更难理解正在发生的事情或引入一些逻辑。
  • 弗洛伦特,我猜你刚刚给了我答案:如果 DRY 不利于可读性,那么更喜欢可读性。我只是虽然我错过了一些让它们同时拥有的技术

标签: selenium automated-tests robotframework


【解决方案1】:

我将 Gherkin 风格的登录步骤移到了一个关键字中,并编写了 Valid Login 测试用例,它什么都不做。

Test Setup 为您调用它或在测试中明确编写它是我猜的偏好问题。

好资源:How to write good test cases using Robot Framework

*** Settings ***
Test Setup            Log in

*** Test Cases ***

Valid Login
    No Operation

Change first name
    Given user is on account page
    When user edits first-name field
    Then new first name is displayed in first-name field

*** Keywords ***

Log in
    Given browser is opened to login page
    When user "demo" logs in with password "mode"  
    Then welcome page should be open

【讨论】:

  • 谢谢你,艾迪。这个想法不是为了保留 Gherking,而是让“测试用例”部分用作文档并同时避免代码重复。据我了解,后者根本不可能。
猜你喜欢
  • 2020-08-07
  • 1970-01-01
  • 1970-01-01
  • 2019-03-16
  • 2018-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多