我想在一个测试用例中执行两个关键字,其中一个关键字只能执行一次而另一个必须多次执行。请查找下面的代码以了解执行的逻辑:
*** 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运行。每次内容需要更改时,我都不应该登录。
答案 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