一次曲折的竞品测试自动化之路
作者:网络转载 发布时间:[ 2014/5/26 13:41:48 ] 推荐标签:自动化测试 手动测试 竞品测试
前两天接到一个活,对一款竞品的OCR识别结果进行分析统计,要对两万多张图片进行识别,然后统计各个字段的识别正确率,对于手动测试来讲,这基本上是不可能的。
接到这活后立刻想到以下思路:对竞品代码进行反编译,在关键节点插入自己代码,对竞品选择图片和识别结果进行记录,然后自动化驱动模拟手动测试行了,这是快的解决方案。下午搞定,晚上挂上手机第二天坐等结果了,可反编译后修改完代码编译打包失败,即使反编译后不进行任何代码修改重新打包都失败,以前遇到过类似的包,也google过原因和解决方案,没有很好的解决的办法,这条路算是走不通了;
好在这款竞品图像识别的部分是通过JNI调用C++写的so文件,只要理清逻辑顺序,自己写一个demo同样调用也行,于是半个小时梳理了一下代码,他图片识别前要进行图片剪切,锐化处理,各种JNI调用要进行十好几次,果断放弃了;
故事进行到这里走不通了,然后adb shell进入手机去看看了缓存文件,发现它识别的一些数据缓存到本地数据库中了,但数据库中记录的文件名称不是输入图片的名称,是经过剪切锐化处理后的图片,而且名称是随机生成的,于是一个思路诞生了,我只要记录下图片输入的顺序,能把图片名跟数据库中相应的记录一一对应。那怎么获取图片的顺序呢?查看了一下logcat输出,其并没有对选择图片进行记录输出,似乎又陷入了绝境。
那只有后一个办法了,图片的位置是不会发生变化的,再写一个自动化程序对图片进行遍历,记录图片名称。于是整个思路成了:先把图片导入手机,运行自动化程序对手机图库进行遍历,获取图片名字,然后再运行一个自动化程序,按照图片遍历的顺序依次模拟手动进行图片输入识别,然后拉出数据库,进行数据提取整理,完成一一对应的过程比对结果,统计分析。这也是后也是的解决方法了,虽然有点麻烦,但总还是避免了大量人力浪费在这上边。
对别人的app进行业务上的竞品对比,本来很麻烦,因为你得不到对方开发团队的任何支持,所以必要的逆向工程技术,开阔的视野,灵活的思路对自动化人员来讲很重要。
附记:做竞品测试时一定要注意对自己数据的保护,如果没有任何保护手段,那这次成功的竞品测试给对手增加了两万的真实数据。
通过对各种类型的app的逆向工程,我可以很负责任的说,不偷用户数据,安全性做得很好的app真的很少。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11