iOS 测试 使用 Airtest 实现多台 Ios 真机的并发测试

Rita · 2020年07月30日 · 最后由 TD 回复于 2020年12月24日 · 5175 次阅读

暂时删除

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 33 条回复 时间 点赞

os.system(iproxy proxy 8100 [udid]') 这个应该是 os.system(iproxy proxy 8100 [udid][i]) 把,这个环境应该是在 win 上的把? mac 下好像要-u [udid]

仅楼主可见
仅楼主可见
仅楼主可见
Rita #36 · 2020年07月31日 Author
#975 回复

是在 mac 下呢,不需要加 u,写的不太严谨,已经修改,谢谢啦!

6楼 已删除
35楼 已删除
Rita #8 · 2020年07月31日 Author
秦岭 回复

是不太稳定的,我目前试的各台手机加了 10s 延时,但是手机多了之后还是有部分手机无法运行起来,目前大概是 5-7 台比较稳定。我是用的图片识别优先,速度确实比 android 慢太多了,相比之下,poco 觉得已经很快啦~

Rita #9 · 2020年07月31日 Author
秦岭 回复

你说的这个任务分配,是指的十个用例,每个用例分给两个手机,然后 20 台手机并发测试的意思吗?

现在 ios 的支持动态传入端口号吗?之前官网说 ios-target 只支持 8100 的端口号呢?

Rita #11 · 2020年07月31日 Author
TD 回复

监测的是每台手机的 8100 端口号,但是往 pc 端转发的时候可以分配不同的 pc 端口号

仅楼主可见

老哥,你用的是买的证书吗

仅楼主可见
Rita #7 · 2020年07月31日 Author
Pactortester 回复

用的公司的账号,我是小姐姐 _ ^

Rita 回复

好吧,我在 mac 不带-u 会报错

Rita #14 · 2020年07月31日 Author

代码只贴了一些片段,是创建了一个进程池,这个里面自定义进程的数量,比如可以创建一个拥有十个进程的进程池。我是做兼容测试,就是几台手机同时跑一个用例。
你说的那种是不是可以把测试脚本当作模块来 import 和调用呢,然后通过传参的方式,让不同的手机调用不同的脚本来执行,目前我是把测试脚本当作模块来调用的,但是因为是兼容测试,所以就是多个进程同时调用同一个脚本模块
不知道咱们的业务需求是不是一样,我也是在学习和摸索阶段,目前还是能正常使用的,只是还有点击不准确的问题,还是需要优化的~~o^

我发现进程池速度没有自己创建多进程快
楼主可以尝试这个

from multiprocessing import Process


class InsertData(Process):
    def __init__(self, process_num):
        super().__init__()
        self.process_num = process_num

    def run(self):
        your_method(self.process_num)


def your_method(process_num):
    pass


# 实测发现速度快 进程池速度太慢
for x in range(5):
    InsertData(x).start()
Rita #16 · 2020年07月31日 Author
GoodLuck 回复

感谢分享,我试一下你的办法~

仅楼主可见
TD · #18 · 2020年08月02日
仅楼主可见
Rita #19 · 2020年08月04日 Author
TD 回复

没太明白,你的意思是执行了 xcodebuild 然后执行不到 iproxy?

Rita 回复

是的,os.system 是堵塞的,换成 subprocess.Popen 这个可以。现在最主要的问题是我的端口号这样设置不行呢

Rita #20 · 2020年08月05日 Author
TD 回复

我开了多个终端的,在一个里面 os.system 肯定不行~你先试试在不同的终端里面分别执行转发 8100,8101 这样行不行呢?

Hello ,想请问下楼主怎么解决 ios 弹框无法处理的问题

TD · #26 · 2020年08月06日
仅楼主可见
Rita #25 · 2020年08月10日 Author

你说的是应用运行过程中的弹框需要关闭的情况么?

Rita #26 · 2020年08月10日 Author
TD 回复

好的,我整理个 demo,回头发一下~

TD · #29 · 2020年08月11日
仅楼主可见
Rita 回复

不是 就是类似重命名 toast 弹框,点击确定,取消都不生效

仅楼主可见
TD · #28 · 2020年10月09日
仅楼主可见
TD 回复

在在执行 os.system 函数的时候通常会阻塞它的调用者,直到所启动的命令行程序退出。
在命令末尾加上 shell 后台运算符&就行了吧

你们那些加 author only 的是啥子情况 别人想了解下你们的常见问题 都看不到

你命令版的 airtest 是最新的吗?我更新到 1.1.6 提示下面的问题了

Rita 关闭了讨论 02月07日 11:15
Rita 重新开启了讨论 04月20日 14:45
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册