首页 / 专利库 / 软件 / 黑盒测试 / 基于图像识别技术的自动化测试方法及系统

基于图像识别技术的自动化测试方法及系统

阅读:244发布:2020-05-22

专利汇可以提供基于图像识别技术的自动化测试方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 涉及信息技术领域,特别涉及基于 图像识别 技术的自动化测试方法及系统,为解决 现有技术 中自动化 框架 无法进行 黑盒测试 造成的测试局限性较大,本发明技术方案要点包括如下步骤:建立存储若干目标图片的预设图片库,生成以按预设顺序调用相应目标图片的测试脚本;基于测试脚本进行测试时,获取当前测试端屏幕状态;将对应目标图片与当前测试端屏幕的 像素 点 颜色 进行比对,若比对结果一致,输出与该目标图片对应的测试脚本中的测试命令,并重复获取当前测试端屏幕状态和将对应目标图片与当前测试端屏幕的像素点颜色进行比对,直至测试完成,本发明对测试端中的移动App进行黑盒测试,减少自动化框架测试的局限性。,下面是基于图像识别技术的自动化测试方法及系统专利的具体信息内容。

1.一种基于图像识别技术的自动化测试方法,其特征在于,包括如下步骤:
建立存储若干目标图片的预设图片库(4),生成以按预设顺序调用相应目标图片的测试脚本;
基于测试脚本进行测试时,获取当前测试端(1)屏幕状态;
将对应目标图片与当前测试端(1)屏幕的像素颜色进行比对,若比对结果一致,输出与该目标图片对应的测试脚本中的测试命令,并重复获取当前测试端(1)屏幕状态和将对应目标图片与当前测试端(1)屏幕的像素点颜色进行比对,直至测试完成。
2.根据权利要求1所述的基于图像识别技术的自动化测试方法,其特征在于,目标图片为测试端(1)屏幕状态的截选区域。
3.根据权利要求2所述的基于图像识别技术的自动化测试方法,其特征在于,在将对应目标图片与当前测试端(1)屏幕的像素点颜色进行比对时,还包括如下步骤:
读取当前目标图片的若干像素点颜色,组成基准区;
基于当前测试端(1)屏幕状态,建立若干个与基准区相同面积的识别区;
依次读取当前截取屏幕中若干个识别区的若干像素点颜色;
判断基准区内的像素点颜色与识别区内像素点颜色是否一致,若一致,输出与该目标图片对应的测试脚本中的测试命令。
4.根据权利要求3所述的基于图像识别技术的自动化测试方法,其特征在于,在判断基准区内的像素点颜色与识别区内像素点颜色是否一致时,比对相似度设定为小于1。
5.根据权利要求3所述的基于图像识别技术的自动化测试方法,其特征在于,在输出与该目标图片对应的测试脚本中的测试命令之后,还包括如下步骤:
截取当前测试端(1)屏幕状态的截屏图片;
基于当前截屏图片建立Y-X坐标系
读取与基准区对比一致的识别区在Y-X坐标系上的坐标;
计算识别区的中点坐标;
基于当前计算的中点坐标执行测试命令。
6.根据权利要求1所述的基于图像识别技术的自动化测试方法,其特征在于,在基于测试脚本进行测试和获取当前测试端(1)屏幕状态之间,还包括如下步骤:
发送一个许可请求至测试端(1);
接收测试端(1)反馈的允许指令,开始获取当前测试端(1)屏幕状态。
7.根据权利要求1所述的基于图像识别技术的自动化测试方法,其特征在于,在基于测试脚本进行测试时,监听测试端(1)屏幕状态,当监听到测试端(1)屏幕发生变化时,获取当前测试端(1)屏幕状态。
8.根据权利要求1所述的基于图像识别技术的自动化测试方法,其特征在于,在完成测试之后,获取当前测试端(1)屏幕状态,并将当前测试端(1)屏幕状态转化为文本格式进行储存。
9.一种基于图像识别技术的自动化测试系统,其特征在于:包括相互之间建立通讯的测试端(1)与计算机(2);
计算机(2)包括用于编写并管理测试命令的脚本执行器(3)和用于存储目标图片的预设图片库(4);
测试端(1)包括用于与计算机(2)进行通讯连接的远程控制服务模(5)和用于执行测试命令的测试模块(6)。

说明书全文

基于图像识别技术的自动化测试方法及系统

技术领域

[0001] 本发明涉及信息技术领域,特别涉及基于图像识别技术的自动化测试方法及系统。

背景技术

[0002] 随着人们的常用设备从桌面设备转移到移动设备,移动设备支持丰富的用户交互输入,比如通过触摸屏进行收拾操作、通过传感器(GPS、加速度计、气压计等)得到各种信号。一项关于移动应用程序开发的调查表明,目前移动应用的功能性测试实践主要依赖手工测试,而手工测试本身是低效且存在偏差的,从而,一些自动化测试软件的使用范围也逐步在扩大。
[0003] Monkey是Android SDK自带的测试工具,在测试过程中会向系统发送伪随机的用户事件流,如按键输入、触摸屏输入、手势输入等,实现对正在开发的应用程序进行压测试,也有日志输出。
[0004] Instrumentation是早期Google提供的Android自动化测试工具类,虽然在那时候JUnit也可以对Android进行测试,但是Instrumentation允许对应用程序做更为复杂的测试,甚至是框架层面的。通过Instrumentation可以模拟按键按下、抬起、屏幕点击、滚动等事件。Instrumentation是通过将主程序和测试程序运行在同一个进程来实现这些功能。
[0005] UiAutomator也是Android提供的自动化测试框架,基本上支持所有的Android事件操作,对比Instrumentation它不需要测试人员了解代码实现细节(可以用UiAutomatorviewer抓去App页面上的控件属性而不看源码)。基于Java,测试代码结构简单、编写容易、学习成本,一次编译,所有设备或模拟器都能运行测试,能跨App(比如:很多App有选择相册、打开相机拍照,这就是跨App测试)。
[0006] Monkey、Appium、和 UIAutomator等之类的框架可以实现一定程度的自动测试执行,但是,这些自动化框架在对移动App进行功能性测试时使用侵入式(部分或全部白盒)方法执行测试用例,很多情况下需要修改应用程序代码甚至操作系统,从而造成这些自动化无法进行,需要回归至人工测试,使得这些自动化测试软件的局限性较大。

发明内容

[0007] 本发明的目的是提供一种基于图像识别技术的自动化测试方法,可对移动App进行黑盒的功能性测试。
[0008] 本发明的上述技术目的是通过以下技术方案得以实现的:一种基于图像识别技术的自动化测试方法,包括如下步骤:
建立存储若干目标图片的预设图片库,生成以按预设顺序调用相应目标图片的测试脚本;
基于测试脚本进行测试时,获取当前测试端屏幕状态;
将对应目标图片与当前测试端屏幕的像素颜色进行比对,若比对结果一致,输出与该目标图片对应的测试脚本中的测试命令,并重复获取当前测试端屏幕状态和将对应目标图片与当前测试端屏幕的像素点颜色进行比对,直至测试完成。
[0009] 进一步的,目标图片为测试端屏幕状态的截选区域。
[0010] 进一步的,在将对应目标图片与当前测试端屏幕的像素点颜色进行比对时,还包括如下步骤:读取当前目标图片的若干像素点颜色,组成基准区;
基于当前测试端屏幕状态,建立若干个与基准区相同面积的识别区;
依次读取当前截取屏幕中若干个识别区的若干像素点颜色;
判断基准区内的像素点颜色与识别区内像素点颜色是否一致,若一致,输出与该目标图片对应的测试脚本中的测试命令。
[0011] 进一步的,在判断基准区内的像素点颜色与识别区内像素点颜色是否一致时,比对相似度设定为小于1。
[0012] 进一步的,在输出与该目标图片对应的测试脚本中的测试命令之后,还包括如下步骤:截取当前测试端屏幕状态的截屏图片;
基于当前截屏图片建立Y-X坐标系
读取与基准区对比一致的识别区在Y-X坐标系上的坐标;
计算识别区的中点坐标;
基于当前计算的中点坐标执行测试命令。
[0013] 进一步的,在基于测试脚本进行测试和获取当前测试端屏幕状态之间,还包括如下步骤:发送一个许可请求至测试端;
接收测试端反馈的允许指令,开始获取当前测试端屏幕状态。
[0014] 进一步的,在基于测试脚本进行测试时,监听测试端屏幕状态,当监听到测试端屏幕发生变化时,获取当前测试端屏幕状态。
[0015] 进一步的,在完成测试之后,获取当前测试端屏幕状态,并将当前测试端屏幕状态转化为文本格式进行储存。
[0016] 本发明的目的是提供一种基于图像识别技术的自动化测试系统,可对移动App进行黑盒的功能性测试。
[0017] 一种基于图像识别技术的自动化测试系统,其特征在于:包括相互之间建立通讯的测试端与计算机;计算机包括用于编写并管理测试命令的脚本执行器和用于存储目标图片的预设图片库;
测试端包括用于与计算机进行通讯连接的远程控制服务模和用于执行测试命令的测试模块。
[0018] 综上所述,本发明具有以下有益效果:用户在计算机端中的脚本执行器中进行脚本编写,并按预设顺序调用相应的目标图片,形成测试脚本,并通过获取当前的测试端屏幕状态与对应的目标图片进行像素点颜色比对,比对结果一致的情况下,输出与该目标图片对应的测试脚本中的测试命令,直至测试完成。
附图说明
[0019] 图1是实施例一中基于图像识别技术的自动化测试系统的系统框图;图2是实施例二中基于图像识别技术的自动化测试方法的流程框图;
图3是实施例二中基于图像识别技术的自动化测试方法的流程框图;
图4是实施例二中基于图像识别技术的自动化测试方法的流程框图;
图5是实施例二中基于图像识别技术的自动化测试方法的流程框图;
图6是实施例二中基于图像识别技术的自动化测试方法的流程框图。
[0020] 附图标记:1、测试端;2、计算机;3、脚本执行器;4、预设图片库;5、远程控制服务模块;6、测试模块。

具体实施方式

[0021] 以下结合附图并通过实施例对本发明作进一步详细说明。
[0022] 实施例1:一种基于图像识别技术的自动化测试系统,如图1所示,包括相互之间建立通讯的测试端1与计算机2,其中,测试端1和计算机2之间可通过WIFI或通过数据线进行连接,且,测试端1可为手机、平板电脑等安装有移动App的智能设备,计算机2包括用于编写并管理测试命令的脚本执行器3和用于存储目标图片的预设图片库4,该脚本执行器3嵌设于web客户端内,测试端1包括用于与计算机2进行通讯连接的远程控制服务模块5和用于执行测试命令的测试模块6。
[0023] 用户在web客户端登录,并通过web客户端选择在线的测试端1,脚本执行器3根据提供的工具函数编写脚本,其中,工具函数包括click(点击)、wait(等待)、type(输入)、dragdrop(拖拽)等,脚本编辑简单。
[0024] 例如,当用户在进行脚本执行器3中编写测试脚本时,测试命令为工具函数和填写在工具函数后的相应内容或对应调取预设图片库4中的目标图片,按对应移动App的逻辑编写若干条测试命令,从而形成测试脚本,测试模块6按照对应的测试命令依次响应对应动作。
[0025] 实施例2:一种基于图像识别技术的自动化测试方法,如图2所示,包括如下步骤:
步骤S100,建立存储若干目标图片的预设图片库4,生成以按预设顺序调用相应目标图片的测试脚本;
步骤S200,基于测试脚本进行测试时,获取当前测试端1屏幕状态;
步骤S300,将对应目标图片与当前测试端1屏幕的像素点颜色进行比对,若比对结果一致,输出与该目标图片对应的测试脚本中的测试命令,并重复获取当前测试端1屏幕状态和将对应目标图片与当前测试端1屏幕的像素点颜色进行比对,直至测试完成。
[0026] 根据步骤S100 S600所限定的技术方案,在进行对应移动App的功能性测试前,首~先需要根据该移动App的正确运行逻辑编写测试脚本,在编写测试脚本前,测试端1按正确操作逻辑进行一次操作,并对每一步操作时产生的屏幕变化进行截屏,为减少预存图片库中的存储内存,用户通过若干个截屏图片截选出若干个目标图片,并将若干个目标图片存储于预设图片库4中。
[0027] 在进行测试脚本编写时,用户调用脚本执行器3中的对应工具函数,并在工具函数后填写相应内容或对应预设图片库4中对应的目标图片组成一条测试命令,而若干条测试命令中调取的目标图片按照移动App的正确逻辑依次排列,从而使得若干条测试命令组成测试脚本,完成测试脚本的编写后,等待对测试端1进行自动化框架测试。
[0028] 等待测试端1和计算机2之间通过WIFI或数据线进行连接等待测试后,脚本执行器3对测试端1依次发送测试命令,同时,计算机2实时获取当前的测试端1屏幕状态,并将当前测试端1屏幕状态转化为图片格式,形成截屏图片,当计算机2接收到截屏图片后,将当前截屏图片与对应的目标图片进行像素点颜色比对,若在截屏图片中比对出与对应目标图片一致的像素点颜色区域,则发送该目标图片所对应的工具函数命令至测试端1,驱使测试端1执行相应动作。
[0029] 当测试端1执行相应的动作后,会发生页面变化,此时,计算机2再次获取当前测试端1屏幕状态,形成新的截屏图片,并将新的截屏图片与新的目标图片进行像素点颜色比对,若在新的截屏图片中比对出与新的目标图片一致的像素点颜色区域时,计算机2发送新的目标图片定应的工具函数命令至测试端1,驱使测试端1执行新的动作。
[0030] 如此重复,直至计算机2发送完成最后一条测试命令,完成测试。
[0031] 例如,如图3所示,测试脚本中为:click(图片1)
sleep(1)
wait(图片2)
click(图片3)
tpye(123456)
sleep(1)
则计算机2对测试端1的操作过程为:点击测试端1屏幕上图片1所在的区域,停缓1秒后,等待出现图片2的测试端1屏幕状态,点击图片3的所在的区域,并在点击图片3所在区域后,输入123456,停缓1S后,完成测试。
[0032] 若以上述测试脚本对淘宝进行测试为例的话,图片1相当于测试端页面上的淘宝图标,图片2相当于触发淘宝图标后进入淘宝客户端后的首页界面,图片3相当于淘宝客户端首页截面中购物车的图标,则可进入购物车页面。
[0033] 根据步骤S200,在基于测试脚本进行测试和获取当前测试端1屏幕状态之间,如图4所示,包括如下步骤:
S210, 发送一个许可请求至测试端1;
S220,接收测试端1反馈的允许指令,开始获取当前测试端1屏幕状态。
[0034] 根据步骤S210 S220所限定的技术方案,在需要对相应的测试端1进行测试时,测~试端1通过WIFI或数据线连接至web客户端,计算机2发送一个是否进行测试的许可请求至测试端1,测试端1反馈允许指令后,计算机2发送相应的测试指令至测试端1进行检测。
[0035] 且在步骤S200,在基于测试脚本进行测试后,启动和监听当前测试脚本执行时的测试端1屏幕状态的情况,当监听到具有新的测试端1屏幕状态产生时,将对应目标图片与当前测试端1屏幕的像素点颜色进行比对,从而减少当前测试端1屏幕与目标图片进行对比前的等待时间,缩短测试时间。
[0036] 根据步骤S300,在将对应目标图片与当前测试端1屏幕的像素点颜色进行比对时,如图5所示,包括如下步骤:S310,读取当前目标图片的若干像素点颜色,组成基准区;
S320,基于当前测试端1屏幕状态,建立若干个与基准区相同面积的识别区;
S330,依次读取当前截取屏幕中若干个识别区的若干像素点颜色;
S340,判断基准区内的像素点颜色与识别区内像素点颜色是否一致,若一致,输出与该目标图片对应的测试脚本中的测试命令。
[0037] 根据S310 S340所限定的技术方案,计算机2读取目标图片中的像素点颜色,并组~成基准区,其中,像素点颜色就是通常所说的RGB,在当前截屏图片上建立若干个与基准区面积相同的识别区,基于当前截屏图片,根据一定的顺序依次对若干个识别区分别与基准区的像素点颜色进行比对,例如按照从上到下、从左到右的顺序或其他相应扫描顺序都可实现。若对应识别区的像素点颜色与基准区的像素点颜色完全一致时,则输出与该目标图片对应的测试脚本中的测试命令。
[0038] 为防止因测试端1屏幕尺寸造成截取屏幕尺寸出现偏差而使得识别区无法和基准去完全对应,在设定比对相似度时,可设置为小于1的某一值,例如可设定为相似度为80%或90%。
[0039] 根据步骤S300,在输出与该目标图片对应的测试脚本中的测试命令之后,如图6所示,包括如下步骤:S410,截取当前测试端1屏幕状态的截屏图片;
S420,基于当前截屏图片建立Y-X坐标系;
S430,读取与基准区对比一致的识别区在Y-X坐标系上的坐标;
S440,计算识别区的中点坐标;
S450,基于当前计算的中点坐标执行测试命令。
[0040] 根据步骤S410 S450所限定的技术方案,通常,截屏图片为矩形,且该矩形的边长~分别平和竖直设置,以截取屏幕上的任意一点为原点建立Y-X坐标系,本实施例中,选定截屏图片的左下为原点为例,建立Y-X坐标系,则对应与基准区相同的识别区在Y-X坐标系中,且识别区的四角皆具有坐标值,分别为P1(X1,Y1)、P2(X1,Y2)、P3(X2,Y1)、P1(X2,Y2),中点为(M,N),M=(X2-X1)/2,N=(Y2-Y1)/2,确定中点坐标后,测试端1执行对应的测试指令。
[0041] 在完成测试脚本对移动App的测试后,获取当前测试端1屏幕状态,并将当前测试端1屏幕状态转化为文本格式进行储存。
[0042] 其中,基于图像对比库opencv,通过C++封装,暴露Java API供上层应用调用,摘取与测试脚本中末端测试命令中的目标图片一致的截取屏幕,通过图像对比库中封装的图片与摘取的图片进行比对,从而得到对应该截取屏幕的相应文本格式的信息,从而便于用户对测试结果进行采集和查看。
[0043] 本具体实施例仅仅是对本发明的解释,其并不是对本发明的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本发明的权利要求范围内都受到专利法的保护。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈