如何使用seleniumlibrary在机器人框架的测试用例中多次运行特定关键字?

时间:2018-04-26 12:15:19

标签: selenium robotframework data-driven-tests

我想在一个测试用例中执行两个关键字,其中一个关键字只能执行一次而另一个必须多次执行。请查找下面的代码以了解执行的逻辑:

 *** Settings ***
 Test Setup         OPEN CHROME BROWSER
 Test Teardown     CLOSE CHROME BROWSER
 Test Template     KEYWORD1
 Force Tags         Smoke

 *** Test Cases ***       userid         userpass      content
 VALID CREDENTIAL    userid@mysite.com    mypass      CONTENT A
                                                      CONTENT B
                                                      CONTENT C
 *** Keywords ***
--------------------------------------------------------------------------
KEYWORD 1
[Arguments]  ${userid} {userpass}
GO TO LOGIN PAGE
ENTER USERID
ENTER PASSWORD
CLICK ON LOGIN BUTTON
-----needs to run once and then KEYWORD 2 should run thrice---------------
KEYWORD 2
[Arguments] ${content}
CLICK ON CONTENT TILE  ${content}
DO SOME ACTION
GO TO HOME

我想要'关键字1'只执行一次和关键字2'根据内容列表重复3次。请指导我如何处理这个问题。

当前问题: 在继续进行第二次测试时,它会要求再次传递userid和userpass。

我想要实现的目标: 登录一次进入Web门户(KEYWORD1)。以内容A作为争论运行关键字2,然后以内容B作为争论,最后以内容C运行。每次内容需要更改时,我都不应该登录。

3 个答案:

答案 0 :(得分:0)

您可以创建另一个关键字,如下所示

Execute Keyword Multiple Times
    [Arguments]    ${keyword_name}    @{params}
    :FOR    ${i}    IN    @{params}
    \    Run Keyword    ${keyword_name}    ${i}

你可以称之为

Execute Keyword Multiple Times    KEYWORD 2    CONTENT A    CONTENT B ...

如果你需要提供多个参数,你可以使用dict。

我建议你采用另一种方式:给KEYWORD 2 n args并放入一个循环。代码将更容易理解。

答案 1 :(得分:0)

*** Settings ***
Test Setup        KEYWORD1  ${reg_userid}  ${reg_userpass}
Test Teardown     CLOSE CHROME BROWSER
Test Template     KEYWORD2  ${content}
Force Tags         Smoke

*** Test Cases ***      content
VALID CREDENTIAL       CONTENT A
                       CONTENT B
                       CONTENT C
*** Keywords ***
------------------------KEYWORD 1 runs once--------------------------------
KEYWORD 1
  [Arguments]  ${userid} {userpass}
  OPEN CHROME BROWSER
  GO TO LOGIN PAGE
  ENTER USERID
  ENTER PASSWORD
  CLICK ON LOGIN BUTTON
------------------------KEYWORD 2 runs thrice-----------------------------
KEYWORD 2
  [Arguments] ${content}
  CLICK ON CONTENT TILE  ${content}
  DO SOME ACTION
  GO TO HOME

***Variables***
${reg_userid}      test@test.com
${reg_userpass}    password

答案 2 :(得分:0)

您需要的是Repeat Keyword库中的BuildIn

  

示例:

     
Repeat Keyword    5 times     Go Back         
Repeat Keyword    ${var}  Some Keyword    arg1    arg2
Repeat Keyword    2 minutes   Some Keyword    arg1    arg2