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

How to run a particular keyword multiple times in a test case of robot framework using seleniumlibrary?

我想在一个测试用例中执行两个关键字,其中一个关键字只需要执行一次,另一个关键字需要执行多次。请找到下面的代码来理解执行的逻辑:

 *** 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

我希望'keyword 1'只执行一次,'keyword 2'根据内容列表重复3次。请指导我如何处理这个问题。

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

我想达到的目标: 登录一次进入网络门户(KEYWORD1)。 运行 KEYWORD 2 以CONTENT A 为参数,然后以CONTENT B 为参数,最后以CONTENT C 为参数。我不应该在每次需要更改内容时都登录。

您可以像下面这样创建另一个关键字

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

你可以调用它

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

如果您需要提供多个参数,您可以使用字典。

我建议你另一种方法:给 KEYWORD 2 n args 并在其中放入一个循环。代码会更易懂。

*** 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

您需要的是 Repeat Keyword from the BuildIn 库。

Examples:

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