国产系统应用的自动化测试
为了能用 sikuli 点灯熬油两个星期安装 opencv, tesseract。
只有 uos 能用,银河麒麟一点戏都没有
最坑的就是中科方德,md,只能找源码装,各种依赖解决到秃头。
今天,就在刚刚,我身边的同事说了一个思路。
你就是要做自动点点点,你莫不如装个 vnc 远程点不也是点。
用 VMware 也行啊。
瞬间我觉得我这两个星期啊就像一个 sb。
我败了。我深深的败了。。。
联合利华引进了一条香皂包装生产线,结果发现这条生产线有个缺陷:常常会有盒子里没装入香皂。总不能把空盒子卖给顾客啊,他们只得请了一个学自动化的博士后设计一个方案来分拣空的香皂盒。博士后拉起了一个十几人的科研攻关小组,综合采用了机械、微电子、自动化、X 射线探测等技术,花了几十万,成功解决了问题。每当生产线上有空香皂盒通过,两旁的探测器会检测到,并且驱动一只机械手把空皂盒推走。
中国南方有个乡镇企业也买了同样的生产线,老板发现这个问题后大为发火,找了个小工来说:你他妈给老子把这个搞定,不然你给老子爬出去。小工很快想出了办法:他在生产线旁边放了台风扇猛吹,空皂盒自然会被吹走。
airtest 的 api 集成的比较好了
from airtest.core.cv import Template
Template(flag_pic, threshold=0.5, rgb=True).match_in(jpeg_path)
你大可不局限在 sikuli,先用最简单的方式验证可行性。airtest 里有很便捷的图像识别 API,你可以只在 server 端使用 airtest
我说的那种方式可以将整个桌面截图下来,然后传输到 server,由 server 做识别呀~
其实根据你的描述,环境安装问题大多出现在图像识别这些地方,你大可以避开这些。测试目标只需要管最简单指令操作和截图。
当然,如果 VNC 你觉得目前性价比最高,也不错
我一直是一个人在孤独的前行,,,
整个产品线就我一个自动化测试
剩下的全是功能测试
自闭式岗位。只能找论坛,或者各种群里跟大家沟通沟通。
UOS 测试建议楼主,先用外网环境通过 apt 确认有那些依赖,在 download 到内网。。。
所以开干前,做好充分调研很重要。多找一些志同道合的人,遇到这种情况可以沟通商量下,有助于扩展视野和少走弯路。
不过沉淀记录好你这次踩过的坑和解决方案,其实也不亏。以后总归会遇到没法 vnc 或者虚拟机的情况,到时候就能用上了。
太底层的东西我是真的不懂。。。
其实我明白的底层基础决定上层建筑
底层原理的理解能决定你在这个领域高度。
而且我所在的产线只有我一个自动化测试。
所关注的技术也是更多通用的技术。
像这种桌面应用的自动化相比接口,webUI 少太多了。
所以就不太想做太深入的研究。
毕竟身为打工人,只能面向工作,面向工资学习了。。。
我之前装 tuleap 也花了一周……各种依赖是真心恶心,关键服务器还连不上外网,逐个手工下载上传上去,后来完成发现 bitnami 上有完整的一键安装包,深感幸福 & 沙雕~
我很赞同你的观点,去学工具背后的原理确实很重要。
但是也得分是什么样的工具啊。
像 opencv 这种,,,大可不必。
见仁见智吧。
我再直白点吧。
因为你拿到的就是一个功能需求,但是技术路线你是不知道的。
因此你选择了你知道的技术去尝试趟雷。
然后发现可能用简单的方法去解决问题就行了。ok.这么想没有问题。
但是你不去尝试了解工具背后的原理,不去挑战自己,所用的方式方法就还会停留在原地。
当然你也可以认为我要求过高,实际根本没时间,没精力。
确实工作么,95% 的人都是打杂罢了。白嫖党迟早会为自己的白嫖行为付出代价。
产品原因对自动化测试的执行效率要求不高,发送指令尝试过,但是产品后台执行时,也需要监控一下客户端 UI 的状态,就还是需要图片识别。。。
airtest 了解一下
我明白你的意思,但是我没有时间去做过深的研究。
至于到底依赖哪些包,emmm,,
这么说吧,sikuli 是需要 opencv 做图像识别,tesseract 做文字提取
这些功能肯定就需要 png,jepg,tiff,gif 等这些图片的工具库
tesseract 需要 leptonica 做图像处理,还需要 cairo,pango 做图形渲染。
至于为什么有依赖,就开发一个工具,发现有些底层的功能已经有了轮子,直接调用即可。
在多问一句,到底有哪些依赖,为什么有这些依赖,有没有其他方法解决?
当然你说的这些我个人理解,因为不同框架下 gcc 编译出来的库是和操作系统以及底层指令框架相关的。如果依赖库没有对应的版本,只能依赖源码编译,源码基于新框架如何修改本身就比较难。
就像 opencv,ffmpeg 来说,编译选项就有数十个,只是告诉你,多问一下为什么。两周试错不是太长,而是太短。
国产系统的包依赖解决不了,你可以尝试,只把操作指令下发测试设备,server 来处理识别。测试设备对兼容性的要求就低很多了。别依赖原生的安装包。
VNC 应该也不是最终的解决的方法,你以后可能还要解决分布执行怎么办,带宽怎么办,vnc 不稳定怎么办。
2 周的坑真也还好。你至少摸清了很多系统的坑不是。
要这么说,我还在外包待了 7 年呢,这是多大的坑,贪图一时的安逸,天天打魔兽世界
踩过的坑也算经历了
哈哈哈哈,和我经历差不多,也是国产系统,中标麒麟。
AUT 是 Qt 写的,然而我用的是 Squsih 做的,可以见这篇文章Linux 下的 UI 自动化实践
远程的怎么查找识别空间?按桌标点?
两周的坑,不算坑
也还好。现在的失败经验,说不定在将来某一天会有作用。别人刚开始踩坑的时候,也可能是这么过来的。
那你有没有想过为什么不行呢?
如果后续评估应该怎么评估呢?
错误的方向 + 不懈的努力
总有那么一两句话,就能让你的付出一文不值。。。
害得多动脑啊多动脑。