Appium 主从远程控制执行

本文分享了一个利用Appium实现远程控制从机执行的方法,包括如何配置参数、设置URL以及在不同设备上执行案例。通过改变本地Appium服务器地址,可以将测试用例部署到另一台机器上执行,支持并发分布式测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

周末在家无聊研究了一个关于Appium 远程控制从机执行的方法,分享给大家

分享的主题:说白了就是你的机器的case交给别的机器帮你执行!

1,首先大家先看下面这段,大家应该都知道要能使Appium运行起来必须先配置好相关的参数;
这是我个人的代码,有点丑勿见怪

        public void setUp() throws Exception{

    //启动

                //  set up appium  
                //  File classpathRoot = new File(System.getProperty("user.dir"));  
                //  File appDir = new File(classpathRoot, "apps");  
                //  File app = new File(appDir, "ContactManager.apk");  
                    DesiredCapabilities capabilities = new DesiredCapabilities(); 
                    capabilities.setCapability("device","Android");
                //    capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
                    capabilities.setCapability("deviceName", "xiaomi-mi_3-02214788");//小米
                //    capabilities.setCapability("deviceName", "52c7c049");//三星
                //    capabilities.setCapability("deviceName", "614ad249");//红米
                    capabilities.setCapability("platformVersion", "4.4.4");  
                    capabilities.setCapability("platformName", "Android");  
                //    capabilities.setCapability("app", app.getAbsolutePath());
                    capabilities.setCapability("appPackage", "com.tencent.mm");  
                    capabilities.setCapability("appActivity", "com.tencent.mm.ui.LauncherUI");
                 /*   capabilities.setCapability("unicodeKeyboard", "True");  
                    capabilities.setCapability("resetKeyboard", "True");  */
                    driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
                  //进入发现页面


2,大家看完之后留意下这个地方:

        driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

这个里面这个url:http://127.0.0.1:4723/wd/hub 就是本机开辟的一个4723的端口去与Appium交互的,知道这个很重要,因为我们这次就会用到它
拿到这段url后我们去用浏览器打开看一下这个:

如果出现这个的话证明4723端口开辟成功是成功的,当然你的Appium server 肯定先开着

3,用另外一台机器改一下他的appium server Address :

改完运行:

运行成功后回到原来的主机 打开浏览器输入:之前设置的appium server Address,出现下面的

如果是这样的话,那证明你配置成功咯!!

4,接下来就是运行Case啦,到主机上面随便找一个脚本只需要更改一个地方

        public void setUp() throws Exception{

    //启动

                //  set up appium  
                //  File classpathRoot = new File(System.getProperty("user.dir"));  
                //  File appDir = new File(classpathRoot, "apps");  
                //  File app = new File(appDir, "ContactManager.apk");  
                    DesiredCapabilities capabilities = new DesiredCapabilities(); 
                    capabilities.setCapability("device","Android");
                //    capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
                    capabilities.setCapability("deviceName", "xiaomi-mi_3-02214788");//小米
                //    capabilities.setCapability("deviceName", "52c7c049");//三星
                //    capabilities.setCapability("deviceName", "614ad249");//红米
                    capabilities.setCapability("platformVersion", "4.4.4");  
                    capabilities.setCapability("platformName", "Android");  
                //    capabilities.setCapability("app", app.getAbsolutePath());
                    capabilities.setCapability("appPackage", "com.tencent.mm");  
                    capabilities.setCapability("appActivity", "com.tencent.mm.ui.LauncherUI");
                 /*   capabilities.setCapability("unicodeKeyboard", "True");  
                    capabilities.setCapability("resetKeyboard", "True");  */
                                    //改这里
                    driver = new AndroidDriver(new URL("http://172.17.6.173:4723/wd/hub"), capabilities);
                  //进入发现页面


改好后各项参数都对应起来点击运行一个普通的case,你会发现你的另外一台机器上的设备自动运行起来了!!!!

你可以把这个url 封装起来然后开多个虚拟机和多版本的模拟器进行并发分布式测试!具体方法以后分享
祝大家成功!
有什么问题随便时找我!

### Appium 远程控制真实手机设备的配置方法 在使用 Appium 远程控制真实移动设备进行自动化测试时,需要完成一系列的配置步骤以确保设备能够被正确识别和操作。 #### 1. 准备工作 - **安装 Appium**:可以通过 npm 安装 Appium 服务器。确保已经安装了 Node.js,然后运行以下命令: ```bash npm install -g appium ``` - **安装 Appium Python 客户端**:如果使用 Python 编写测试脚本,需要安装 Appium-Python-Client。 ```bash pip install Appium-Python-Client ``` - **连接设备**:将真实设备通过 USB 连接到计算机,并确保设备处于开发者模式。启用 USB 调试功能。 - **检查设备连接**:使用 ADB 工具检查设备是否被正确识别。 ```bash adb devices ``` 如果设备列表中显示了你的设备,则说明连接成功。 #### 2. 配置 Appium - **设置 Desired Capabilities**:Desired Capabilities 是一组键值对,用于告诉 Appium 服务器你想要启动的会话的参数。以下是一个示例配置: ```python from appium import webdriver desired_caps = {} desired_caps['platformName'] = 'Android' # 或 'iOS' desired_caps['platformVersion'] = '10.0' # 设备的系统版本 desired_caps['deviceName'] = 'Your Device Name' # 设备名称 desired_caps['appPackage'] = 'com.example.app' # 被测应用的包名 desired_caps['appActivity'] = '.MainActivity' # 被测应用的主活动 desired_caps['automationName'] = 'UiAutomator2' # 或 'XCUITest' 对于 iOS desired_caps['newCommandTimeout'] = 3600 # 新命令超时时间 driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) ``` - **启动 Appium 服务器**:确保 Appium 服务器正在运行。可以通过以下命令启动: ```bash appium ``` - **运行测试脚本**:编写并运行你的测试脚本。确保脚本中的 Desired Capabilities 与你的设备和应用匹配。 #### 3. 常见问题及解决方法 - **设备未被识别**:确保设备已启用开发者选项和 USB 调试模式。尝试重新插拔 USB 线缆或更换 USB 端口。 - **Appium 服务器无法启动**:检查端口是否被占用。默认情况下,Appium 使用 4723 端口。可以使用以下命令检查端口占用情况: ```bash lsof -i :4723 ``` - **应用无法启动**:确保 `appPackage` 和 `appActivity` 正确无误。可以通过以下命令获取应用的包名和活动名: ```bash adb shell dumpsys window windows | grep -E 'mCurrentFocus' ``` - **超时问题**:如果测试过程中出现超时问题,可以适当增加 `newCommandTimeout` 的值,以延长等待时间。 #### 4. 示例代码 以下是一个简单的示例代码,展示如何使用 Appium 控制真实设备上的应用: ```python from appium import webdriver from appium.webdriver.common.appiumby import AppiumBy from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.actions import interaction from selenium.webdriver.common.actions.action_builder import ActionBuilder from selenium.webdriver.common.actions.pointer_input import PointerInput # 设置 Desired Capabilities desired_caps = {} desired_caps["platformName"] = "Android" desired_caps["platformVersion"] = "10.0" desired_caps["deviceName"] = "Your Device Name" desired_caps["appPackage"] = "com.example.app" desired_caps["appActivity"] = ".MainActivity" desired_caps["automationName"] = "UiAutomator2" desired_caps["newCommandTimeout"] = 3600 # 启动 Appium 服务器 driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps) # 查找并点击一个元素 el1 = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value="SomeElement") el1.click() # 关闭驱动 driver.quit() ``` 通过以上步骤,你可以成功配置 Appium远程控制真实移动设备进行自动化测试。确保所有配置项都与你的设备和应用匹配,并根据需要调整参数。[^2]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值