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

Stacey丶梦菡
Stacey丶梦菡
订阅者
314
文章
0
粉丝
测试交流评论133字数 734阅读2分26秒阅读模式

前言

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

iOS 支持

上回说到,如何用 Sonic 云真机打王者。
随着 iOS 远控的面世,我本着测试用户反馈的效果。获得的反馈基本是 iOS 的投屏清晰度高,FPS 能达到 30,但是触控延迟也比较高
如何使用 Sonic 云测平台打王者?(下)– iOS 支持插图
如何使用 Sonic 云测平台打王者?(下)– iOS 支持插图1
这是因为跟安卓触控原理不一致。
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 渲染给前端。
如何使用 Sonic 云测平台打王者?(下)– iOS 支持插图2文章源自玩技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);

如何使用 Sonic 云测平台打王者?(下)– iOS 支持插图3文章源自玩技e族-https://www.playezu.com/190079.html

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

物理管控

在某些用户反馈,机器长时间插着 usb 充电容易造成鼓包等等安全问题,经过我一番研究后发现,改善这类问题只能从硬件级别入手,或搭配专门定制的 usbhub 来控制,但是这成本对于中小企业无疑是巨大的,因此在 v1.3.0 中,已加入电池温度监控,当温度过高时,我们的维护人员就要进行物理干涉啦!
如何使用 Sonic 云测平台打王者?(下)– iOS 支持插图4文章源自玩技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

软件测试技术

 
匿名

发表评论

匿名网友
确定

拖动滑块以完成验证