智能化截图

当测试框架自身的断言机制失效后,图像断言又恢复了它的使命;拿Uiautomator来说,绝大多数情况下从Node中获取的元素信息是唯一的,可做断言用;同样,Selenium想精确找到某个Element的Xpath|Selector也并非难事,但是否所有情况下都那么无懈可击?答案肯定是有buffer的。那么,下面就探讨一种落地时趟过的应对方案。


图像比对

意义在于比较两张图像的不同,或者在Target中找到Source图来确定当前的步骤是否正确;

前面的文章已经针对某些处理手法初步做了介绍,因此不在此额外赘述;图像比对的重点固然是在【比对】上,但是如何方便的获取【图像】也是重中之重。

截图

移动端简单的截图方法可以用adb, adb取adb传,举个栗子:

adb shell screencap -p /mnt/sdcard/DCIM/Camera/Joyboy.jpg

Web端简单的截图方法可以用Java方法,举个栗子:

File scrFile = driver.getScreenshotAs(OutputType.FILE);

智能化部分截图

看完上面的命令后可能你会问了,如何才能做到只截取图片中想要的某一部分而不是整张图呢?

Web端的方法大致是这样的:(这里小编仅在后台做了截图)

后台调用直接取
随步骤自动获取断言块

移动端多做了一层封装,引入了一点人机交互:(支持:自动截图,手动框图,摇一摇唤醒等功能)

随时随地By需求截图

实现框图功能的部分代码如下:

添加摇一摇监听:

在需要截图的时候唤醒该功能,不用的时候收起来

总结:智能化截图的目的旨在将截图过程准确的、灵活的、多兼容性的附着在自动化测试过程之中,伴随测试的始末,提供数据进行分析和比较;有了图像资料,测试开始变得有眼睛、有方向、可查、可追溯(相对更一针见血的)进而可思考;别忘了图像分类、识别是人工智能的一个主流分支哦,后面的空间留给大家脑洞大开,欢迎一起探讨!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,863评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,247评论 19 139
  • 雨后的天空,多了一丝清新与凉爽。 看到女儿在整理房间,无意看到了书架上的书。1~6年级给她订的父母课堂,那是我,总...
    吕玥妈咪阅读 847评论 0 4
  • 明洪武十年(1377年)12月5日,朱允炆出生于应天府,为明兴宗朱标次子,明太祖朱元璋之孙,明洪武三十一年(139...
    木易哥阅读 4,227评论 0 0
  • 上个月我认识一个小老乡,她的女儿小欢与我们家小诺同岁。我们是9月生的,她家小欢是3月的生日,现在已经实足4周岁过了...
    诺曦妈妈阅读 5,139评论 24 20

友情链接更多精彩内容