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

Jenkins 如何在命令行级别将所需的功能传递给pybot,jenkins,robotframework,Jenkins,Robotframework,我如何传递所需的功能,以便在桌面和移动浏览器、平板电脑和各种操作系统上的移动设备上运行脚本 我想在Jenkins构建步骤中使用与Shell命令相同的命令。它应该作为Jenkins主机在windows或linux服务器上工作 pybot -v desired_capabilities:"deviceName:Android Emulator,platformName:Android,platformVersion:5.1,deviceOrientation:portrait,browserName

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

我想在Jenkins构建步骤中使用与Shell命令相同的命令。它应该作为Jenkins主机在windows或linux服务器上工作

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变量文件将值传递给它


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

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

例如,创建一个名为“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
robot -A android.args my_test_suite
robot -A desktop.ie.args my_test_suite
...
。。。每种配置都是如此。然后,您将在机器人测试中使用
${required\u functions}
引用这些功能。例如:

[Suite Setup]  open browser  
    ...  http://www.example.com
    ...  remote_url=${remote_url}
    ...  desired_capabilities=${desired_capabilities}
然后,您可以在不同的平台上运行测试,如下所示:

--variable  desired_capabilities:platformName:Windows,platformVersion:10.0
--variable  remote_url:http://localhost:1235
robot -A android.args my_test_suite
robot -A desktop.ie.args my_test_suite
...
更好的是,您可以在robot周围创建自己的包装器,这样您就可以做一些更简单的事情,例如:

mybot android my_test_suite

其中“mybot”接受第一个参数,在已知位置查找具有该名称和“.args”后缀的文件,并在运行实际robot命令时自动添加参数“-a/path/to/android.args”。

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

例如,创建一个名为“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
robot -A android.args my_test_suite
robot -A desktop.ie.args my_test_suite
...
。。。每种配置都是如此。然后,您将在robot测试中使用
${desired_capabilities}
引用这些功能。例如:

[Suite Setup]  open browser  
    ...  http://www.example.com
    ...  remote_url=${remote_url}
    ...  desired_capabilities=${desired_capabilities}
然后,您可以在不同的平台上运行测试,如下所示:

--variable  desired_capabilities:platformName:Windows,platformVersion:10.0
--variable  remote_url:http://localhost:1235
robot -A android.args my_test_suite
robot -A desktop.ie.args my_test_suite
...
更好的是,您可以在robot周围创建自己的包装器,这样您就可以做一些更简单的事情,例如:

mybot android my_test_suite

其中“mybot”接受第一个参数,在已知位置查找具有该名称和“.args”后缀的文件,并在运行实际的robot命令时自动添加参数“-a/path/to/android.args”。

感谢@Bryan一如既往地提供了宝贵的建议。非常有用。当然,我将组织我的测试,以利用上述论证文件。感谢@Bryan一如既往地提供宝贵的建议。非常有用。当然,我将组织我的测试,以利用上述参数文件。