mac:appium启动两个安卓手机上的同一个app。

1、安装命令行版本appium,这个自行百度吧(桌面版本试了没成功,可能是我太菜了。)

2、执行appium-doctor一定没有错误。(我之前Carthage这个报错没理,就出问题了。)

     处理carthage方法:brew install carthage。如果报安装报错系统文件,可以试试brew install swiftlint 或者brew install mas-cli/tap/mas。当时没有记笔记,忘记报了什么错了。

3、分两个窗口分别执行:

     appium -p 4723 -bp 4724 -U 1b04b3b5   最后一位是设备id,可以通过adb services来获取

     appium -p 4725 -bp 4726  -U 77ec9c01

4、启动python多线程脚本,手机上对应的app就启动了。

接下来,我们就可以做一些并发操作了。后续等我有时间了更新,还没有搞那一步。

#!urs/bin/python3
# !_*_ coding:UTF-8 _*_
from appium import webdriver

from time import ctime
import multiprocessing  # 导入多进程模块
import os

devices_list = [{"ip": "127.0.0.1", "port": "62001", "uuid": "1b04b3b5"},
                {"ip": "127.0.0.1", "port": "62001", "uuid": "77ec9c01"}]  ## 启动多个模拟器

### Appium环境配置
PATH = lambda p: os.path.abspath(
    os.path.join(os.path.dirname(__file__), p)
)


def appium_desire(uuid, ip, port):
    # # 控制台输入appium的端口号、设备的UDID和当前的时间
    print('appium port:%s star run %s at %s' % (port, uuid, ctime()))

    desired_caps = {}
    desired_caps['platformName'] = 'Android'  # 设置平台
    desired_caps['platformVersion'] = '9'  # 系统版本
    desired_caps['deviceName'] = uuid  # 设备id
    desired_caps['autoLaunch'] = 'true'  # 是否自动启动
    # 安装包路径,放在该py文件的目录下
    desired_caps['appPackage'] = '**************'  # 包名
    desired_caps['appActivity'] = '**************'  # 启动的activity
    
    driver = webdriver.Remote('http://' + str(ip) + ':' + str(port) + '/wd/hub', desired_caps)


# 构建desired进程组,由于有多个进行,所以进程定义成李列表
desired_process = []
# 加载desired进程

for i in range(len(devices_list)):
    devices_list[i]["port"] = 4723 + 2 * i  # 第一个端口号是4723,第二个是4725
    ##创建进程
    desired = multiprocessing.Process(target=appium_desire,
                                      args=(devices_list[i]["uuid"], devices_list[i]["ip"], devices_list[i]["port"]))
    desired_process.append(desired)  # 添加进程队列

if __name__ == '__main__':
    # 同时启动多设备执行测试
    for desired in desired_process:
        desired.start()  # 每个进程去启动

    for desired in desired_process:
        desired.join()  # 等所有子进程都执行完后再去关闭

你可能感兴趣的:(appium)