一种支持多机型多操作系统的图像识别自动化测试方法技术方案

技术编号:36506996 阅读:14 留言:0更新日期:2023-02-01 15:32
本发明专利技术公开了一种支持多机型多操作系统的图像识别自动化测试方法,包括步骤:得到第一终端屏幕截图和元素截图;判断第二终端的屏幕尺寸是否和截图尺寸一致,若不同,将第二终端屏幕进行截图、对第二终端屏幕截图图像进行预处理,并转换成中间分辨率;对第一终端屏幕截图进行预处理,将第一终端的元素截图的宽度和高度进行同比例缩放,调用底层图像识别算法精确查找截图元素中心点在第一终端屏幕的坐标位置,按照第二终端转成中间分辨率的系数将该位置坐标进行放缩,得出待操作元素在第二终端的坐标位置。本发明专利技术解决了软件测试行业现有方法定位的不稳定、不支持一张元素图片在多手机机型、多操作系统上执行的问题。多操作系统上执行的问题。

【技术实现步骤摘要】
一种支持多机型多操作系统的图像识别自动化测试方法


[0001]本专利技术属于自动化测试
,尤其涉及一种支持多机型多操作系统的图像识别自动化测试方法。

技术介绍

[0002]业界实现UI自动化测试,需要对Web控件以及APP的控件进行操作。传统自动化测试操作界面元素使用元素属性定位方式,对于手机端imageView中的元素,在Xpath节点未展示出来,传统元素定位不能进行操作,另外对于在没有赋予唯一属性的元素控件,业界通用解决方法是图片识别定位元素。现有图片识别定位元素的技术,如业界开源的airTest,sikuli框架存在以下缺点:
[0003]1.截图定位元素仅适用于当前截屏的手机。无法做到一套截图定位的脚本在多个手机机型如IOS、安卓的华为、小米等机型上使用,且仅能使用提供的工具截图。
[0004]2.截图定位元素仅适用于当前截图的电脑,无法做到截图定位的脚本在多台不同分辨率的windows电脑以及mac上运行。
[0005]3.截图更换位置、以及像素发生变化,会出现识别不稳定的缺点。
[0006]4.不支持相对区域截图精准识别定位的方式,如一个图片元素在屏幕中出现多次,传统的识别方式会出现多个,且顺序变化则会出现识别错误的情况。

技术实现思路

[0007]有鉴于此,本专利技术提出了一种支持多机型多操作系统的图像识别自动化测试方法,通过图片预处+图片位置算法+图片识别定位,结合元素定位方式,可支持一套脚本在任意手机机型、mac、windows系统上执行,当图片位置发生变化以及像素发生变化,非图片风格变化情况,仍然能精准定位到元素,进行相关的元素操作。
[0008]本专利技术公开的支持多机型多操作系统的图像识别自动化测试方法,包括以下步骤:
[0009]对当前的第一终端屏幕截图及待操作的元素进行截图,得到第一终端屏幕截图和元素截图,并记录第一终端的屏幕尺寸大小及分辨率;
[0010]将相关信息通过文件名称命名进行标识,当脚本在第二终端执行的时候,判断第二终端的屏幕尺寸是否和截图尺寸一致,若屏幕发生变化,则将第二终端屏幕进行截图、对第二终端屏幕截图图像进行预处理,并转换成固定大小的中间分辨率,记录转换为中间分辨率的缩放系数;
[0011]对第一终端屏幕截图进行预处理,转成固定大小的中间分辨率图片,并计算出缩小放大系数,同时将第一终端的元素截图的宽度和高度根据所述缩小放大系数进行同比例缩放,调用底层图像识别算法精确查找缩放后的截图元素中心点在第一终端屏幕截图的中间分辨率图片中的坐标位置,按照第二终端机型转成中间分辨率的缩放系数将该位置坐标进行放大或缩小,得出待操作元素在第二终端截屏图片转换为中间分辨率图片中的精确坐
标位置;
[0012]调用元素识别框架进行坐标的点击操作实现元素的精确操作。
[0013]进一步的,当终端屏幕为手机或平板电脑时,所述元素识别框架为appium,当终端屏幕为电脑屏幕时,所述元素识别框架为Selenium。
[0014]进一步的,中间分辨率小于第一终端屏幕分辨率和第二终端屏幕分辨率,中间分辨率图片的宽度和高度均小于第一终端屏幕截图图片和第二终端屏幕截图图片。
[0015]进一步的,当第一终端的元素截图在第二终端的屏幕中位置发生变更,或第一终端的元素截图的像素发生变化,不稳定时,根据图像相似度匹配算法,将与第一终端的元素截图相似度在预设值以上的第二终端的元素截图作为匹配的截图。
[0016]进一步的,所述方法公式计算如下:
[0017]int CenterX=(X+X+Width)/2
[0018]int CenterY=(Y+Y+Height)/2
[0019]其中X、Y、Width、Height分别为元素截图图片C的x坐标、y坐标、宽度、高度;
[0020]计算元素截图图片C的中心左边点相对于第一终端屏幕截图中间分辨率图片B的放大系数,算法为:
[0021]int x0=CenterX/图片B宽度
[0022]int y0=CenterY/图片B高度
[0023]计算图片C的中心在运行时的第二终端屏幕中的位置:
[0024]假定第二终端屏幕长度为RealX,高度为realY;计算在第二终端屏幕中待操作对象的可点击中心坐标(x、y、w、h):
[0025]int x=x0
×
realX;
[0026]int y=y0
×
realY;
[0027]int w=width
×
(第二终端屏幕宽度/第二终端屏幕截图中间分辨率图片A宽度);
[0028]int h=height
×
(第二终端屏幕高度/第二终端屏幕截图中间分辨率图片A高度)
[0029]其中x、y、w、h为待操作元素的x坐标、y坐标、宽度、高度。
[0030]进一步的,当待操作的元素在屏幕中存在多处时,截取每个待操作元素的父元素的图片,调用辅助工具查看每个父元素图片的Document节点属性,将父元素进行截图,在第一终端截屏图片中,对父元素进行截图,再对待操作的元素截图,调用opencv图片识别方法该元素的中心点在父元素的相对系数相对父元素定位的核心点,根据中间分辨率到第二终端屏幕的分辨率的缩放系数,得出待操作的元素中心点在第二终端屏幕中的位置,进行相关点击操作。
[0031]进一步的,运行时使用webdriver或appnium的元素截图功能,截取包含待查找元素的父元素图片A,再基于父元素图片A截取待操作元素的图片C,父元素图片A和截取待操作元素的图片C均转换为中间分辨率图片,得到A

和C


[0032]调用opencv图片识别算法从图片A

中查找图片C

的位置,得到图片C

的坐标信息(x、y、width、height),其中x,y为图片C

的左上角像素坐标,width和height分别为图片C

的宽度和高度;
[0033]计算图片C

基于父元素的中心坐标点:
[0034]int CenterX=(x+x+width)/2
[0035]int CenterY=(y+y+height)/2
[0036]计算图片C

基于父元素的坐标系数:
[0037]int x0=CenterX/图片A

宽度
[0038]int y0=CenterY/图片A

高度
[0039]使用Webdriver或appnium根据父元素的唯一属性获取定位到父元素当前屏幕坐标,获取到坐标(pX、pY、pWidth、pHeight),pX、pY、pWidth、pHeight分别为辅元素的屏幕x、y坐标、宽度、高度本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种支持多机型多操作系统的图像识别自动化测试方法,其特征在于,包括以下步骤:对当前的第一终端屏幕截图及待操作的元素进行截图,得到第一终端屏幕截图和元素截图,并记录第一终端的屏幕尺寸大小及分辨率;将相关信息通过文件名称命名进行标识,当脚本在第二终端执行的时候,判断第二终端的屏幕尺寸是否和截图尺寸一致,若屏幕发生变化,则将第二终端屏幕进行截图、对第二终端屏幕截图图像进行预处理,并转换成固定大小的中间分辨率,记录转换为中间分辨率的缩放系数;对第一终端屏幕截图进行预处理,转成固定大小的中间分辨率图片,并计算出缩小放大系数,同时将第一终端的元素截图的宽度和高度根据所述缩小放大系数进行同比例缩放,调用底层图像识别算法精确查找缩放后的截图元素中心点在第一终端屏幕截图的中间分辨率图片中的坐标位置,按照第二终端机型转成中间分辨率的缩放系数将该位置坐标进行放大或缩小,得出待操作元素在第二终端截屏图片转换为中间分辨率图片中的精确坐标位置;调用元素识别框架进行坐标的点击操作实现元素的精确操作。2.根据权利要求1所述的支持多机型多操作系统的图像识别自动化测试方法,其特征在于,当终端屏幕为手机或平板电脑时,所述元素识别框架为appium,当终端屏幕为电脑屏幕时,所述元素识别框架为Selenium。3.根据权利要求1所述的支持多机型多操作系统的图像识别自动化测试方法,其特征在于,中间分辨率小于第一终端屏幕分辨率和第二终端屏幕分辨率,中间分辨率图片的宽度和高度均小于第一终端屏幕截图图片和第二终端屏幕截图图片。4.根据权利要求1所述的支持多机型多操作系统的图像识别自动化测试方法,其特征在于,当第一终端的元素截图在第二终端的屏幕中位置发生变更,或第一终端的元素截图的像素发生变化,不稳定时,根据图像相似度匹配算法,将与第一终端的元素截图相似度在预设值以上的第二终端的元素截图作为匹配的截图。5.根据权利要求1所述的支持多机型多操作系统的图像识别自动化测试方法,其特征在于,所述方法公式计算如下:int CenterX=(X+X+Width)/2int CenterY=(Y+Y+Height)/2其中X、Y、Width、Height分别为元素截图图片C的x坐标、y坐标、宽度、高度;计算元素截图图片C的中心左边点相对于第一终端屏幕截图中间分辨率图片B的放大系数,算法为:int x0=CenterX/图片B宽度int y0=CenterY/图片B高度计算图片C的中心在运行时的第二终端屏幕中的位置:假定第二终端屏幕长度为RealX,高度为realY;计算在第二终端屏幕中待操作对象的可点击中心坐标(x、y、w、h):int x=x0
×
realX;int y=y0
×
realY;
int w=width
×
(第二终端屏幕宽度/第二终端屏幕截图中间分辨率图片A宽度);int h=height
×
(第二终端屏幕高度/第二终端屏幕截图中间分辨率图片A高度)其中x、y、w、h为待操作元素的x坐标、y坐标、宽度、高度。6.根据权利要求1所述的支持多机型多操作系统的图像识别自动化测试方法,其特征在于,当待操作的元素在屏幕中存在多处时,截取每个待操作元素的父元素的图片,调用辅助工具查看每个父元素图片的Document节点属性,将父元素进行截图,在第...

【专利技术属性】
技术研发人员:谭鹏飞
申请(专利权)人:湖南兴盛优选电子商务有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1