如何在命令行级别将所需的功能传递给pybot

时间:2017-02-07 19:20:54

标签: jenkins robotframework

如何在各种操作系统上传递所需功能以在桌面和移动浏览器,平板电脑和移动设备上运行我的脚本?

我想在Jenkins Build步骤中使用与Shell命令相同的命令。它应该像Jenkins主机一样在Windows或Linux服务器上运行。

2 个答案:

答案 0 :(得分:3)

我的建议是将功能定义为可在测试脚本中使用的变量,并将这些定义放在argument file中。通过将它们放在参数文件中,可以保证每个人都使用相同的功能。

例如,创建一个名为" android.args"的文件。并把这样的东西放进去:

--variable desired_capabilities:platformName:Android,platformVersion:5.0
--variable remote_url:http://localhost:1234

您可以创建另一个名为" desktop.ie.args"的文件。可能是这样的:

--variable  desired_capabilities:platformName:Windows,platformVersion:10.0
--variable  remote_url:http://localhost:1235

...等等,适用于所有配置。然后,您将使用${desired_capabilities}在机器人测试中引用这些功能。例如:

[Suite Setup]  open browser  
    ...  http://www.example.com
    ...  remote_url=${remote_url}
    ...  desired_capabilities=${desired_capabilities}

然后,您可以在不同的平台上运行测试,如下所示:

robot -A android.args my_test_suite
robot -A desktop.ie.args my_test_suite
...

更好的是,你可以在机器人周围创建自己的包装器,这样你就可以做一些更简单的事情,例如:

mybot android my_test_suite

其中" mybot"获取第一个参数,查找具有该名称的文件和" .args"已知位置的后缀,并自动添加参数" -A /path/to/android.args"在运行实际的机器人命令时。

答案 1 :(得分:1)

pybot -v desired_capabilities:"deviceName:Android Emulator,platformName:Android,platformVersion:5.1,deviceOrientation:portrait,browserName:Browser,appiumVersion:1.5.3,deviceType:phone" -i mobile workspace\my_tests

注意:您还可以使用$ {BROWSER}参数化值,并从脚本或python变量文件中将值传递给它。