![](https://ceshiren.com/uploads/default/original/3X/7/3/7351ee045ecb2542db6f889793821c074e3bcbac.png)
接纳Sonic展开跨VLAN摆设,助推国外销售营业的子公司展开专项检测。供给更多间歇使命充实操纵无人值班时间回归UI试验,Hardoi。暗鞘乱数事务试验与UI结点试验,全力撑持贯穿Jenkins的DevOps流程,Sonic供给更多影像识别,后续还会加进poco号令行,助推游伶人公司试验效率。兴趣性可视化让接纳者不再感应冗杂。丰硕图象展现,接纳者动态洞悉示例继续施行情况,把控食物量量。
十分感激各大子公司对Sonic的全力撑持,十分感激霍西塔的鼎力冠名~此后sonic势必继续勤奋!
透过洼瓣能看到,接纳者能透过 Sonic 平台,轻松出访跨VLAN的 Agent 下的电子设备,继续施行远控或试验,若是子公司资金充沛的情况下,全球散布多个控造室是 ok 的,如许能满足部门子公司有国外销售营业试验的市场需求。
Agent 透过图中的形式与电子设备展开可视化,同时本身参加了影像演算法与 webSocket 办事项目。
springboot WebSocket(WebSocket 此根底)- ddmlib(ADB 通信)- appium java client(Appium 可视化)- thumbnailator(相片压缩)- testNG(试验框架与论断)- jsoup(导出 xml)- javacv(影像演算法此根底)- opencv(影像演算法核心)- tesseract(相片文字识别)- leptonica(影像演算法)- openblas(影像演算法)不成承认,minitouch 已经不相容Android 10 以内了,gif 图中那种简洁的触摸屏可视化是怎么实现的呢?在那儿非常十分感激 STF,给我供给更多了路子。
![](https://ceshiren.com/uploads/default/original/3X/a/b/ab46326cd9a9a9457b4f8c05fc754e9a6be0c3d1.gif)
科耳草如下:
1、初始化Android外部的 android.hardware.input.InputManager
2、即便Android 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
```
过去,我们增容电子设备 webview 确实费事,adb 相连手机后,必要在Google进入 chrome://inspect 网页,然后找到对应的 webview,点选【inspect】按键方可展开增容。
1、远距的电子设备怎么办?其实不能相连到我的 inspect 网页
2、webview 增容东西初次接纳必要能出访 developer.chrome 官方网站(大栅栏),否则增容网页链链 404,那无疑是个门槛。若是间接接纳上述文章的 devtoolsFrontendUrl 的话更是必要每次都搭栅栏。
3、adb forward 底子无法 127.0.0.1 或 localhost 出访,不克不及曝露给 ipv4
1.次要接纳 chrome 去相连远距 webview 的 ws,到达远距 ws 可视化,各人能参照那首诗(https://www.freesion.com/article/30471319113/)
2.将 adb forward 之后,当地再起一个 websocket 展开转发恳求,相当于本身实现内网穿透
3.本身将Google协议加一层代办署理转发,类似 nginx 功用。来实现 ip 出访
4.那种形式就不必要出访外网,间接用 agent 当地阅读器的 devtools 去恳求,所以缺点是不克不及很好地相容Google协议(会形成有时候增容大约15分钟~30分钟摆布过程会断开),而岩鼠是若何相容的,还得继续深究下去...
跟着iOS远控的面世,我本着试验接纳者反应的效果。获得的反应根本是iOS的投屏明晰度高,FPS能到达30,但是触摸屏延迟也比力高
那是即便跟Android触摸屏原理纷歧致。
iOS的触摸屏体验我是监听鼠标点选与松开完成一次滑动事务,才发送一个滑动号令给Agent继续施行,里面包罗两次挪动的座标信息。但是Android的触摸屏颠末初始化API的形式,动态监听鼠标挪动轨迹来发送死令给手机,所以触摸屏体验会更佳、更简洁。
但是iOS的话,那种形式在webdriveragent里面很欠好实现,目前也在摸索之中。
```
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毫秒的停顿,否则很容易形成滑动失效或者电子设备不动的情况。
在本版本,iOS的全力撑持只要投屏跟号令行获取,那是我的一次测验考试,看看Sonic在接纳者里面的相容性到达什么程度,最初在接纳者的反应中,我决定v1.3.0-beta1中参加:
5.iOS主动化与在线增容
6.siri号令
7.iOS远距拆包
功用逐步往Android模块靠齐,后面也会将iOS版的在线webview一路做了。
至于调整FPS和明晰度,后面也会开放给接纳者自订,目前是透过Appium Setting对wda内置的mjpegserver做调整。
```
iosDriver.setSetting(Setting.MJPEG_SERVER_FRAMERATE, 30);
```
所以说,用iOS打战神,体验就没Android那么好咯~
在某些接纳者反应,机器长时间插着usb充电容易形成鼓包等等平安问题,颠末我一番研究后发现,改善那类问题底子无法从硬件级别动手,或搭配专门定造的usbhub来控造,但是那成本关于中小企业无疑是庞大的,因而在v1.3.0中,我会参加电池温度监控,当温渡过高时,我们的维护人员就要展开物理干预啦!
电池温度的监控,次要接纳adb的形式去获取。输入
```
adb shell dumpsys battery
```
我们获取的信息应该有以下几项
```
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摄氏度。
跟着接纳者量的增加,我们也有车载电子设备、视频试验的接纳者在此中,他们一个配合的市场需求是投屏远远满足不了,他们更希望能音频也远距传输过来,同时希望相容更多Android电子设备。
目前sonic的Android投屏处理计划是minicap,我也做过比照
8.Minicap将部门压力放在agent处置,敌手机负荷不高,相容性不太好,小米尤其严峻
9.Scrcpy将投屏处置集中在手机端,衬着压力放在了后端上,相容性较好,不全力撑持Android5.0以下,比力合适车载、智妙手表等等。
各有优缺点,sonic若何选择呢?Sonic:我全都要
在不久的版本中,很快迎来scrcpy与minicap都能接纳,将选择权交给了接纳者,接纳者对本身的电子设备性能、相容性等等本身选择投屏计划,而且远距音频传输计划已经当地开启分收,相信很快也面世~
Sonic一站式免费开源云设想图试验平台 v1.3.0已经发布啦!
试验人:https://ceshiren.com/c/opensource/sonic/138群友整理的摆设文章:https://blog.csdn.net/aovenus/article/details/122182651接纳者社区:https://sonic-cloud.wiki/官方网站:https://sonic-cloud.gitee.io/演示视频:https://zhuanlan.zhihu.com/p/449187669[原文链接](https://mp.weixin.电话.com/s?__biz=MzU3NDM4ODEzMg==&mid=2247500717&idx=1&sn=e3e830fb91eee15cc6323e1aca689d13&chksm=fd31a166ca462870d67a6d48bb0ec644499a92a765b89858e934cd378cbf63822256195a9efb#rd)
来霍西塔试验开发学社,进修更多软件试验与试验开发的进阶手艺,常识点涵盖web主动化试验 app主动化试验、接口主动化试验、试验框架、性能试验、平安试验、持续集成/持续交付/DevOps,试验左移、试验右移、精准试验、试验平台开发、试验办理等内容,课程手艺涵盖bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相关手艺,全面提拔试验开发工程师的手艺实力。
获取更多内容:http://qrcode.testing-studio.com/f?from=zhihu&url=https://ceshiren.com/t/topic/6570点选查看更多信息