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

water · October 27, 2017 · Last by sunny1773 replied at November 25, 2019 · 4182 hits

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

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

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

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

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

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

water #2 · October 27, 2017 作者
krisdy 回复

是的

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

water #4 · October 27, 2017 作者
蓝蓝 回复

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

water 回复

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

water 回复

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

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

water #7 · October 27, 2017 作者
蓝蓝 回复

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

water #8 · October 27, 2017 作者
蓝蓝 回复

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

water 回复

这个不行哦,一直build failed.

water 回复

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

water #11 · October 27, 2017 作者
蓝蓝 回复

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

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

water #14 · October 30, 2017 作者
codeskyblue 回复

嗯,这个后续可以加上。

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


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

water #16 · October 31, 2017 作者
蓝蓝 回复

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

water 回复

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

water #18 · November 01, 2017 作者
蓝蓝 回复

你这个不是好使了么?

water 回复

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

water #20 · November 01, 2017 作者
蓝蓝 回复

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

water 回复

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

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

water #23 · November 09, 2017 作者
蓝畔湖光 回复

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

water 回复

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

water #25 · November 10, 2017 作者
蓝畔湖光 回复

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

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

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

water 回复

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

water #29 · November 20, 2017 作者
Michael_Wang 回复

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

water #30 · November 20, 2017 作者
蓝蓝 回复

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

6Change 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 #31 · November 20, 2017 作者
蓝畔湖光 回复

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

water 回复

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

water 回复

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

water #34 · November 24, 2017 作者
蓝畔湖光 回复

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

water #35 · November 24, 2017 作者
蓝蓝 回复

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

water #36 · November 24, 2017 作者
蓝蓝 回复

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

water 回复

😃 灰常感谢!

water 回复

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

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

求回复~~

在线等,特别急~~

42Floor has been deleted
蓝畔湖光 回复

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

water #44 · April 17, 2018 作者
heygrl 回复

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

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

water #46 · April 24, 2018 作者
磊磊 回复

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

water 回复

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

water #48 · April 24, 2018 作者
磊磊 回复

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

water #49 · April 24, 2018 作者
磊磊 回复

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

water 回复

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

water #51 · April 24, 2018 作者
磊磊 回复

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

water 回复

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

water 回复

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

water #54 · April 28, 2018 作者
磊磊 回复

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

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

water #56 · July 04, 2018 作者
yca 回复

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

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

water #58 · July 31, 2018 作者
芈娜 回复

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

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

后台服务的日志:

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

water #61 · January 02, 2019 作者

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

water #62 · January 02, 2019 作者

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

LHY 回复

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

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

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up