如何使用 Sonic 云测平台打王者?(下)– iOS 支持

Stacey丶梦菡 测试交流评论84字数 1686阅读模式

前言

Sonic v1.3.0-beta 已经发布啦!恭喜 Sonic 获得霍格沃兹的赞助~
官网:https://sonic-cloud.gitee.io
恭喜 Sonic 喜提三个用户案例。自动化实践方案

iOS 支持

上回说到,如何用 Sonic 云真机打王者。
随着 iOS 远控的面世,我本着测试用户反馈的效果。获得的反馈基本是 iOS 的投屏清晰度高,FPS 能达到 30,但是触控延迟也比较高
如何使用 Sonic 云测平台打王者?(下)– iOS 支持-图片1
如何使用 Sonic 云测平台打王者?(下)– iOS 支持-图片2
这是因为跟安卓触控原理不一致。
iOS 的触控体验我是监听鼠标点击与松开完成一次滑动事件,才发送一个滑动指令给 Agent 执行,里面包含两次移动的坐标信息。
但是安卓的触控经过我调用 API 的方式,实时监听鼠标移动轨迹来发送指令给手机,所以触控体验会更佳、更流畅。
但是 iOS 的话,这种方式在 webdriveragent 里面很不好实现,目前也在探索之中文章源自玩技e族-https://www.playezu.com/190079.html

TouchAction ta = new TouchAction(iosStepHandler.getDriver());
String xy1 = msg.getString("pointA");
String xy2 = msg.getString("pointB");
int x1 = Integer.parseInt(xy1.substring(0, xy1.indexOf(",")));
int y1 = Integer.parseInt(xy1.substring(xy1.indexOf(",") + 1));
int x2 = Integer.parseInt(xy2.substring(0, xy2.indexOf(",")));
int y2 = Integer.parseInt(xy2.substring(xy2.indexOf(",") + 1));
ta.press(PointOption.point(x1, y1)).waitAction(WaitOptions.waitOptions(Duration.ofMillis(300))).moveTo(PointOption.point(x2, y2)).release().perform();

滑动触控有个坑,两个坐标滑动动作之间,要预留大约 300 毫秒的停顿,不然很容易造成滑动失效或者设备不动的情况。文章源自玩技e族-https://www.playezu.com/190079.html

控件获取

获取控件的话,原理便跟安卓的一致,将控件信息 dump 之后,获得的是 xml 格式,这时候使用 jsoup 一类的框架进行解析,然后自行转换成 json 渲染给前端。
文章源自玩技e族-https://www.playezu.com/190079.html

调整 FPS 与清晰度

至于调整 FPS 和清晰度,后面也会开放给用户自定义,目前是通过 Appium Setting 对 wda 内置的 mjpegserver 做调整。文章源自玩技e族-https://www.playezu.com/190079.html

iosDriver.setSetting(Setting.MJPEG_SERVER_FRAMERATE, 30);

文章源自玩技e族-https://www.playezu.com/190079.html

所以说,用 iOS 打王者,体验就没安卓那么好咯~文章源自玩技e族-https://www.playezu.com/190079.html

物理管控

在某些用户反馈,机器长时间插着 usb 充电容易造成鼓包等等安全问题,经过我一番研究后发现,改善这类问题只能从硬件级别入手,或搭配专门定制的 usbhub 来控制,但是这成本对于中小企业无疑是巨大的,因此在 v1.3.0 中,已加入电池温度监控,当温度过高时,我们的维护人员就要进行物理干涉啦!
文章源自玩技e族-https://www.playezu.com/190079.html

电池温度的监控,主要使用 adb 的方式去获取
输入 adb shell dumpsys battery
我们获取的信息应该有以下几项文章源自玩技e族-https://www.playezu.com/190079.html

Current Battery Service state:
AC powered: false
USB powered: true
Wireless powered: false
Max charging current: 500000
Max charging voltage: 5000000
Charge counter: 4230000
status: 5
health: 2
present: true
level: 100
scale: 100
voltage: 4303
temperature: 270
technology: Li-ion
mUsbStatus: 0
PhoneTemp: 300

其中 temperature 字段就是我们需要的,单位是 0.1 摄氏度。文章源自玩技e族-https://www.playezu.com/190079.html

最后

Sonic 仍在继续努力~大家可以进群一起讨论,让 sonic 更好~文章源自玩技e族-https://www.playezu.com/190079.html

软件测试技术

玩技站长微信
添加好友自动发送入群邀请
weinxin
rainbow-shownow
玩技官方公众号
官方微信公众号
weinxin
PLAYEZU
 
  • 版权提示:本站仅供存储任何法律责任由作者承担▷诈骗举报◁▷新闻不符◁▷我要投稿◁
    风险通知:非原创文章均为网络投稿真实性无法判断,侵权联系2523030730
    免责声明:内容来自用户上传发布或新闻客户端自媒体,切勿!切勿!切勿!添加联系方式以免受骗。
  • 原创转载:https://www.playezu.com/190079.html
    转载说明: 点我前往阅读>>>
匿名

发表评论

匿名网友
确定