iOS 测试 ios-remote 工具最新效果展示,欢迎前端大神、各路大神加入

water · 2017年10月27日 · 2522 次阅读

前段时间的 ios-remote 工具目前已加入了不少的新功能:
1,保存截图
2,ipa 上传安装、卸载
3,设备型号、版本等信息获取
4,根据 bundle id 过滤实时日志并在前端展示

目前前端页面还是比较搓:

但是我们的实时操作响应速度目前非常快!App 内延时低于 300ms:

由于水平有限,目前我们急需强力前端大神,以及各路大神一起来完善这个工具,欢迎加入!
github 地址:
https://github.com/weamylady2/iOS_remote

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 63 条回复 时间 点赞
匿名 #64 · 2019年11月25日

楼主厉害。我在使用 WDA 过程中有几个疑问麻烦帮忙看看哈。
WDA 里面有对设备的各种操作,比如截图、点击某个坐标等。
我想问的是,截图和点击这两个操作是可以同时下发给设备执行的吗?比如截图耗时 1s,那在这一秒内可以向设备下发点击的操作吗?还是说只能等截图完成后才能下发点击呢?

LHY 回复

请问你的问题解决了吗?我的问题和你一模一样

water #62 · 2019年01月02日 Author

换 github 上面最新的 WDA 试了吗?签名那些搞好没?

water #61 · 2019年01月02日 Author

你的手机型号是多少呀?看看有没有添加在设备列表里面

哦 ,我也可能和上面一个同学的问题一样 iproxy 报错 recv failed: Resource temporarily unavailable,导致发送的 json 到http://localhost:8200/session超时了 这个是怎么回事呢

老师好,我感觉我马上就要成功了,但是我这个点击网页没有反应

后台服务的日志:

water #58 · 2018年07月31日 Author
芈娜 回复

看看网页控制台有打印什么错误没有

哥 为什么我在网页上点击没有反应?

water #56 · 2018年07月04日 Author
yca 回复

请尽情修改源码- 3-欢迎欢迎!

我说这位老同事,可以使用前端技术省去一部分输入啊安装啊卸载啊啥的。

water #54 · 2018年04月28日 Author
磊磊 回复

我这边没环境了~~ 你可以多看看 WDA 的日志,还有就是在 WDA 的 github 上的 issues 页面查一下有没有相关的 bug

water 回复

楼主,你那边是可以跨应用操作的,对吧
能否提供一下你那边 mac OS, xcode, wda, iphone OS, 这 4 项的版本号,我本地验证下,谢谢

water 回复

恩,明白原理是这样的,通过 web 请求控制 wda,wda 通过坐标点击手机屏幕。
这太奇怪了,启动 10 次,总有几次被测应用不可操作

water #51 · 2018年04月24日 Author
磊磊 回复

initWDA 是一定要调用的,但是页面上那个 open application 的功能可以不用。你直接点就行了,至于 qq 还是微信,我们是用坐标操作的,跟 app 没关系

water 回复

也就是说 initWDA 其实不用被调用,并且是可以跨应用操作的,对吗?
现在碰到的问题就是启动后,有时候手动点开微信后,微信中的按钮可以操作,但 QQ 点开后不能操作;下一次启动后,QQ 可以操作,微信打开后不能操作了。服务端也无错误提示,返回 status 都是 0,无异常。
iOS 系统:10.13.3
xcode:9.2
wda:今天更新的

water #49 · 2018年04月24日 Author
磊磊 回复

你更新下 xcode、ios 系统、wda 到最新版本试试

water #48 · 2018年04月24日 Author
磊磊 回复

就是遇到过这种情况,所以在初始化的时候,我才加上打开设置 app,这样子你在其它应用操作的时候就不会有问题。
你用手动点开你想要的应用就行了,那个启动 app 的功能你可以不用。

water 回复

1、initWDA 方法中,desiredCapabilities 中 bundleId:com.apple.Preferences,是否只能操作 “设置” 和其他系统自带的应用,能否实现第三方应用间的跨应用操作?还是 bundleId 只能输入被测应用,不能跨应用
2、如可以跨应用,大神有没有出现过 minicap、wda 启动都没有问题,从桌面点开第三方应用后,该应用内的按钮点击了没反应。我这里启动 10 次,有 50% 左右的概率出现打开第三方应用后,点击控件坐标无响应。比如:有时候微信应用可以操作,有时候不行

water #46 · 2018年04月24日 Author
磊磊 回复

按 F12 看看控制台有没有报错

有没有同学出现过点击应用上的控件之后没有反应的情况,如点击 “登陆” 按钮,页面未发生变化,服务端也无异常

water #44 · 2018年04月17日 Author
heygrl 回复

能解决多台的话,也请告诉我一下好么= 3=

蓝畔湖光 回复

我现在跟你一样的问题,不知你后来怎么解决了

42楼 已删除

在线等,特别急~~

求回复~~

界面中的 HOME 操作有效,可以用 BUNDLE ID 打开 APP ,可以截图,其它的操作就无效,这是什么原因呢,怎么解决呀大神

water 回复

😅 不支持多台的呀。蛋疼,搞了将近一星期

water 回复

😃 灰常感谢!

water #36 · 2017年11月24日 Author
蓝蓝 回复

加 50ms 并不算是延时,只是减少了 ios-minicap 的帧率,不影响反应速度的。

water #35 · 2017年11月24日 Author
蓝蓝 回复

wda 我这边响应还挺快的,主要升级 mac os 和 xcode,用最新版的 wda。

water #34 · 2017年11月24日 Author
蓝畔湖光 回复

ios-minicap 只支持一台的,不支持多个同时运行。

water 回复

我加了哦延迟 50ms,点击发现很慢,改为 20ms,最后又去掉了。。还是很慢。。主要是 wda 那个响应慢哦

water 回复

还有个问题就是想问下楼主,不知道楼主你是否有头绪。我把 iOS_minicap 的 run.sh 改了,改成传参数的,目的上是为了连接多台,就传 UDID 和端口号这样子,例如设备 1UDID,端口号 12345,设备 2UDID,端口号 12346。但是在测试的过程中,经常发现,要么一台机可以,另一台则报 java.net.ConnectException: Connection refused 。要么两台都不行。

water #31 · 2017年11月20日 Author
蓝畔湖光 回复

会的,ios-minicap 启动的时候会导致 WDA 挂掉,所以必须先启动 ios-minicap,才能启动 wda。

water #30 · 2017年11月20日 Author
蓝蓝 回复

我怀疑是你 ios-minicap 没有添加延时,所以程序处理不过来,导致延时了。请按照下面这一步操作:

6、Change and Rebuild ios-minicap


In order to reduce the pressure of MAC, we need to reduce the frequency of sending imgs from minicaps.

Go to the ios-minicap folder, and Edit the "src/minicap.cpp", Add a method:


static void sleep_ms(unsigned int secs)
{
struct timeval tval;
tval.tv_sec=secs/1000;
tval.tv_usec=(secs*1000)%1000000;
select(0,NULL,NULL,NULL,&tval);
}
Then add a sleep in main:


while (gWaiter.isRunning() and gWaiter.waitForFrame() > 0) {
client.lockFrame(&frame);
encoder.encode(&frame);
client.releaseFrame(&frame);
putUInt32LE(frameSize, encoder.getEncodedSize());
if ( pumps(socket, frameSize, 4) < 0 ) {
break;
}
if ( pumps(socket, encoder.getEncodedData(), encoder.getEncodedSize()) < 0 ) {
break;
}
sleep_ms(50);
}
Next step is rebuilding ios-minicap, runing the build.sh in ios-minicap folder:


$ ./build.sh 
mkdir: build: File exists
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/waterhuang/Downloads/ios-minicap-master/build
[100%] Built target ios_minicap
water #29 · 2017年11月20日 Author
Michael_Wang 回复

应该是可以的,只有一个 wda 的 xcode-build 命令在运行,这个命令应该可以运行多个实例等。

water 回复

😃 想问下楼主。wda 先在程序启动可以吗?会影响到 ios_minicap 吗

😭 楼主大大,我怎么点击一下,5 秒后才有反应;点击手机的键盘,也是 4-5 秒后才有反应;太慢了
跟 wda 交互好长时间

在使用这个的时候能,可以连 xcode 跑项目吗?

water #25 · 2017年11月10日 Author
蓝畔湖光 回复

要做设备管理平台就麻烦了,暂时没想做,我是跟我们自己的另一个平台集成使用了。

water 回复

😃 额。多台是指多台手机,类似 stf 那样

water #23 · 2017年11月09日 Author
蓝畔湖光 回复

连接多台你是要同时多个人使用多台吗?如果要做这个,就不能用 ios-minicap 来进行屏幕回显了,需要使用 idevicescreenshot。

试了下楼主的 iOS_Remote。效果还不错。不过本人不懂 JAVA,还在研究源码,想改成可以连接多台的。如果方便的话,能否说下,若是要操控多台,连接多台的情况下,该如何修改你的代码。

water 回复

改 iOS_remote 源码里面的请求发送时间哦;多谢!我试试

water #20 · 2017年11月01日 Author
蓝蓝 回复

如果 wda 起来了,iproxy 也起来了应该就没问题,请问你的 mac 什么配置?启动 wda 需要多长时间?目前我是用 20 秒的时间启动 wda,如果你 20 秒时间起不来,那就要加一些时间了。

water 回复

问题是:iOS_remote 页面不可点击,因为 iproxy 报错 recv failed: Resource temporarily unavailable,导致发送的 json 到http://localhost:8200/session超时了

water #18 · 2017年11月01日 Author
蓝蓝 回复

你这个不是好使了么?

water 回复

可以的,问题还是一样存在

water #16 · 2017年10月31日 Author
蓝蓝 回复

你单独运行一下 resources 目录下的 execWDA.sh,看是否能运行起来?

iproxy 报错 recv failed: Resource temporarily unavailable,导致发送的 json 到http://localhost:8200/session超时了


楼主有解么?😭 连接数改为 65536 了

water #14 · 2017年10月30日 Author
codeskyblue 回复

嗯,这个后续可以加上。

卸载应用那里 最好能支持下拉选择

water #11 · 2017年10月27日 Author
蓝蓝 回复

build fail 就是有地方有问题,看看日志解决下咯。

water 回复

😃 这样,那我琢磨下你们的代码;仍然谢谢你,期待你们的优化!

water 回复

这个不行哦,一直 build failed.

蓝蓝 回复

我没试过运行 ios.war 的方式哦,对这个不太熟悉,能帮忙找到解决办法不?

蓝蓝 回复

直接运行 mvn tomcat7:run-war 可以使用吗?

water 回复

好像确实是你们不支持直接 war 打包扔到 tomcat/webapps 下部署方式:
我打的是 ios.war;访问http://localhost:28080/ios/ios才能访问到主页。。

从截图可以看出,你们少了个 war 名称路径/ios 哦

water 回复

iproxy 运行了 (这个没日志哦),ios-minicap 也能正常截图展示了。libimobiledevice 应该是装了
我觉得吧:是不是我直接打 war 这样不能放到 tomcat 运行?因为感觉 access 日志有 404;web 部署请求跳转相对路径不对?

蓝蓝 回复

iproxy 运行了吗?还有 libimobiledevice 工具也要安装

😭 想体验一直用不了;tomcat+war 直接启动的方式一直不行

krisdy 回复

是的

效果很赞了。
相比较于 android 的 stf,iOS 目前最大的瓶颈是 ios minicap,一台 mac 执行机只能拖一台 iOS 设备,一比一的比例导致成本投入很高

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