CN106033387B - 测试flash内部控件的方法和装置 - Google Patents
测试flash内部控件的方法和装置 Download PDFInfo
- Publication number
- CN106033387B CN106033387B CN201510106265.4A CN201510106265A CN106033387B CN 106033387 B CN106033387 B CN 106033387B CN 201510106265 A CN201510106265 A CN 201510106265A CN 106033387 B CN106033387 B CN 106033387B
- Authority
- CN
- China
- Prior art keywords
- coordinate
- flash
- screen
- target
- target widget
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种测试flash内部控件的方法和装置。其中,该方法包括:获取被测试flash所在页面的WebView;通过WebView定位flash的中心点在初始屏幕内的绝对坐标;其中,该初始屏幕为设计flash时采用的屏幕;获取flash内的目标控件相对上述中心点的相对坐标;根据中心点的绝对坐标和目标控件的相对坐标,计算目标控件在初始屏幕内的绝对坐标;按照目标控件在初始屏幕内的绝对坐标对目标控件进行测试。通过本发明,提高了flash测试的全面性。
Description
技术领域
本发明涉及测试领域,具体而言,涉及测试flash内部控件的方法和装置。
背景技术
随着电子设备的多样化,不同的设备屏幕分辨率通常不一样,对应不同电子设备,flash程序也需要有所调整,以和其设备相适应,达到较好的播放效果。这样就需要预先对flash进行跨屏幕或跨分辨率测试。目前,主流的网页测试框架包括;(1)Selenium+Webdriver,其是用于测试Web应用程序用户界面(UI)的常用框架。(2)Cucumber+Watir,Cucumber是用接近自然语言的方式来描述业务行为,Watir可以认为是操作网页的模拟。当使用Cucumber+Watir实现自动化时,通过正则表达式匹配将Cucumber的行为描述与Watir的网页操作步骤耦合起来。上述两种网页测试框架支持的定位方式通常都是ID(标识)、name(名称)、className(类名)、text(文本)和xpath,其只能定位到某个flash控件的中心坐标,flash对于浏览器页面来说是作为一个整体的,而swf格式的flash内部的按钮通常是绘制的,没有类似的ID等信息,所以上述测试框架要找到flash里面某一个绘制的控件的坐标位置比较困难。
发明人在研究中发现,现有的flash网页测试框架技术无法对flash内绘制的按钮进行定位,导致测试的内容不全面。
发明内容
有鉴于此,本发明实施例的目的在于提供一种测试flash内部控件的方法和装置,以提高flash测试的全面性。
第一方面,本发明实施例提供了一种测试flash内部控件的方法,包括:获取被测试flash所在页面的WebView;通过WebView定位flash的中心点在初始屏幕内的绝对坐标;其中,该初始屏幕为设计flash时采用的屏幕;获取flash内的目标控件相对上述中心点的相对坐标;根据中心点的绝对坐标和目标控件的相对坐标,计算目标控件在初始屏幕内的绝对坐标;按照目标控件在初始屏幕内的绝对坐标对目标控件进行测试。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,通过WebView定位flash的中心点在初始屏幕内的绝对坐标包括:通过注解与反射方式在WebView中查找flash的元素;根据查找到的flash的元素获取flash的中心点在初始屏幕内的绝对坐标。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,获取flash内的目标控件相对中心点的相对坐标包括:对flash截图;以中心点为原点,为flash的截图建立坐标系,其中坐标系的横轴和纵轴分别与flash的长边和宽边平行;在坐标系下,计算目标控件的横坐标x和纵坐标y;获取flash在初始屏幕下的宽度A和长度B;设置目标控件相对中心点的相对坐标为[2x/A,2y/B]。
结合第一方面的上述实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,上述方法还包括:根据初始屏幕的分辨率和目标屏幕的分辨率,将目标控件在初始屏幕内的绝对坐标转换为在目标屏幕内的绝对坐标;按照目标控件在目标屏幕内的绝对坐标对目标控件进行测试。
结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,根据初始屏幕的分辨率和目标屏幕的分辨率,将目标控件在初始屏幕内的绝对坐标转换为在目标屏幕内的绝对坐标包括:设置目标控件在目标屏幕内的绝对坐标为[X0+2x*(ScreenWidth/ScreenWidthStd),Y0+2y*(ScreenHeight/Screen HeightStd)];其中,[X0,Y0]为中心点在初始屏幕内的绝对坐标,[x,y]为目标控件在以中心点为原点的坐标系下的横纵坐标,ScreenWidthStd×ScreenHeightStd为初始屏幕的分辨率,ScreenWidth×ScreenHeight为目标屏幕的分辨率。
第二方面,本发明实施例还提供了一种测试flash内部控件的装置,包括:网页视图获取模块,用于获取被测试flash所在页面的WebView;中心点坐标定位模块,用于通过网页视图获取模块获取的WebView定位flash的中心点在初始屏幕内的绝对坐标;其中,初始屏幕为设计flash时采用的屏幕;相对坐标获取模块,用于获取flash内的目标控件相对中心点的相对坐标;绝对坐标计算模块,用于根据中心点坐标定位模块定位的中心点的绝对坐标和相对坐标获取模块获取的目标控件的相对坐标,计算目标控件在初始屏幕内的绝对坐标;测试模块,用于按照绝对坐标计算模块计算的目标控件在初始屏幕内的绝对坐标对目标控件进行测试。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,中心点坐标定位模块包括:元素查找单元,用于通过注解与反射方式在WebView中查找flash的元素;中心点坐标获取单元,用于根据查找到的flash的元素获取flash的中心点在初始屏幕内的绝对坐标。
结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,相对坐标获取模块包括:截图单元,用于对flash截图;坐标系建立单元,用于以中心点为原点,为flash的截图建立坐标系,其中坐标系的横轴和纵轴分别与flash的长边和宽边平行;坐标计算单元,用于在坐标系建立单元建立的坐标系下,计算目标控件的横坐标x和纵坐标y;长宽获取单元,用于获取flash在初始屏幕下的宽度A和长度B;坐标设置单元,用于设置目标控件相对中心点的相对坐标为[2x/A,2y/B]。
结合第二方面以上实施方式,本发明实施例提供了第二方面的第三种可能的实施方式,其中,上述装置还包括:坐标转换模块,用于根据初始屏幕的分辨率和目标屏幕的分辨率,将目标控件在初始屏幕内的绝对坐标转换为在目标屏幕内的绝对坐标;跨设备测试模块,用于按照坐标转换模块得到的目标控件在目标屏幕内的绝对坐标,对目标控件进行测试。
结合第二方面,本发明实施例提供了第二方面的第四种可能的实施方式,其中,坐标转换模块包括:坐标转换单元,用于设置目标控件在目标屏幕内的绝对坐标为:[X0+2x*(ScreenWidth/ScreenWidthStd),Y0+2y*(ScreenHeight/Screen HeightStd)];其中,[X0,Y0]为中心点在初始屏幕内的绝对坐标,[x,y]为目标控件在以中心点为原点的坐标系下的横纵坐标,ScreenWidthStd×ScreenHeightStd为初始屏幕的分辨率,ScreenWidth×ScreenHeight为目标屏幕的分辨率。
本发明实施例提供的方法和装置,先获取flash所在页面的WebView,在WebView内定位flash的中心点在初始屏幕内的绝对坐标,然后再获取目标控件与该中心点的相对坐标,通过中心点的绝对坐标、目标控件与该中心点的相对坐标得到目标控件在初始屏幕内的绝对坐标,这样便可以确定出目标控件的具体位置,进而能够对该目标控件进行操作,完成测试内容。这种定位目标控件的方式满足了flash的测试需求,提升了测试的全面性,保证了flash应用的有效性。
进一步,本发明实施例提供的上述方法和装置,还可以在进行跨设备(也称为跨分辨率)的flash测试时,能够在目标屏幕内定位到flash内的目标控件,进而能够完善跨设备下的flash测试,增强了测试功能。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例所提供的一种测试flash内部控件的方法流程图;
图2示出了本发明实施例所提供的目标控件相对坐标的获取方法示意图;
图3示出了本发明实施例所提供的flash内部控件跨手机坐标转换的方法示意图;
图4示出了本发明实施例所提供的一种测试flash内部控件的装置的结构框图;
图5示出了本发明实施例所提供的另一种测试flash内部控件的装置的结构框图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
考虑到相关技术中的测试工具均无法对flash里面的按钮进行定位,也就无法通过点击、长按或其它操作对内部按钮进行测试,导致flash测试不全面,基于此,本发明实施例提供了一种测试flash内部控件的方法和装置,下面通过实施例进行描述。
参见图1所示的测试flash内部控件的方法流程图,该方法可以由flash测试装置执行,包括以下步骤:
步骤S102,获取被测试flash所在页面的WebView(网页视图);其中,flash所在页面可以是带有flash的浏览器,也可以是带有flash的购物网站,或者是带有flash的应用app,当然,flash所在页面还可以是带有flash的游戏页面,例如带有flash的游戏app等,即本发明实施例中的被测试flash所在页面包括了带有flash的页面,该页面不局限于以上浏览器、购物网站或游戏等页面。
步骤S104,通过上述WebView定位flash的中心点在初始屏幕内的绝对坐标;其中,该初始屏幕为设计flash时采用的屏幕;
本发明实施例中提到的各个屏幕的长宽均指其分辨率对应的像素值;每个屏幕自身均有一个坐标系,即屏幕左上角的点为原点,长边和宽边分别为横纵坐标轴,坐标轴的单位用像素点表示;
步骤S106,获取该flash内的目标控件相对上述中心点的相对坐标;其中,该目标控件指当前欲对其进行测试的控件(也可以称为按钮);
步骤S108,根据中心点的绝对坐标和目标控件的相对坐标,计算该目标控件在初始屏幕内的绝对坐标;
步骤S110,按照该目标控件在初始屏幕内的绝对坐标对该目标控件进行测试。
本发明实施例的方法先获取flash所在页面的WebView,在WebView内定位flash的中心点在初始屏幕内的绝对坐标,然后再获取目标控件与该中心点的相对坐标,通过中心点的绝对坐标、目标控件与该中心点的相对坐标得到目标控件在初始屏幕内的绝对坐标,这样便可以确定出目标控件的具体位置,进而能够对该目标控件进行操作,完成测试内容。这种定位目标控件的方式满足了flash的测试需求,提升了测试的全面性,保证了flash应用的有效性。
上述方法在得到WebView后,可以通过注解和反射的方式查找到网页的flash元素,然后计算出flash在初始屏幕上的绝对坐标(不同设备,得到的值不同),该绝对坐标可以在得到WebView之后,通过解析WebView的HTML(HyperText Mark-up Language,超文本标记语言)获取;基于此,上述通过WebView定位flash的中心点在初始屏幕内的绝对坐标可以包括:通过注解与反射方式在WebView中查找flash的元素,根据查找到的flash的元素获取flash的中心点在初始屏幕内的绝对坐标。
其中,上述反射指允许运行中的java程序对自身进行检查,并能够直接操作程序的内部属性,例如使用它能获得java类中各成员的名称并显示出来。上述注解指java源代码的元数据,基本语法就是@后面跟注解的名称。分为预定义注解和自定义注解,注解是用来描述源代码的数据,通常需要注解提供数据成员。
具体实现时,上述获取flash内的目标控件相对中心点的相对坐标可以包括:对flash截图;以中心点为原点,为flash的截图建立坐标系,其中坐标系的横轴和纵轴分别与flash的长边和宽边平行;在该坐标系下,计算目标控件的横坐标x和纵坐标y;获取flash在初始屏幕下的宽度A和长度B;设置目标控件相对中心点的相对坐标为[2x/A,2y/B]。参见图2所示的目标控件相对坐标的获取方法示意图,其中,O为中心点,即坐标系的原点,点F为目标控件所在位置,其在坐标系中的坐标为(x,y),flash在初始屏幕下的宽度为A,长度为B,则目标控件相对中心点的相对坐标为[2x/A,2y/B]。
考虑到flash会在各个不同的分辨率下播放,即涉及到跨设备播放的场景,因此本实施例在上述方法的基础上,还可以包括:根据上述初始屏幕的分辨率和目标屏幕的分辨率,将目标控件在初始屏幕内的绝对坐标转换为在目标屏幕内的绝对坐标;按照目标控件在目标屏幕内的绝对坐标对目标控件进行测试。例如:对flash针对第一种型号的手机进行了相关测试,需要转换为针对第二种型号的手机的测试,此时,可以根据第一种型号的手机和第二种型号的手机的屏幕分辨率,将目标控件在第一种型号的手机屏幕内的绝对坐标转换为在第二种型号的手机屏幕内的绝对坐标。具体坐标转换可以采用:设置目标控件在目标屏幕内的绝对坐标为[X0+2x*(ScreenWidth/ScreenWidthStd),Y0+2y*(ScreenHeight/Screen HeightStd)];其中,[X0,Y0]为中心点在初始屏幕内的绝对坐标,[x,y]为目标控件在以中心点为原点的坐标系下的横纵坐标,ScreenWidthStd×ScreenHeightStd为初始屏幕的分辨率,ScreenWidth×ScreenHeight为目标屏幕的分辨率。
通过上述跨设备定位flash内部的控件的方式,能够实现跨设备、跨分辨率地进行flash自动化测试,上述测试方式可以应用于手机或PC设备中,下面以Android手机的浏览器为例,说明测试flash内部控件的具体过程。
第一步,获取浏览器的WebView;
利用ActivityInstrumentationTestCase2这个类启动浏览器的Application(应用),通过getInstrumentation().getTargetContext()得到该应用的context(正文),进行Activity的注入;在这个类(继承ActivityInstrumentationTestCase2这个类的初始化类)中创建了对象webViewFetcher去获取浏览器的WebView;
通过CurrentWebViewFetcher接口获得浏览器的WebView,该方式直接继承了ActivityInstrumentationTestCase2这个JUnit测试的启动类,一开始通过instrument进行测试的时候就去获取浏览器的WebView。其中,CurrentWebViewFetchere接口的实现会重写getCurrentWebView的方法返回一个WebView对象,并赋值给webViewFetcher。
获取的WebView中包括网页dom树上各个节点在屏幕上排版显示的绝对坐标,元素的长宽等重要信息。
上述Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务。Activity中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通过setContentView(View)来显示指定控件。在一个android应用中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应,Activity之间通过Intent进行通信。
第二步,在WebView中查找flash元素;
当得到了浏览器的WebView之后,就意味着可以知道网页的基本元素在屏幕上排版的位置信息,这个位置信息可以通过Java反射和注解两种机制得到。编译器对注解有三种策略:package java.lang.annotation;
本实施例定义WebFind的时候是使用RUNTIME的策略,定义WebFind注解,里面有id查找/xpath查找/textName查找/tagName查找/textContent查找方式,接着就可以使用注解来查找需要的元素了。
本发明实施例通过反射的方式得到WebView的class(类),再通过注解的方式找到对应的网页flash元素。
第三步,建立flash中心坐标系,flash内部元素的相对坐标转绝对坐标;
首先,获取到flash在设备上的绝对坐标值,即Flash的中心点在初始设备上的绝对坐标,初始设备的屏幕左上角为坐标原点。具体采用下述函数得到:
最终都是获取到view元素(flash的中心点)在屏幕上的坐标;
接着以flash的中心点为原点建立坐标系,该坐标系称为原点坐标系,进行flash内部元素的相对坐标转绝对坐标:
(1)获取以下几个值:
选取标准手机的长宽为:[ScreenWidthStd,ScreenHeightStd];这里的标准手机相当于初始设备,即上述初始屏幕对应的设备;
整个flash在作为标准手机上的宽和高:[Width,Height](后面会化简约去);
flash中心点在标准手机的屏幕上计算出来的绝对坐标[x0,y0];
需转化的内部控件button在原点坐标系中的坐标[x,y](以标准手机上的值为准);
flash测试需要转换到另外一台手机上的长和宽:[ScreenWidth,ScreenHeight];
(2)计算flash内部控件在flash原点坐标系的相对坐标,这里flash的内部控件坐标用相对坐标的形式来表示,可以通过截图去计算,参见图3所示的flash内部控件跨手机坐标转换的方法示意图,其中,O为中心点,即原点坐标系的原点,点A为内部控件所在位置,其在坐标系中的坐标为[x,y],flash在标准手机下的宽度为Width,长度为Height。推导计算过程如下:
1、A点的相对flash中心的坐标百分比:[2x/Width,2y/Height];
2、flash在转换后的手机屏幕下的长宽(指在另外一个手机上整个flash显示时的长和宽,可能存在比例拉伸)为:
[(ScreenWidth/ScreenWidthStd)*Width,(ScreenHeight/ScreenHei ghtStd)*Height];
转换后的A点的屏幕坐标为:
[x0+(2x/Width)*(ScreenWidth/ScreenWidthStd)*Width,y0-(2y/He ight)*(ScreenHeight/ScreenHeightStd)*Height];其中,纵坐标为y0-(2y/Height)*(ScreenHeight/ScreenHeightStd)*Height,是因为A点再O点之上,而屏幕坐标系的原点在左上角,所以取减号。
上述屏幕坐标化简即为(注意x0,y0是在不同手机上通过查找flash时定位的值,x,y是带符号的):
[X0+2x*(ScreenWidth/ScreenWidthStd),Y0-2y*(ScreenHeight/ScreenHeightStd)]
这个算法的依据是:在flash内部,button控件相对于flash的坐标位置是不变的,不会因为flash在不同的分辨率下的压缩拉伸而受到影响。
通过上述计算公式,将flash的内部控件基于flash中心原点的相对坐标转化为具体的设备上屏幕上的绝对坐标[特殊地,如果只需要点击整个flash,那么偏移就是0,直接通过WebView获取的flash中心点的坐标就能进行定位],通过这样的方式能精准的点击到flash上的各个控件,之后,可以通过android view的MotionEvent将对flash的长按,点击,拖拽时间进行操作,完成相关测试,实现了flash的跨手机,跨分辨率的自动化测试。
由上述内容可以看出,本发明实施例中的测试flash内部控件的方法主要包括以下步骤:
(1)在浏览器中安装APK(Android Package的缩写,即Android安装包(apk))得到放置flash的WebView;
(2)通过注解和反射机制得到flash元素在屏幕中的绝对坐标;
(3)通过截图计算flash各个元素相对于flash中心原点的坐标;
(4)在(3)处得到的坐标数据通过转化算法得到flash在不同屏幕上的绝对坐标;
(5)根据上述绝对坐标对flash内部控件进行点击、拖拽、长按等操作,进行自动化测试。
通过上述方式,可以实现flash的跨手机、跨分辨率进行自动化测试,上述方法不受限制于手机浏览器的flash自动化测试,对于PC的flash自动化测试同样适用,通过获取到浏览器的WebView,然后定位到flash元素在屏幕上的坐标,以此为中心原点进行内部控件的坐标转化,即可以定位到内部的flash元素在不同设备上的坐标,由此进行自动化测试。
对应于上述方法,本发明实施例还提供了一种测试flash内部控件的装置,参见图4,该装置包括以下模块:
网页视图获取模块41,用于获取被测试flash所在页面的网页视图WebView;
中心点坐标定位模块42,用于通过网页视图获取模块41获取的WebView定位flash的中心点在初始屏幕内的绝对坐标;其中,该初始屏幕为设计flash时采用的屏幕;
相对坐标获取模块43,用于获取flash内的目标控件相对上述中心点的相对坐标;
绝对坐标计算模块44,用于根据中心点坐标定位模块42定位的中心点的绝对坐标和相对坐标获取模块43获取的目标控件的相对坐标,计算目标控件在初始屏幕内的绝对坐标;
测试模块45,用于按照绝对坐标计算模块44计算的目标控件在初始屏幕内的绝对坐标对目标控件进行测试。
本发明实施例的装置先获取flash所在页面的WebView,在WebView内定位flash的中心点在初始屏幕内的绝对坐标,然后再获取目标控件与该中心点的相对坐标,通过中心点的绝对坐标、目标控件与该中心点的相对坐标得到目标控件在初始屏幕内的绝对坐标,这样便可以确定出目标控件的具体位置,进而能够对该目标控件进行操作,完成测试内容。这种定位目标控件的方式满足了flash的测试需求,提升了测试的全面性,保证了flash应用的有效性。
具体实现时,上述中心点坐标定位模块42可以包括:元素查找单元,用于通过注解与反射方式在WebView中查找flash的元素;中心点坐标获取单元,用于根据查找到的flash的元素获取flash的中心点在初始屏幕内的绝对坐标。该实现方式简单,得到的绝对坐标准确。
优选地,上述相对坐标获取模块43可以包括以下:
截图单元,用于对flash截图;
坐标系建立单元,用于以中心点为原点,为flash的截图建立坐标系,其中该坐标系的横轴和纵轴分别与flash的长边和宽边平行;
坐标计算单元,用于在上述坐标系建立单元建立的坐标系下,计算目标控件的横坐标x和纵坐标y;
长宽获取单元,用于获取flash在初始屏幕下的宽度A和长度B;
坐标设置单元,用于设置目标控件相对中心点的相对坐标为[2x/A,2y/B]。
这种相对坐标获取方式,在flash进行缩放过程中,目标控件与flash中心点的相对位置不变,提升了定位的准确性。
考虑到flash会在各个不同的分辨率下播放,即涉及到跨设备播放的场景,因此本实施例在上述这种的基础上,还可以包括以下模块:坐标转换模块,用于根据上述初始屏幕的分辨率和目标屏幕的分辨率,将目标控件在初始屏幕内的绝对坐标转换为在目标屏幕内的绝对坐标;跨设备测试模块,用于按照坐标转换模块得到的目标控件在目标屏幕内的绝对坐标,对目标控件进行测试。
具体地,上述坐标转换模块包括:坐标转换单元,用于设置目标控件在目标屏幕内的绝对坐标为:[X0+2x*(ScreenWidth/ScreenWidthStd),Y0+2y*(ScreenHeight/ScreenHeightStd)];其中,[X0,Y0]为中心点在初始屏幕内的绝对坐标,[x,y]为目标控件在以中心点为原点的坐标系下的横纵坐标,ScreenWidthStd×ScreenHeightStd为初始屏幕的分辨率,ScreenWidth×ScreenHeight为目标屏幕的分辨率。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
上述技术通过注解和反射的方式获取WebView的方式得到flash在屏幕上的绝对坐标;而传统的方式是通过selenium等方式获取到flash的坐标,但这个坐标对于框架来说是透明的,自动化测试脚本中并不能利用这个坐标值进行内部控件的定位;
同时,上述技术以flash的中心点为原点,把flash内部的相对坐标转化成在设备上的绝对坐标,实现了跨手机、跨分辨率的自动化测试。
上述技术可以应用在手机上,实现flash的自动化测试,还可以推广到PC上和其他使用WebView作为flash容器的apk上进行测试。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
参见图5,本发明实施例还提供一种测试flash内部控件的装置100,包括:处理器50,存储器51,总线52和通信接口53,所述处理器50、通信接口53和存储器51通过总线52连接;处理器50用于执行存储器51中存储的可执行模块,例如计算机程序。
其中,存储器51可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口53(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线52可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器51用于存储程序,所述处理器50在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器50中,或者由处理器50实现。
处理器50可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器50中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器50可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器51,处理器50读取存储器51中的信息,结合其硬件完成上述方法的步骤。
本发明实施例还提供了一种测试flash内部控件的方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种测试flash内部控件的方法,其特征在于,包括:
获取被测试flash所在页面的网页视图WebView;
通过所述WebView定位所述flash的中心点在初始屏幕内的绝对坐标;其中,所述初始屏幕为设计所述flash时采用的屏幕;
获取所述flash内的目标控件相对所述中心点的相对坐标;
根据所述中心点的绝对坐标和所述目标控件的相对坐标,计算所述目标控件在所述初始屏幕内的绝对坐标;
按照所述目标控件在所述初始屏幕内的绝对坐标对所述目标控件进行测试。
2.根据权利要求1所述的方法,其特征在于,通过所述WebView定位所述flash的中心点在初始屏幕内的绝对坐标包括:
通过注解与反射方式在所述WebView中查找所述flash的元素;
根据查找到的所述flash的元素获取所述flash的中心点在初始屏幕内的绝对坐标。
3.根据权利要求1所述的方法,其特征在于,获取所述flash内的目标控件相对所述中心点的相对坐标包括:
对所述flash截图;
以所述中心点为原点,为所述flash的截图建立坐标系,其中所述坐标系的横轴和纵轴分别与所述flash的长边和宽边平行;
在所述坐标系下,计算所述目标控件的横坐标x和纵坐标y;
获取所述flash在所述初始屏幕下的宽度A和长度B;
设置所述目标控件相对所述中心点的相对坐标为[2x/A,2y/B]。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
根据所述初始屏幕的分辨率和目标屏幕的分辨率,将所述目标控件在所述初始屏幕内的绝对坐标转换为在所述目标屏幕内的绝对坐标;
按照所述目标控件在所述目标屏幕内的绝对坐标对所述目标控件进行测试。
5.根据权利要求4所述的方法,其特征在于,根据所述初始屏幕的分辨率和目标屏幕的分辨率,将所述目标控件在所述初始屏幕内的绝对坐标转换为在所述目标屏幕内的绝对坐标包括:
设置所述目标控件在所述目标屏幕内的绝对坐标为[X0+2x*(ScreenWidth/ScreenWidthStd),Y0+2y*(ScreenHeight/ScreenHeightStd)];
其中,[X0,Y0]为所述中心点在所述初始屏幕内的绝对坐标,[x,y]为所述目标控件在以所述中心点为原点的坐标系下的横纵坐标,ScreenWidthStd×ScreenHeightStd为所述初始屏幕的分辨率,ScreenWidth×ScreenHeight为所述目标屏幕的分辨率;ScreenWidthStd为所述初始屏幕的宽,ScreenHeightStd为所述初始屏幕的长;ScreenWidth为所述目标屏幕的宽,ScreenHeight为所述目标屏幕的长。
6.一种测试flash内部控件的装置,其特征在于,包括:
网页视图获取模块,用于获取被测试flash所在页面的网页视图WebView;
中心点坐标定位模块,用于通过所述网页视图获取模块获取的所述WebView定位所述flash的中心点在初始屏幕内的绝对坐标;其中,所述初始屏幕为设计所述flash时采用的屏幕;
相对坐标获取模块,用于获取所述flash内的目标控件相对所述中心点的相对坐标;
绝对坐标计算模块,用于根据所述中心点坐标定位模块定位的所述中心点的绝对坐标和所述相对坐标获取模块获取的所述目标控件的相对坐标,计算所述目标控件在所述初始屏幕内的绝对坐标;
测试模块,用于按照所述绝对坐标计算模块计算的所述目标控件在所述初始屏幕内的绝对坐标对所述目标控件进行测试。
7.根据权利要求6所述的装置,其特征在于,所述中心点坐标定位模块包括:
元素查找单元,用于通过注解与反射方式在所述WebView中查找所述flash的元素;
中心点坐标获取单元,用于根据查找到的所述flash的元素获取所述flash的中心点在初始屏幕内的绝对坐标。
8.根据权利要求6所述的装置,其特征在于,所述相对坐标获取模块包括:
截图单元,用于对所述flash截图;
坐标系建立单元,用于以所述中心点为原点,为所述flash的截图建立坐标系,其中所述坐标系的横轴和纵轴分别与所述flash的长边和宽边平行;
坐标计算单元,用于在所述坐标系建立单元建立的所述坐标系下,计算所述目标控件的横坐标x和纵坐标y;
长宽获取单元,用于获取所述flash在所述初始屏幕下的宽度A和长度B;
坐标设置单元,用于设置所述目标控件相对所述中心点的相对坐标为[2x/A,2y/B]。
9.根据权利要求6至8中任一项所述的装置,其特征在于,所述装置还包括:
坐标转换模块,用于根据所述初始屏幕的分辨率和目标屏幕的分辨率,将所述目标控件在所述初始屏幕内的绝对坐标转换为在所述目标屏幕内的绝对坐标;
跨设备测试模块,用于按照所述坐标转换模块得到的所述目标控件在所述目标屏幕内的绝对坐标,对所述目标控件进行测试。
10.根据权利要求9所述的装置,其特征在于,所述坐标转换模块包括:坐标转换单元,用于设置所述目标控件在所述目标屏幕内的绝对坐标为:
[X0+2x*(ScreenWidth/ScreenWidthStd),Y0+2y*(ScreenHeight/ScreenHeightStd)];其中,[X0,Y0]为所述中心点在所述初始屏幕内的绝对坐标,[x,y]为所述目标控件在以所述中心点为原点的坐标系下的横纵坐标,ScreenWidthStd×ScreenHeightStd为所述初始屏幕的分辨率,ScreenWidth×ScreenHeight为所述目标屏幕的分辨率;ScreenWidthStd为所述初始屏幕的宽,ScreenHeightStd为所述初始屏幕的长;ScreenWidth为所述目标屏幕的宽,ScreenHeight为所述目标屏幕的长。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510106265.4A CN106033387B (zh) | 2015-03-11 | 2015-03-11 | 测试flash内部控件的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510106265.4A CN106033387B (zh) | 2015-03-11 | 2015-03-11 | 测试flash内部控件的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106033387A CN106033387A (zh) | 2016-10-19 |
CN106033387B true CN106033387B (zh) | 2018-09-11 |
Family
ID=57149768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510106265.4A Active CN106033387B (zh) | 2015-03-11 | 2015-03-11 | 测试flash内部控件的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106033387B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108280026B (zh) * | 2018-01-23 | 2019-03-22 | 网易(杭州)网络有限公司 | 游戏自动化测试方法及装置、存储介质、电子设备 |
CN110231959A (zh) * | 2018-03-06 | 2019-09-13 | 优酷网络技术(北京)有限公司 | 一种操控指令的同步方法、系统及控制中心 |
CN109189678A (zh) * | 2018-08-22 | 2019-01-11 | 中国平安人寿保险股份有限公司 | 一种网页功能验证方法、计算机可读存储介质及服务器 |
CN110543278B (zh) * | 2019-08-19 | 2021-08-13 | 广州点云科技有限公司 | 一种跨设备屏幕坐标的适配方法、装置以及存储介质 |
CN111311687B (zh) * | 2020-01-21 | 2022-12-02 | 上海万物新生环保科技集团有限公司 | 一种手机屏幕像素点的空间位置检测方法及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7043608B2 (en) * | 2003-04-28 | 2006-05-09 | Intel Corporation | Methods and apparatus to manage a cache memory |
US7735004B2 (en) * | 2004-01-30 | 2010-06-08 | Canon Kabushiki Kaisha | Layout control method, layout control apparatus, and layout control program |
CN102129405A (zh) * | 2010-01-13 | 2011-07-20 | 微软公司 | 跨浏览器交互性测试 |
CN103823758A (zh) * | 2014-03-13 | 2014-05-28 | 北京金山网络科技有限公司 | 一种浏览器测试方法及装置 |
CN103885755A (zh) * | 2012-12-19 | 2014-06-25 | 腾讯科技(深圳)有限公司 | 自绘控件的屏幕适配实现方法及实现装置 |
CN104268083A (zh) * | 2014-09-30 | 2015-01-07 | 上海联影医疗科技有限公司 | 软件自动化测试方法和装置 |
CN104391797A (zh) * | 2014-12-09 | 2015-03-04 | 北京奇虎科技有限公司 | Gui控件的识别方法和装置 |
-
2015
- 2015-03-11 CN CN201510106265.4A patent/CN106033387B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7043608B2 (en) * | 2003-04-28 | 2006-05-09 | Intel Corporation | Methods and apparatus to manage a cache memory |
US7735004B2 (en) * | 2004-01-30 | 2010-06-08 | Canon Kabushiki Kaisha | Layout control method, layout control apparatus, and layout control program |
CN102129405A (zh) * | 2010-01-13 | 2011-07-20 | 微软公司 | 跨浏览器交互性测试 |
CN103885755A (zh) * | 2012-12-19 | 2014-06-25 | 腾讯科技(深圳)有限公司 | 自绘控件的屏幕适配实现方法及实现装置 |
CN103823758A (zh) * | 2014-03-13 | 2014-05-28 | 北京金山网络科技有限公司 | 一种浏览器测试方法及装置 |
CN104268083A (zh) * | 2014-09-30 | 2015-01-07 | 上海联影医疗科技有限公司 | 软件自动化测试方法和装置 |
CN104391797A (zh) * | 2014-12-09 | 2015-03-04 | 北京奇虎科技有限公司 | Gui控件的识别方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106033387A (zh) | 2016-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9697183B2 (en) | Client side page processing | |
CN106033387B (zh) | 测试flash内部控件的方法和装置 | |
US9098481B2 (en) | Increasing accuracy in determining purpose of fields in forms | |
CN106033471B (zh) | 一种处理表单的方法和装置 | |
Garrido et al. | Refactoring for usability in web applications | |
US20160124914A1 (en) | Page Processing for Mobile App | |
US20130326333A1 (en) | Mobile Content Management System | |
CN105868096B (zh) | 用于在浏览器中显示web页面测试结果的方法、装置及设备 | |
CN111444696B (zh) | 报表展示与编辑方法及装置 | |
CN105354013A (zh) | 应用界面渲染方法及装置 | |
US20130042190A1 (en) | Systems and methods for remote dashboard image generation | |
CN105824830B (zh) | 一种显示页面的方法、客户端及设备 | |
CN111258577B (zh) | 页面渲染方法、装置、电子设备和存储介质 | |
CN109460546A (zh) | 表单生成方法、装置及电子设备 | |
CN106980619B (zh) | 数据查询方法及装置 | |
CN106814998B (zh) | 表单序列化方法及装置 | |
CN106951495A (zh) | 用于呈现信息的方法和装置 | |
US20160103815A1 (en) | Generating mobile web browser views for applications | |
US20060106844A1 (en) | Method and system for client-side manipulation of tables | |
CN113535587B (zh) | 目标应用检测方法、装置及计算机设备 | |
CN110968813A (zh) | 一种索引页面展示方法及装置 | |
CN105447198A (zh) | 页面脚本便捷导入的方法及装置 | |
US20070288854A1 (en) | Reusable XForms processor | |
CN105589918B (zh) | 一种提取页面信息的方法及装置 | |
Dinku | React. js vs. Next. js |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200622 Address after: Room 301, building 2, No. 16 Keyun Road, Tianhe District, Hangzhou City, Zhejiang Province Patentee after: Alibaba (China) Co.,Ltd. Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping B radio 14 floor tower square Patentee before: GUANGZHOU UCWEB COMPUTER TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |