UiAutomator 有个关于多线程的识别问题

testBlue · 2020年05月08日 · 最后由 浮云 回复于 2020年05月18日 · 2928 次阅读

1、同一个脚本执行多个终端
2、场景为登录,需要登录不同的手机号,登录后执行的内容全部一致

问题:目前可实现的是同一个脚本实现俩手机分别启动,启动后,在分别输入不同手机号的时候,遇到阻碍,多线程不知道哪个手机对应哪个手机号,想请教大神有没有可解决的办法呢

共收到 7 条回复 时间 点赞

很简单,接收命令行的传参获取手机号,不同 device 执行不同的手机号

我记得写过移动端分布式自动化测试执行的文章,不知道放哪里去了,大概思路就是利用 maven 的插件进行多线程 execution 调度,然后通过 xml 类配置手机的 sn 号和 port(appium、proxy 抓包需要)的映射,这样在执行 case 的时候就知道自己怎么找设备和端口号了

simple 回复

大神解释的很好,只是我才疏学浅,都没用到过 maven

浮云 回复

但是多线程是同时执行的,有可能线程 1 先执行把手机号带过去了,然后线程 2 再执行,每次执行都会生成一个 devicesid,第二次就会覆盖第一次导致第一次执行的线程无法再次识别控件信息

testBlue 回复

我是用 python 写的,用 python 的多进程库:multiprocessing,然后通过无线连接多设备,根据手机的 ID,appium 设置不同的 server 端口号,具体逻辑参见截图

testBlue 回复


这个是可以实现的,而且多设备间是不会影响的

testBlue 回复

每台手机的 device 是固定的,而且不同。参数按 device 对应固定的手机号

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册