开源测试工具 如何使用 Sonic 云真机测试平台打王者?(上)

Eason for Sonic云真机系列 · 2021年11月25日 · 最后由 Eason 回复于 2021年12月02日 · 6478 次阅读

前言

Sonic 开源已经一个多月啦!
官网在这里
大家想支持记得点一下 star 哦,Sonic 承诺永久免费!
然而,即将迎来 v1.2.0-release 版本,投屏优化、iOS 即将来袭!
感谢前端大佬@Roy2017参与前端开源

注!以下所有内容为即将发布 v1.2.0-beta3 版本,经内部测试完毕后才更新 v1.2.0-release

投屏优化

本次主要介绍的是前端自定义布局与触控优化,可以实现在线打王者(上班不要这样做哦)
测试机型为安卓 10 的华为 p40

快看我用 sonic 在训练营拿了一血

怎么实现的

众所周知,minitouch 已经不兼容安卓 10 以上了,gif 图中那种流畅的触控交互是怎么实现的呢?
十分感谢 STF,给我提供了思路。
1、调用安卓内部的 android.hardware.input.InputManager
2、因为安卓 10 以上是 minitouch 被禁用了/dev/device/input 权限,思路就是把 minitouch 的调用方式,改造成用 apk 调用第一步的内部 api
3、在 apk 暴露 socket 服务,当然这里参考了 STF 的做法,但是去除了一些不必要的服务与二开优化。
4、剩下的兼容 minitouch 的数据格式即可,STF 在这里限定了多点触控只能两个点,其实可以根据自己的需求二开,增加更多

MotionEvent.PointerProperties pointerProps0 = new MotionEvent.PointerProperties();
       pointerProps0.id = 0;
       pointerProps0.toolType = MotionEvent.TOOL_TYPE_FINGER;
       MotionEvent.PointerProperties pointerProps1 = new MotionEvent.PointerProperties();
       pointerProps1.id = 1;
       pointerProps1.toolType = MotionEvent.TOOL_TYPE_FINGER;
       pointerProperties[0] = pointerProps0;
       pointerProperties[1] = pointerProps1;

5、因为支持多点触控,前端将键盘 wasd 按键关联到摇杆坐标就可以了,当然是自定义区域与按键的
多点触控指令

d 0 10 10 50
c

d 1 20 20 50
c

u 0
c

u 1
c

如何使用

1、安装 apk

2、exec app_process /system/bin com.sonic.plugins.assist.SonicTouchService,开启 socket 服务
3、将 sonictouchservice 转发即可

其他

1、优化了启动速度,让手机 1~2s 即可开启投屏

2、自定义前端布局,不再担心空间不够用啦!

下一篇将介绍 v1.2.0 的新模块,iOS 模块,大家多多支持哦!
欢迎大家加群了解

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
最佳回复
silence.w 回复

群聊超过 200 人只能拉进群,你可以加我微信,官网有二维码

共收到 15 条回复 时间 点赞

看上去很不错的样子

期待 v1.2.0-beta3 版本👍

小博 回复

😀 感谢关注哦

赞一个!期待 iOS

Eason 回复

大佬贴个微信群 图片,之前的失效了

cc 回复

感谢支持

Sutune 回复

感谢感谢

czzQAQ 回复

你可以加我个人微信,拉你进去,群二维码都是七天就过期了

可以把我拉进去吗?

silence.w 回复

群聊超过 200 人只能拉进群,你可以加我微信,官网有二维码

Eason #11 · 2021年11月26日 Author

😀

Eason #12 · 2021年11月26日 Author
Eason 回复

这个 apk 要 beta3 版本自动安装的哦

Eason #13 · 2021年12月01日 Author

beta3 版本已经发布了,想体验的小伙伴可以部署玩玩

支持棋牌游戏的 UI 自动化测试吗?

Eason #15 · 2021年12月02日 Author
疯疯 回复

游戏的控件后续接入 poco 来获取的,相信不久的将来就能实现。
目前可以用图像识别或者坐标来做自动化,是没问题的。

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