【发布时间】:2019-09-19 04:07:47
【问题描述】:
我正在尝试使用 Selenium Grid 和 Appium (v1.13.0) 创建一个简单的设备场(目前优先考虑 Android),我需要一些帮助来为 Appium 排队测试运行。
例如,我在集线器上有 2 个 Appium 节点(使用 2 个 android 模拟器运行),我希望测试运行将排队等待节点,如果有 2 个测试运行指向一个节点,那么稍后的测试运行将必须等待第一个完成才能在该节点上启动。
目前,根据我的设置,稍后的测试运行将中断第一个(强制终止)而不是等待。
下面是我的一个节点的json文件,不同的节点会有不同的deviceName和port
{
"capabilities":
[
{
"browserName":"Nexus 5X",
"platform":"Android",
"version":"9",
"maxInstances":1,
"deviceName":"Nexus 5X"
}
],
"configuration":
{
"cleanUpCycle":2000,
"timeout":30000,
"proxy":"org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"maxSession":1,
"url":"http://127.0.0.1:4741/wd/hub",
"host":"127.0.0.1",
"port":4741,
"register":true,
"registerCycle":5000,
"hubPort":4444,
"hubHost":"127.0.0.1"
}
}
据我了解,Selenium Grid 确实支持会话排队,但 Appium 不支持(或者我不知道)。当我尝试在同一个节点上启动另一个 Appium 会话时,该会话实际上必须等待前一个 Appium 会话关闭才能启动。因此,为了实现我想要的,我必须在中间有一些东西,以便在测试运行开始时在节点上启动 Appium 会话,并在测试运行结束时关闭它。
有没有更简单的方法来做到这一点?或者是否有我不知道的支持这个的 Appium 配置?
【问题讨论】:
标签: appium selenium-grid