如何在使用 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
我想在一个测试用例中执行两个关键字,其中一个关键字只需要执行一次,另一个关键字需要执行多次。请找到下面的代码来理解执行的逻辑:
*** 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