要将多台设备注册到Selenium Grid Docker并使用Appium进行测试,你可以按照以下步骤操作:
准备Docker环境:确保你已经安装并配置好Docker环境。
创建Docker网络:使用以下命令创建一个新的Docker网络。
docker network create grid
docker run -d -p 4444:4444 --net grid --name selenium-hub selenium/hub:3.141.59
docker run -d --net grid -e HUB_HOST=selenium-hub -e DEVICE_NAME=<设备名称> -e UDID=<设备UDID> --name appium-node-<节点编号> appium/appium
确保替换<设备名称>、<设备UDID>和<节点编号>为实际的设备信息。
docker exec -it selenium-hub curl http://localhost:4444/grid/console
你应该能够在输出中看到已注册的设备。
以下是一个使用Java和TestNG编写的示例代码:
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileCapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.Test;
import java.net.URL;
public class AppiumTest {
@Test
public void testApp() throws Exception {
// 设置设备的Desired Capabilities
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
capabilities.setCapability(MobileCapabilityType.UDID, "<设备UDID>");
capabilities.setCapability(MobileCapabilityType.APP, "<应用APK路径>");
// 连接到Appium节点
AndroidDriver driver = new AndroidDriver(new URL("http://selenium-hub:4444/wd/hub"), capabilities);
// 运行测试逻辑
// ...
// 关闭驱动
driver.quit();
}
}
确保替换<设备UDID>为要运行测试的设备的实际UDID,并将<应用APK路径>替换为应用的实际路径。
以上是一个基本的示例,你可以根据需要进行自定义和扩展。希望以上解决方法能帮到你。