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

robot framework with pabot : is it possible to pass two different values to a variable in two tests

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

此解决方案并非 100% 符合您的要求,但也许您可以让它发挥作用。

pabot readme file is mentioned something about shared set of variables and acquiring set 中每个 运行ning 进程。文档对我来说有点不清楚,但如果你尝试下面的例子,你就会亲眼看到。它基本上是一个变量池,每个进程都可以从中获取一组变量,当它完成后,它可以return将这个设置返回到池中。

创建你的价值集valueset.dat

[Set1]
USERNAME=user1
PASSWORD=password1

[Set2]
USERNAME=user2
PASSWORD=password2

创建 suite1.robotsuite2.robot。我创建了 2 个完全相同的套件。我只是想尝试并行 运行 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。

希望对您有所帮助。
干杯!

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

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

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