自动化测试技巧之图片验证
想起图片验证,我就会想到我曾经的第一个自动化测试程序,那会被图片验证纠结了很久,最后也没有想通该怎么处理,直到最近,我终于想通了,可是却离开那个程序了。
人生憾事其一,回头时发现自己曾做过的事那么浅薄,却沾沾自喜。
------------------------------------------------------------------------
图片验证,这个不光指的是被测程序上的那些图片的验证,更可以引申为一些比较难以用常规方法来验证的功能的验证。
先不去纠结到底怎么实现图片验证,来简单聊聊图片验证的一些实现。
目前所有的图片共可以分为两大类,矢量图和位图。如果你要比较的是矢量图,那么,亲,可以找些资料一起来研究么,这块我不是很懂。目前的测试中,需要比较的图片90%以上都是位图,就算有些地方是矢量图,也是当成位图来比较的,所以目前我们先解决位图的问题。
位图比较的基本原理是按位比较,因为位图的本质是一个矩阵(黑白图)或三个矩阵(RGB图),所以我们可以通过按位比较来判断两张图是否完全一样,这个也是最简单的了。当然,现在已经有了很多成熟的图形比较算法或工具,我们可以去网上找找。
然后来说说利用图片来验证一些比较难以用常规方法来验证的功能。这个的核心思想是:一个软件,在相同的数据源、相同的显示环境、相同的操作下所显示的内容是完全一致的。
先来举个例子。比如说画图板的绘图功能,如果要对这个进行自动化测试,那我们应该怎么做呢?无从下手么?因为我们不敢保证我们所绘制的图片是真的符合预期的,因为很难判断出来,并且很多前辈高人也说过,如果涉及图片比较多的最好放弃自动化。
那么就真的没救了吗?
再假设,画图板中的矩形选择区、线性选择区的对象是被自定义的,即不能被当前任一款测试工具所识别的,那我们还能实现自动化吗?
其实,也有一条路是可以走通的。绘图功能的本质就是把特定线条或者区域中的像素点修改为对应的颜色,也就是说,如果两次的操作的图片、图片大小、绘图的轨迹完全一样的话,那得到的图片也应该是一样的。至于随机事件和各种组合的结果验证,亲,让他们一边玩去,测试脚本很忙。
到这里,我们可以大致总结下:
1. 对于一些常规方法验证不了的问题,我们可以采用这种方法进行验证。不过操作最好小于3步,以减少误差;
2. 截图比较的区域要尽可能避免无关因素的干扰,如系统时间等;
3. 如果有动态数据,则需要对截图范围内的图片相似度做一些规定,两个时刻的相似度低于80%,要么重新制定截图区域策略,要么寻求其他更有效的方法。
最新内容请见作者的GitHub页:http://qaseven.github.io/
接口测试的测试要点 接口测试是软件测试中的重要组成部分,它的目的是评估接口的质量和可靠性,以保证系统的正常运行。在进行接口测试时,必须要考虑到以下几个方面:
接口测试平台代码实现52: 自动异常测试-5 打开我们上次没写完的P_apis.html 找到这个error_play函数,我们已经替换好了请求体,那么接下来就把新请求体和接口id传递给后台即可
接口测试平台代码实现50: 自动异常测试-3 本节开始之前,先解决下关于调试层遗漏的一个设计缺陷。就是当已经打开了一个接口的调试层后,如果直接点击其他接口的调试层便会出现显示错误。这类的问题非常多,我们最好是直接根本上绕过去。
接口测试平台代码实现40:修改bug 我们的这个系列已经进行了长达12章成品预览和40章纯开发章节,但是基本还没做过完全一点的测试修复bug章节,每次新开发的功能也仅仅停留在单元/函数层面上的自测。
相关文章
- Android 性能测试实践(三)Cpu
- 菜鸟学自动化测试(二)----selenium IDE 功能扩展
- 如何提高测试效率
- Testing - 软件测试知识梳理 - 自动化测试
- ENode通信层性能测试结果
- 云效平台——基于jmeter的轻量级性能测试平台
- SAP UI5 应用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍试读版
- 4步学会接口自动化测试,步骤超详细,建议收藏
- python性能测试值timeit的使用示例
- Python Api接口自动化测试框架 excel篇
- 在软件测试过程中如何有效的开展接口自动化测试
- Selenium自动化测试-5.脚本录制神器Katalon Recorder
- Pytest自动化测试框架教程24-导入机制及系统路径
- 四、Pytest框架 — pytest.ini文件和用例执行的顺序以及跳过测试和失败重试
- 微信小程序自动化测试实战,支持录制回放、智能遍历
- 2023年后涨薪必备,如何从功能测试转化自动化测试?
- 功能测试如何进阶自动化测试?5个步骤带你成功进阶...
- 一文2000字手把手教你自动化测试平台建设分享
- 性能测试如何入门?阿里月薪30k的测试开发是这样说的....
- 一文get,最容易碰上的接口自动化测试问题汇总
- 【进阶自动化测试第一步】接口测试基础
- 自动化测试高频面试题 —— 90%可能会被问到
- 工作8年的自动化测试工程师,32岁的我被刚入职的后辈一语惊醒!
- 为什么我们的自动化测试做不起来?
- ⚡【包教包会系列】从0到1学习接口自动化测试必备知识!⚡
- 《Eolink 征文活动- -RESTful接口全解测试-全方位了解Eolink-三神技超亮点》
- Postman如何使用(四):接口测试