是否可以在机器人框架中有条件地导入资源文件?根据测试环境,我想导入具有不同变量的资源文件。可以从机器人CLI读取该变量(例如,机器人--variable VAR:production myTestSuite)
示例:
*** Settings***
Resource variables_url_environment_a.robot
Resource variables_url_environment_b.robot
Run keyword if '${VAR}'=='production' Import resource variables_url_environment_b.robot
答案 0 :(得分:0)
您可以使用具有不同环境变量的Arguments文件,也可以使用类似的
QA.args
--variable Enviroment:http://sample.url/QA:1111
--variable USER:John
--variable PASSWORD:John
然后在您的Robot.test中
*** Test Cases ***
Run Argument File
Go To ${Enviroment}
Login With User ${USER} ${PASSWORD}
注意:这只是参数文件示例,使用“用用户登录”不是实际关键字
然后执行命令
robot --argumentfile "QA.args" tests
您还可以在命令行上覆盖变量。
robot --argumentfile "QA.args" --variable Enviroment:http://sample.url/Staging:1111 tests
答案 1 :(得分:0)
您可以在导入文件的名称中使用一个变量。 如果您使用的是maven,请从pom.xml文件中设置变量的值。
类似于以下内容,其中$ {PLATFORM}是变量:
*Settings*
Resource ../platforms/settings_${PLATFORM}.tsv
Resource ../platforms/settings_default.tsv
*Variables*
${PLATFORM} ${ENV_PLATFORM}
下面是来自POM.xml的代码段
....
<env.platform>Platform1.</env.platform>
....
<configuration>
<variables>
<param>ENV_PLATFORM:${env.platform}</param>
</variables>
</configuration>
....
此外,您还可以通过这种方式从jenkins传递平台的值(如果使用) 使用-Denv.platform = Platform_5
答案 2 :(得分:0)
我认为在条件框架中按您喜欢的方式实现无限可能是不可能的。 但是,您可以做的是代替将鼓励性文件导入为资源,而可以将它们作为-variablefile
传递到测试中我将如何做?
variables_url_environment_a.py
msg='env a'
variables_url_environment_b.py
msg='env b'
Test.robot
*** Settings ***
*** Variables ***
*** Test Cases ***
print message to console
print msg
*** Keywords ***
print msg
log to console ${msg}
现在,只需创建一个简单的python脚本,即可根据所需的环境运行测试套件。
Python_run_script
import subprocess
var='Production'
command_a='pybot -V variables_url_environment_a.py Test.robot'
command_b='pybot -V variables_url_environment_a.py Test.robot'
if var='Production':
procId = subprocess.Popen(command_a,stdout = subprocess.PIPE)
else:
procId = subprocess.Popen(command_b,stdout = subprocess.PIPE)
有关如何使用--variablefile的更多信息,您还可以在下面的url中引用
答案 3 :(得分:0)
运行关键字,如果'$ {VAR}'=='iOS'导入库a.py