带有pabot的机器人框架:是否可以在两个测试中将两个不同的值传递给变量

时间:2016-07-30 15:17:14

标签: python robotframework

示例,我有file1.robotfile2.robot,每个都有${var}作为变量。我可以在命令行中将2个不同的值传递给同一个${var}吗?像pabot -v var:one:two file1.robot file2.robot这样的地方,其中-v var:one:two将遵循机器人文件的顺序;不是通过名称,而是通过如何在命令行中引入它们?

2 个答案:

答案 0 :(得分:1)

这个解决方案不是你所要求的100%,但也许你可以让它发挥作用。

pabot readme file中提到了一些关于共享变量集的内容以及每个正在运行的进程的acquiring set。文档对我来说有点不清楚,但如果你尝试下面的例子,你就会亲眼看到。它基本上是变量池,每个进程都可以从中获取变量集,当它完成变量时,它可以将该集合返回到池中。

创建您的价值集valueset.dat

[Set1]
USERNAME=user1
PASSWORD=password1

[Set2]
USERNAME=user2
PASSWORD=password2

创建suite1.robotsuite2.robot。我创建了两个完全相同的套房。我只想尝试并行运行2套房。

*** Settings ***
Library    pabot.PabotLib

*** Test Cases ***
Foobar
    ${valuesetname}=    Acquire Value Set
    Log    ${valuesetname}
    ${username}=     Get Value From Set   username
    Log    ${username}
    # Release Value Set

然后运行命令pabot --pabotlib --resourcefile valueset.dat tests。如果你查看html报告,你会看到一个套件使用set1和其他使用的set2。

希望这有帮助。
干杯!

答案 1 :(得分:0)

另一种方法是使用多个参数文件。一个包含$ {var}的第一个值,另一个包含另一个值。

这将为两个参数文件执行相同的测试套件。

pabot --agumentfile1 varone.args --argumentfile2 vartwo.args file.robot
=>
file.robot executed with varone.args
file.robot executed with vartwo.args