如何使用seleniumlibrary在robot框架的测试用例中多次运行特定关键字?
我想在一个测试用例中执行两个关键字,其中一个关键字只执行一次,另一个关键字执行多次。请查找以下代码以了解执行的逻辑:如何使用seleniumlibrary在robot框架的测试用例中多次运行特定关键字?,selenium,robotframework,data-driven-tests,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
*** 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”根据内容列表重复三次。请指导我如何处理这件事
当前问题:
在继续第二个测试时,它要求再次通过userid和userpass
我想要达到的目标:
登录一次web门户(关键字1)。使用内容A作为参数运行关键字2,然后使用内容B作为参数,最后使用内容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 ...
如果需要提供多个参数,可以使用dict
我建议你用另一种方法:给关键字2nargs加一个循环。代码将更容易理解。您可以创建另一个关键字,如下所示
Execute Keyword Multiple Times
[Arguments] ${keyword_name} @{params}
FOR ${i} IN @{params}
Run Keyword ${keyword_name} ${i}
END
*** 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
你可以称之为
Execute Keyword Multiple Times KEYWORD 2 CONTENT A CONTENT B ...
如果需要提供多个参数,可以使用dict
我建议你用另一种方法:给关键字2nargs加一个循环。代码将更容易理解。您需要的是来自库的
*** 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
示例:
重复关键字5次返回
重复关键字${var}某些关键字arg1 arg2
重复关键字2分钟某些关键字arg1 arg2
你需要的是从图书馆借来的书
示例:
重复关键字5次返回
重复关键字${var}某些关键字arg1 arg2
重复关键字2分钟某些关键字arg1 arg2
您的代码无法运行,因为它使用了名为
关键字
的关键字,但您尚未定义该关键字。@BryanOakley这是一个示例代码,只是逻辑而已。让我重新格式化我的代码,并告诉您我遇到的最新一个。@BryanOakley重新格式化已完成。请检查您的代码是否无法运行,因为它使用了名为keyword
的关键字,但您尚未定义该关键字。@BryanOakley这是一个示例代码,这只是逻辑。让我重新格式化我的代码,并告诉您我一直使用的最新代码。@BryanOakley重新格式化完成,请检查