一种移动应用自动化行为记录及分析定位缺陷方法及系统
文献发布时间:2023-06-19 19:28:50
技术领域
本发明涉及自动化程序测试技术领域,尤其涉及一种移动应用自动化行为记录及分析定位缺陷方法及系统。
背景技术
在移动端应用测试过程中,测试人员遇到一些缺陷时很多是经过一系列操作引起的,往往这些问题很难复现,难定位,难验证。
现有的办法是:
通过回忆自己做过的操作全靠个人如果想不起来很难进行问题的复现和定位;依靠服务端日志但也不能确定是哪个操作引起的服务端接口调用;需要研发人员和测试人员的业务知识和后台接口的文档进行搜索来推测复现操作步骤。因此目前的移动端应用测试过程没有针对移动应用装置进行测试人员行为记录和分析的综合方法和系统,同时针对难复现问题未具备自动化复现和验证的功能方法。
发明内容
为解决现有技术的不足,本发明提出一种移动应用自动化行为记录及分析定位缺陷方法及系统,测试人员进行手工测试时,通过对测试人员进行点击操作进行实时监听,录制截取当前被测应用的页面,每次触控页面都会进行截图存储,并通过时间和每次操作退出登录后的时刻进行记录分区存储。遇到缺陷后能够通过回放测试行为操作,给出完整的复现问题的链路,同时进行自动化验证。
为实现以上目的,本发明所采用的技术方案包括:
一种移动应用自动化行为记录及分析定位缺陷方法,包括:
S1、启动待检测程序的测试,监听客户端的触控事件,包括:
获取触控坐标信息;
对存在触控事件的客户端屏幕页面进行截图,得到触控事件对应的屏幕页面截图;
对触控事件对应的屏幕页面截图进行安全加密,将加密后的触控事件对应的屏幕页面截图以文件夹的形式存储至客户端本地内存,得到用户测试过程记录文件夹;
以获取的触控坐标信息为键,以加密后的触控事件对应的屏幕页面截图为值,生成哈希集合;
S2、若测试遇到问题,进行问题回溯,生成测试流程回溯图,包括:
通过遇到问题的用户账户以及启动测试的时间定位到相应的用户测试过程记录文件夹;
将用户测试过程记录文件夹中加密后的触控事件对应的屏幕页面截图进行安全解密,得到解密后触控事件对应的屏幕页面截图;
根据哈希集合中触控坐标信息与加密后的触控事件对应的屏幕页面截图的对应关系,将触控坐标以坐标点的形式标识在解密后触控事件对应的屏幕页面截图中,得到标识有触控坐标点的解密后触控事件对应的屏幕页面截图;
将标识有触控坐标点的解密后触控事件对应的屏幕页面截图按照时间顺序整合为测试流程回溯图;
S3、对测试遇到的问题进行数据分析,为验证修复后的待检测程序提供数据,包括:
在标识有触控坐标点的解密后触控事件对应的屏幕页面截图上,以坐标点为中心按照预定的按键像素范围进行截图,得到第一图片数据;
通过图像识别技术识别出第一图片数据中的文字信息,得到第一图片数据信息;
在标识有触控坐标点的解密后触控事件对应的屏幕页面截图上,以预定的图片顶部标题栏的像素范围进行截图,得到第二图片数据;
通过图像识别技术识别出第二图片数据中的文字信息,得到第二图片数据信息;
S4、验证修复后的待检测程序是否修复成功。
进一步地,所述步骤S4包括:
S41、通过自动化开源框架uiautomater提供的Devices、Object类中的click方法,将第一图片数据信息为参数,进行第一图片信息的事件操作,得到验证页面;
S42、通过assert断言的方法,确认验证页面的信息中是否包含第二图片数据信息;
S43、若确认验证页面的信息中包含第二图片数据信息,则修复成功;
S44、若确认验证页面的信息中不包含第二图片数据信息,则修复失败。
进一步地,所述用户测试过程记录文件夹,以启动测试时间为文件夹的名称,若用户进行了登录操作,则将文件夹的名称修改为启动测试时间、用户账户以及密码。
进一步地,所述对触控事件对应的屏幕页面截图进行安全加密的加密方法为base64编码。
进一步地,所述触控事件包括:触摸、点击、滑动、抬起以及多指位事件。
进一步地,所述图像识别技术为tesseract-ocr开源的图像识别技术。
本发明还提供一种移动应用自动化行为记录及分析定位缺陷系统,其特征在于,包括:
触控事件监听模块,用于启动待检测程序的测试,监听客户端的触控事件;
问题回溯模块,用于若测试遇到问题,进行问题回溯,生成测试流程回溯图;
数据分析模块,用于对测试遇到的问题进行数据分析,为验证修复后的待检测程序提供数据;
修复验证模块,验证修复后的待检测程序是否修复成功。
本发明还提供一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的移动应用自动化行为记录及分析定位缺陷方法。
本发明还提供一种电子设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储用户测试过程记录文件夹以及哈希集合;
所述处理器,用于通过调用用户测试过程记录文件夹以及哈希集合,执行上述的移动应用自动化行为记录及分析定位缺陷方法。
本发明还提供一种计算机程序产品,包括计算机程序和/或指令,其特征在于,该计算机程序和/或指令被处理器执行时实现上述的移动应用自动化行为记录及分析定位缺陷方法的步骤。
本发明的有益效果为:
采用本发明所述一种移动应用自动化行为记录及分析定位缺陷方法及系统,在用户操作客户端或测试人员进行手工测试时,实时监听客户端的触控事件,获取触控坐标信息,对存在触控事件的客户端屏幕页面进行截图,并按照特定的方式进行分区保存,将坐标信息与客户端屏幕页面截图进行关联。若测试遇到问题,则进行问题回溯,生成测试流程回溯图,可重现整个测试过程。对测试遇到的问题进行数据分析,为验证修复后的待检测程序提供数据。在对待检测程序进行修复后,进行自动化验证修复后的待检测程序是否修复成功。因此本发明一种移动应用自动化行为记录及分析定位缺陷方法及系统可针对移动应用装置进行测试人员行为记录和分析,同时针对难复现问题具备了自动化复现和验证的功能方法。
附图说明
图1为本发明一种移动应用自动化行为记录及分析定位缺陷方法示意图。
图2为本发明一种移动应用自动化行为记录及分析定位缺陷系统示意图。
具体实施方式
为了更清楚的理解本发明的内容,将结合附图和实施例详细说明。
图1为本发明一种移动应用自动化行为记录及分析定位缺陷方法的示意图,本方法包括以下步骤:
S1、启动待检测程序的测试,监听客户端的触控事件;
根据android事件分发机制,重写dipatchTouchEvent分发用户触屏事件,onInterceptTouchEvent及onTouchEvent三个方法对用户在屏幕上的触摸(touch),点击(click),滑动(move/slide),抬起(up),多指位(multi-finger)事件进行获取。具体地:
在dipatchTouchEvent方法里收到用户触碰屏幕事件后,通过MotionEvent.getActionMask获取触控事件;
获取触控坐标信息;如果为按下触控事件,通过MotionEvent.getX()及MotionEvent.getY()记录当前坐标,当收到抬起事件后,记录抬起手指时的坐标,方法同上。
对存在触控事件的客户端屏幕页面进行截图,得到触控事件对应的屏幕页面截图;收到抬起事件后,通过反射调用android系统截屏的接口完成当前屏幕状态及按钮位置的截图生成。对触控事件对应的屏幕页面截图进行安全加密,进行base64编码(基于安全加密处理),通过调用BitmapFactory及FileOutputStream类的api完成将截图的bitmap类型转为base64格式,并最终flush写入到本地存储目录中。
将加密后的触控事件对应的屏幕页面截图以文件夹的形式存储至客户端本地内存,得到用户测试过程记录文件夹;
通过举例说明目录的创建形式如下:
例如,开启监控装置后当前时间为20211223100401,则在本设备中图片目录创建名称为20211223100401,测试人员在被测设备上进行操作,登录账号名A即19911110000密码为111111,点击登录后,屏幕截图放置在20211223100401图片目录下并进行图像分析是否为登录页面,即是否有登录按钮,如果有则修改目录文件为20211223100401+19911110000+111111,后续测试人员进行场景测试工作,点击不同的按钮进入不同的页面,每一次点击都会截图放置在20211223100401+19911110000+111111目录下;
测试人员退出登录,再次登录账号B即19911000001密码为222222,点击登录后,屏幕截图放置在20211223100401图片目录下并进行图像分析是否为登录页面,即是否有登录按钮,如果有则创建新目录当前时刻20211223103001+19911000001+222222,以此类推,会生成多个以时刻和用户名密码为名称的图片文件夹。
以获取的触控坐标信息为键,以加密后的触控事件对应的屏幕页面截图为值,生成哈希集合;将在内存中生成哈希集合,记录每个截图下对应的坐标位置,方便后续进行回溯验证操作。例如:{key:value}{(x,y):base64编码}。
S2、若测试遇到问题,进行问题回溯,生成测试流程回溯图。
首先以用户维度+发生问题时刻,查找具体的文件目录。即通过遇到问题的用户账户以及启动测试的时间定位到相应的用户测试过程记录文件夹。
将用户测试过程记录文件夹中加密后的触控事件对应的屏幕页面截图进行安全解密,得到解密后触控事件对应的屏幕页面截图;通过Android自有类bitmapFactory将base64文件转换成bitmap做图片展示。
解码出一组图片后,放入到内存中,通过Android自有类Lrucache进行缓存,统计整体缓存大小,通过自定义View来支持多张图片合成。
根据哈希集合中触控坐标信息与加密后的触控事件对应的屏幕页面截图的对应关系,将触控坐标以坐标点的形式标识在解密后触控事件对应的屏幕页面截图中,得到标识有触控坐标点的解密后触控事件对应的屏幕页面截图。将坐标点通过opengl方式设定图片选择范围(即点击触控生成的坐标框),重写自定义view的onMeasure,onLayout,onDraw方法,将红点绘制到当前图片View上。
将标识有触控坐标点的解密后触控事件对应的屏幕页面截图按照时间顺序整合为测试流程回溯图;渲染出来后通过BitmapFactory方式生成最终完整流程图片,存储于问题回溯目录下。
S3、对测试遇到的问题进行数据分析,为验证修复后的待检测程序提供数据。
根据图像识别tesseract-ocr开源的图像识别技术,在登陆页面识别得到登陆账号和密码。
在标识有触控坐标点的解密后触控事件对应的屏幕页面截图上,以坐标点为中心按照预定的按键像素范围进行截图,得到第一图片数据;预定的按键像素范围为长200像素、宽200像素。即将坐标红点位置扩大长度(像素):200、宽度(像素):200(被测应用的常规按钮大小)的区域进行图片截图为1.png。
通过图像识别技术识别出第一图片数据中的文字信息,得到第一图片数据信息;即通过tesseract-ocr开源图像识别技术,识别出图片1.png中的文字即识别出测试人员的点击区域名称,例如识别出信息:touch-info交易明细等信息。
在标识有触控坐标点的解密后触控事件对应的屏幕页面截图上,以预定的图片顶部标题栏的像素范围进行截图,得到第二图片数据;其中预定的图片顶部标题栏的像素范围为X(0-1024)、Y(0-220)。即针对图库中的每一张图片的顶部区域X(0-1024)、Y(0-220)(1024为设备的分辨率的宽),即顶部横条(针对我们的被测应用的特点,几乎每个页面都会有顶部标题),截取图片。
通过图像识别技术识别出第二图片数据中的文字信息,得到第二图片数据信息。即识别出该页面的标题信息,title-infor我的账户等。
如果图像识别没有拿到最终结果,将采用上步存储的哈希集合中的坐标来完成获取用户点击区域的数据。
通过举例说明上述过程:
用户2022年3月14日上午10点输入账号点击登录后,点击全部应用,点击账户应用,点击交易明细,报错。那么完成的过程产物有:
文件夹名为:20220314100001+19911000001+111111
存储:
{(x1,y1),image1-base64},{(x2,y2),image2-base64},{(x3,y3),image3-base64},{(x4,y4),image4-base64}
获取的数据信息:
登陆账户名account:19911000001密码password:111111
操作流程:
touch-info(1):登录title-infor(1):空(登录页面没有标题)
touch-info(2):全部title-infor(2):空(登录后的页面无标题)
touch-info(3):账户title-infor(3):搜功能/产品/网点
touch-info(4):交易明细title-infor(4):我的账户
S4、对上述测试过程中遇到的问题进行修复后,验证修复后的待检测程序是否修复成功。
通过数据分析功能获取用户账号、密码以及操作流程,通过自动化开源框架uiautomater提供的Devices、Object类中的click方法,将第一图片数据信息为参数,进行第一图片信息的事件操作,得到验证页面;
通过assert断言的方法,确认验证页面的信息中是否包含第二图片数据信息;
若确认验证页面的信息中包含第二图片数据信息,则修复成功;
若确认验证页面的信息中不包含第二图片数据信息,则修复失败。
本发明另一方面还涉及一种移动应用自动化行为记录及分析定位缺陷系统,其结构如图2所示,包括:
触控事件监听模块,用于启动待检测程序的测试,监听客户端的触控事件;
问题回溯模块,用于若测试遇到问题,进行问题回溯,生成测试流程回溯图;
数据分析模块,用于对测试遇到的问题进行数据分析,为验证修复后的待检测程序提供数据;
修复验证模块,验证修复后的待检测程序是否修复成功。
通过使用该系统,能够执行上述的运算处理方法并实现对应的技术效果。
本发明的实施例还提供能够实现上述实施例中的方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的方法的全部步骤。
本发明的实施例还提供一种用于执行上述方法的电子设备,作为该方法的实现装置,所述电子设备至少具备有处理器和存储器,特别是该存储器上存储有执行方法所需的数据和相关的计算机程序,例如用户测试过程记录文件夹以及哈希集合等,并通过由处理器调用存储器中的数据、程序执行实现方法的全部步骤,并获得对应的技术效果。
优选的,该电子设备可以包含有总线架构,总线可以包括任意数量的互联的总线和桥,总线将包括由一个或多个处理器和存储器的各种电路链接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和接收器和发送器之间提供接口。接收器和发送器可以是同一个元件,即收发机,提供用于在传输介质上与各种其他系统通信的单元。处理器负责管理总线和通常的处理,而存储器可以被用于存储处理器在执行操作时所使用的数据。
额外的,所述电子设备还可以进一步包括通信模块、输入单元、音频处理器、显示器、电源等部件。其所采用的处理器(或称为控制器、操作控件)可以包括微处理器或其他处理器装置和/或逻辑装置,该处理器接收输入并控制电子设备的各个部件的操作;存储器可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种,可储存上述有关的数据信息,此外还可存储执行有关信息的程序,并且处理器可执行该存储器存储的该程序,以实现信息存储或处理等;输入单元用于向处理器提供输入,例如可以为按键或触摸输入装置;电源用于向电子设备提供电力;显示器用于进行图像和文字等显示对象的显示,例如可为LCD显示器。通信模块即为经由天线发送和接收信号的发送机/接收机。通信模块(发送机/接收机)耦合到处理器,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)还经由音频处理器耦合到扬声器和麦克风,以经由扬声器提供音频输出,并接收来自麦克风的音频输入,从而实现通常的电信功能。音频处理器可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器还耦合到中央处理器,从而使得可以通过麦克风能够在本机上录音,且使得可以通过扬声器来播放本机上存储的声音。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
以上所述仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换等都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
- 一种基于深度学习的网页自动化测试缺陷定位方法
- 一种超声导波缺陷定位成像方法及系统
- 一种基于BSA基因定位的自动化分析方法
- 行为分析方法、记录介质以及行为分析系统
- 一种移动应用中广告件正常行为的分析方法及系统