CN113791786B - 基于ios***的app页面控件自动化方法及装置 - Google Patents
基于ios***的app页面控件自动化方法及装置 Download PDFInfo
- Publication number
- CN113791786B CN113791786B CN202111116834.5A CN202111116834A CN113791786B CN 113791786 B CN113791786 B CN 113791786B CN 202111116834 A CN202111116834 A CN 202111116834A CN 113791786 B CN113791786 B CN 113791786B
- Authority
- CN
- China
- Prior art keywords
- application program
- page
- hash value
- hash
- http server
- 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
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012360 testing method Methods 0.000 claims abstract description 59
- 238000013507 mapping Methods 0.000 claims abstract description 38
- 230000008569 process Effects 0.000 claims abstract description 19
- 230000008859 change Effects 0.000 claims description 29
- 238000004088 simulation Methods 0.000 claims description 13
- 238000004891 communication Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 4
- 238000011056 performance test Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 3
- 230000035945 sensitivity Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012827 research and development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012015 optical character recognition Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Debugging And Monitoring (AREA)
Abstract
基于IOS***的APP页面控件自动化方法及装置,启动移动设备的屏幕朗读,以暴露待测试的应用程序的界面元素;在移动设备构建HTTP服务器框架,对移动设备进行域名映射,通过HTTP服务器框架进行域名映射后的移动设备和测试电脑端的通信;对移动设备运行待测试应用程序的过程进行屏幕快照,对屏幕快照遍历查询页面属性数据,测试电脑端通过HTTP服务器框架向移动设备发送待测试的应用程序操控请求;根据需要查询的页面属性数据找到对应页面属性数据的控件元素,根据控件元素的坐标信息进行页面触发操作。本发明实现移动设备端的自动化,测试电脑端和移动设备能直接进行通信,无需进行端口映射,灵敏度高,测试效率高,可扩展性强。
Description
技术领域
本发明涉及一种基于IOS***的APP页面控件自动化方法及装置,属于软件测试技术领域。
背景技术
Flutter是Google推出的跨平台UI框架,可以实现一套代码,多端复用。Flutter技术的引入,使得原来需要为Android、IOS编写两套代码,现在仅需编写一套代码,提高了研发效率,虽然Flutter技术能够提高研发效率,但仍需对不同平台的Flutter页面进行测试。
现有技术中,存在较多的测试方案,其中,Flutter driver缺少定位工具,代码维护成本高,需要使用不常见的Dart语言,并且要花费较多的时间理解项目代码。而AI图片识别结合光学字符识别的方式,只能作为辅助,没有底层出发的控件识别快;难以准确的计算页面加载,且有一定的出错情况。现阶段,手机端的应用程序测试,缺少一个自动化的框架,电脑端和手机端的通信需要进行端口映射,灵敏度较低,测试效率也不高,无法实现电脑端和手机端的直接通信。如何实现APP页面控件特别是flutter页面控件自动化,并且增加应用程序测试的可扩展性是一个亟待解决的技术问题。
发明内容
为此,本发明提供一种基于IOS***的APP页面控件自动化方法及装置,以解决手机端的应用程序测试,缺少一个自动化的框架,灵敏度和测试效率低,难以应对复杂多变场景的问题。
为了实现上述目的,本发明提供如下技术方案:基于IOS***的APP页面控件自动化方法,包括以下步骤:
基于IOS***的APP页面控件自动化方法,包括以下步骤:
将待测试的应用程序安装在移动设备,所述移动设备运行有IOS***,启动所述移动设备的屏幕朗读,以暴露待测试的应用程序的界面元素;
在所述移动设备构建跨域和域名解析的HTTP服务器框架,对所述移动设备进行域名映射,通过所述HTTP服务器框架进行域名映射后的移动设备和测试电脑端的通信;
对所述移动设备运行待测试应用程序的过程进行屏幕快照,对所述屏幕快照进行遍历查询页面属性数据,所述测试电脑端向所述移动设备的HTTP服务器框架发送待测试的应用程序操控请求;
根据需要查询的页面属性数据找到对应页面属性数据的控件元素,根据所述控件元素的坐标信息进行页面属性触发操作。
作为基于IOS***的APP页面控件自动化方法的优选方案,通过GCD Web Server构建HTTP服务器框架,在移动设备上实现跨域的HTTP服务器;
所述测试电脑端通过跨域HTTP服务器和域名解析向所述移动设备发送通信请求,所述移动设备的HTTP服务器向测试电脑端返回响应结果。
作为基于IOS***的APP页面控件自动化方法的优选方案,采用Snapshot对所述移动设备运行待测试应用程序的过程进行屏幕快照,以Snap变量作为根节点继续递归遍历所有的元素节点,遍历时取到每个节点的各个子节点的各个属性值;
将应用程序的当前页面控件属性映射为哈希值,将所述哈希值作为当前页面的唯一标识符;获取待测试应用程序的实时只读镜像模拟应用程序运行事件;
将得到的各个子节点的各个属性值进行拼接,将拼接后的字符串映射为所述哈希值;通过哈希值是否变化判断应用程序的界面变化情况。
作为基于IOS***的APP页面控件自动化方法的优选方案,所述哈希值还包括屏幕快照的二进制哈希或屏幕快照base64的字符串哈希,通过包含屏幕快照的二进制哈希或屏幕快照base64的字符串哈希的哈希值判断应用程序的界面变化情况。
作为基于IOS***的APP页面控件自动化方法的优选方案,判断应用程序的界面变化情况的步骤包括:
获取页面哈希,判断哈希值是否变化;如果变化,判断当前哈希值是否已存在于哈希表中,若当前哈希值不存在于哈希表中,将当前页面的哈希结果作为所述哈希值;
根据应用程序的界面变化情况进行应用程序的页面加载性能测试。
作为基于IOS***的APP页面控件自动化方法的优选方案,当所述哈希值中包含测试应用程序的启动页加载时间时,通过判断启动页的哈希值是否出现判断启动页是否加载完毕。
作为基于IOS***的APP页面控件自动化方法的优选方案,通过正则表达式将应用程序促销页面的页面倒计时字符串去除。
作为基于IOS***的APP页面控件自动化方法的优选方案,将所述移动设备中构建的HTTP服务器伪装成IOS***允许持续运行的应用程序;
所述持续运行的应用程序包括音乐播放器或地图定位软件。
本发明还提供一种基于IOS***的APP页面控件自动化装置,将待测试的应用程序安装在移动设备,所述移动设备运行有IOS***,包括:
页面元素暴露模块,用于启动所述移动设备的屏幕朗读,以暴露待测试的应用程序的界面元素;
服务器构建模块,用于在所述移动设备构建跨域和域名解析的HTTP服务器框架,对所述移动设备进行域名映射,通过所述HTTP服务器框架进行域名映射后的移动设备和测试电脑端的通信;
应用程序处理模块,对所述移动设备运行待测试应用程序的过程进行屏幕快照,对所述屏幕快照进行遍历查询页面属性数据,所述测试电脑端向所述移动设备的HTTP服务器框架发送待测试的应用程序操控请求;
程序操控模块,用于根据需要查询的页面属性数据找到对应页面属性数据的控件元素,根据所述控件元素的坐标信息进行页面属性触发操作,获取待测试应用程序的实时只读镜像模拟应用程序运行事件。
作为基于IOS***的APP页面控件自动化装置的优选方案,通过GCD Web Server构建HTTP服务器框架,在移动设备上实现跨域的HTTP服务器;
所述测试电脑端通过跨域HTTP服务器和域名解析向所述移动设备发送通信请求,所述移动设备的HTTP服务器向测试电脑端返回响应结果。
作为基于IOS***的APP页面控件自动化装置的优选方案,采用Snapshot对所述移动设备运行待测试应用程序的过程进行屏幕快照,以Snap变量作为根节点继续递归遍历所有的元素节点,遍历时取到每个节点的各个子节点的各个属性值;
将应用程序的当前页面控件属性映射为哈希值,将所述哈希值作为当前页面的唯一标识符;获取待测试应用程序的实时只读镜像模拟应用程序运行事件;
将得到的各个子节点的各个属性值进行拼接,将拼接后的字符串映射为所述哈希值;通过哈希值是否变化判断应用程序的界面变化情况。
作为基于IOS***的APP页面控件自动化装置的优选方案,所述哈希值还包括屏幕快照的二进制哈希或屏幕快照base64的字符串哈希,通过包含屏幕快照的二进制哈希或屏幕快照base64的字符串哈希的哈希值判断应用程序的界面变化情况。
作为基于IOS***的APP页面控件自动化装置的优选方案,判断应用程序的界面变化情况的步骤包括:
获取页面哈希,判断哈希值是否变化;如果变化,判断当前哈希值是否已存在于哈希表中,若当前哈希值不存在于哈希表中,将当前页面的哈希结果作为所述哈希值;
根据应用程序的界面变化情况进行应用程序的页面加载性能测试。
作为基于IOS***的APP页面控件自动化装置的优选方案,当所述哈希值中包含测试应用程序的启动页加载时间时,通过判断启动页的哈希值是否出现判断启动页是否加载完毕。
作为基于IOS***的APP页面控件自动化装置的优选方案,通过正则表达式将应用程序促销页面的页面倒计时字符串去除。
作为基于IOS***的APP页面控件自动化装置的优选方案,将所述移动设备中构建的HTTP服务器伪装成IOS***允许持续运行的应用程序;
所述持续运行的应用程序包括音乐播放器或地图定位软件。
本发明具有如下优点:将待测试的应用程序安装在移动设备,移动设备运行有IOS***,启动移动设备的屏幕朗读,以暴露待测试的应用程序的界面元素;在移动设备构建HTTP服务器框架,对移动设备进行域名映射,通过HTTP服务器框架进行域名映射后的移动设备和测试电脑端的通信;对移动设备运行待测试应用程序的过程进行屏幕快照,对屏幕快照进行遍历查询页面属性数据,测试电脑端通过HTTP服务器框架向移动设备发送待测试的应用程序操控请求;根据需要查询的页面属性数据找到对应页面属性数据的控件元素,根据控件元素的坐标信息进行页面属性触发操作。获取待测试应用程序的实时只读镜像模拟应用程序运行事件;将应用程序的当前页面控件属性映射为哈希值,将哈希值作为当前页面的唯一标识符,通过哈希值是否变化判断应用程序的界面变化情况,根据应用程序的界面变化情况进行应用程序的页面加载性能测试。本发明实现移动设备端的自动化,测试电脑端和移动设备能够直接进行通信,无需进行端口映射,灵敏度高,测试效率高,可扩展性强,通过本发明的自动化框架,可以进行页面加载时间测试,可以搜索Flutter,html5等元素,无需人工介入,突破***后台180s限制。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
图1为本发明实施例中提供的基于IOS***的APP页面控件自动化方法流程示意图;
图2为本发明实施例中提供的基于IOS***的APP页面控件自动化中移动设备和测试电脑端通信示意图;
图3为本发明实施例中提供的基于IOS***的APP页面控件自动化中移动设备和测试电脑端通信示意图;
图4为本发明实施例中提供的基于IOS***的APP页面控件自动化实时只读镜像模拟应用程序运行事件示意图;
图5为本发明实施例中提供的基于IOS***的APP页面控件自动化装置示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
参见图1、图2和图3,提供基于IOS***的APP页面控件自动化方法,包括以下步骤:
S1、将待测试的应用程序安装在移动设备,所述移动设备运行有IOS***,启动所述移动设备的屏幕朗读,以暴露待测试的应用程序的界面元素;
S2、在所述移动设备构建跨域和域名解析的HTTP服务器框架,对所述移动设备进行域名映射,通过所述HTTP服务器框架进行域名映射后的移动设备和测试电脑端的通信;
S3、对所述移动设备运行待测试应用程序的过程进行屏幕快照,对所述屏幕快照进行遍历查询页面属性数据,所述测试电脑端向所述移动设备的HTTP服务器框架发送待测试的应用程序操控请求;
S4、根据需要查询的页面属性数据找到对应页面属性数据的控件元素,根据所述控件元素的坐标信息进行页面属性触发操作。
本实施例中,基于XCtestWD开源框架进行设计,XCtestWD在xcode中执行xcuitest时启动一个监听服务器,可通过外部发送命令来创建待测APP对应会话控制,并启动APP,同时也能够实现dump tree和依据XML路径语言,id等来定位某个控件并操作这些控件。
具体的,web driver agent是由Facebook开发的一套开源框架,用于端对端的UI测试,能同时支持模拟器和真机。由于web driver agent采用object c语言编写,而XCtestWD是将wda翻译成了swift语言,故本发明的技术手段也可以应用在web driveragent上。
本实施例中,当启动移动设备的屏幕朗读,可以暴露待测试的应用程序的Flutter界面元素,同时也支持非Flutter界面。Flutter是Google开源的构建用户界面(UI)工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。Flutter开源、免费,拥有宽松的开源协议,适合商业项目。目前,Flutter已推出稳定的2.0版本。
具体的,IOS***中具有屏幕朗读辅助功能,通过打开屏幕朗读功能之后,用户可以通过屏幕朗读程序朗读所有可以看到的文字。而本发明通过启动具有IOS***的移动设备的屏幕朗读辅助功能,可以实现应用程序的Flutter元素暴露,而这一技术手段的使用,是传统测试技术中均未发现或意识到的。
本实施例中,通过GCD Web Server构建HTTP服务器框架,在移动设备上实现跨域的HTTP服务器;
所述测试电脑端通过跨域HTTP服务器和域名解析向所述移动设备发送通信请求,所述移动设备的HTTP服务器向测试电脑端返回响应结果。
具体的,GCD Web Server是基于GCD的轻量级服务器框架,用于内嵌到Mac OS或者IOS***的应用中提供HTTP1.1的服务。使用GCD Web Server可以在移动设备应用中搭建一个HTTP服务器,无需端口映射,进而实现测试电脑端的快速访问;更加灵敏高效。通过域名映射;更加高效方便的跨域通过移动设备的名称直接进行电脑测试端的通信。
辅助图4,本实施例中,采用Snapshot对所述移动设备运行待测试应用程序的过程进行屏幕快照,以Snap变量作为根节点继续递归遍历所有的元素节点,遍历时取到每个节点的各个子节点的各个属性值;
将应用程序的当前页面控件属性映射为哈希值,将所述哈希值作为当前页面的唯一标识符;获取待测试应用程序的实时只读镜像模拟应用程序运行事件;
将得到的各个子节点的各个属性值进行拼接,将拼接后的字符串映射为所述哈希值;通过哈希值是否变化判断应用程序的界面变化情况。
具体的,获取待测试应用程序的实时只读镜像模拟应用程序运行事件。使用Snapshot对所述移动设备运行待测试应用程序的过程进行屏幕快照,其核心代码如下:
“internal static var app=XCUIApplication(privateWithPath:nil,bundleID:"jiexin.hec.com");
let snap=app!.mainWindowSnapshot()”。
然后以Snap这个变量作为根节点,可以继续通过snap.children继续不断递归遍历它下面所有的元素节点,遍历时可以取到每个节点的各个子节点的各个属性值:
childsnapshot.wdName(),childsnapshot.wdLabel(),childsnapshot.wdType等。
通过把所有这些可以得到的属性值的字符串拼接起来,采用哈希算法映射为一个哈希值,比如用MD5算法映射为哈希。可以不断的去查询屏幕前哈希值是否变化来判断界面的变化。
具体的,在页面加载过程中如果页面不存在图片元素,可以优先用属性值串在一起的哈希,属性串在一起的哈希比图片哈希更快,更灵敏。在页面加载过程,如果图片数量较多,那么当属性串在一起的哈希不变的情况下,还需要考虑图片的哈希变化,这样可以把图片渲染的情况考虑进去。
具体的,判断应用程序的界面变化情况的步骤包括:
获取页面哈希,判断哈希值是否变化;如果变化,判断当前哈希值是否已存在于哈希表中,若当前哈希值不存在于哈希表中,将当前页面的哈希结果作为所述哈希值。比如hashtable[key]=value,key就是当前哈希值,value就是当前的耗费的时间,若当前哈希值存在于哈希表直接就返回hashtable[key]。
本实施例中,所述哈希值还包括屏幕快照的二进制哈希或屏幕快照base64的字符串哈希,通过包含屏幕快照的二进制哈希或屏幕快照base64的字符串哈希的哈希值判断应用程序的界面变化情况。将屏幕快照的二进制哈希考虑到哈希值内,可以使测试结果更加的准确。
本实施例中,当所述哈希值中包含测试应用程序的启动页加载时间时,通过判断启动页的哈希值是否出现判断启动页是否加载完毕。
具体的,对于应用程序本身而言,很多页面是一闪而过的,如果一直等页面哈希不再变化为止的话,获得的哈希值不是想要的结果,比如启动页面一闪而过后,页面哈希会继续不断变化,直到启动页加载完成为止,这个时候的结果是把启动页加载时间也包含进去,必须判断启动页面的哈希值是否出现,出现的那一瞬间代表加载完毕。
本实施例中,通过正则表达式将应用程序促销页面的页面倒计时字符串去除。
具体的,对于应用程序本身而言,有的应用程序中某些页面是促销页面,比如页面中存在局部区域,类似还有一天56分36秒这样的时间在倒计时,这样会导致整个页面哈希值也在变化,页面其实也是早就加载完毕,而之前是把搜索的所有元素各种属性值拼接在一起形成哈希值,为了处理这种情形,可以用正则表达式,比如满足1天56分36秒此类样式,可以通过正则表达式判断如果符合这种形式的正则表达式,这个文本属性的哈希结果就不考虑在哈希值内。
本实施例中,将所述移动设备中构建的HTTP服务器伪装成IOS***允许持续运行的应用程序;
所述持续运行的应用程序包括音乐播放器或地图定位软件。
具体的,由于IOS***后台运行会在180秒使程序在后台退出,为了使HTTP服务器能持续的运行,满足测试端电脑与移动设备的持续通信需求,将HTTP服务器伪装成IOS***后台允许一直运行的播放无声音乐的音乐播放器。也可以将HTTP服务器伪装成IOS***后台允许一直运行的地图定位软件。
综上所述,本发明将待测试的应用程序安装在移动设备,移动设备运行有IOS***,启动移动设备的屏幕朗读,以暴露待测试的应用程序的界面元素;在移动设备构建HTTP服务器框架,对移动设备进行域名映射,通过HTTP服务器框架进行域名映射后的移动设备和测试电脑端的通信;对移动设备运行待测试应用程序的过程进行屏幕快照,对屏幕快照进行遍历查询页面属性数据,测试电脑端通过HTTP服务器框架向移动设备发送待测试的应用程序操控请求;根据需要查询的页面属性数据找到对应页面属性数据的控件元素,根据控件元素的坐标信息进行页面属性触发操作。获取待测试应用程序的实时只读镜像模拟应用程序运行事件;将应用程序的当前页面控件属性映射为哈希值,将哈希值作为当前页面的唯一标识符,通过哈希值是否变化判断应用程序的界面变化情况,根据应用程序的界面变化情况进行应用程序的页面加载性能测试。本发明实现移动设备端的自动化,测试电脑端和移动设备能够直接进行通信,无需进行端口映射,灵敏度高,测试效率高,可扩展性强,通过本发明的自动化框架,可以进行页面加载时间测试,可以搜索Flutter,html5等元素,无需人工介入,突破***后台180s限制。
实施例2
参见图5,本发明实施例2还提供一种基于IOS***的APP页面控件自动化装置,将待测试的应用程序安装在移动设备,所述移动设备运行有IOS***,包括:
页面元素暴露模块1,用于启动所述移动设备的屏幕朗读,以暴露待测试的应用程序的界面元素;
服务器构建模块2,用于在所述移动设备构建跨域和域名解析的HTTP服务器框架,对所述移动设备进行域名映射,通过所述HTTP服务器框架进行域名映射后的移动设备和测试电脑端的通信;
应用程序处理模块3,对所述移动设备运行待测试应用程序的过程进行屏幕快照,对所述屏幕快照进行遍历查询页面属性数据,所述测试电脑端向所述移动设备的HTTP服务器框架发送待测试的应用程序操控请求;
程序操控模块4,用于根据需要查询的页面属性数据找到对应页面属性数据的控件元素,根据所述控件元素的坐标信息进行页面属性触发操作,获取待测试应用程序的实时只读镜像模拟应用程序运行事件。
本实施例中,通过GCD Web Server构建HTTP服务器框架,在移动设备上实现跨域的HTTP服务器;
所述测试电脑端通过跨域HTTP服务器和域名解析向所述移动设备发送通信请求,所述移动设备的HTTP服务器向测试电脑端返回响应结果。
本实施例中,采用Snapshot对所述移动设备运行待测试应用程序的过程进行屏幕快照,以Snap变量作为根节点继续递归遍历所有的元素节点,遍历时取到每个节点的各个子节点的各个属性值;
将应用程序的当前页面控件属性映射为哈希值,将所述哈希值作为当前页面的唯一标识符;获取待测试应用程序的实时只读镜像模拟应用程序运行事件;
将得到的各个子节点的各个属性值进行拼接,将拼接后的字符串映射为所述哈希值;通过哈希值是否变化判断应用程序的界面变化情况。
本实施例中,所述哈希值还包括屏幕快照的二进制哈希或屏幕快照base64的字符串哈希,通过包含屏幕快照的二进制哈希或屏幕快照base64的字符串哈希的哈希值判断应用程序的界面变化情况。
本实施例中,判断应用程序的界面变化情况的步骤包括:
获取页面哈希,判断哈希值是否变化;如果变化,判断当前哈希值是否已存在于哈希表中,若当前哈希值不存在于哈希表中,将当前页面的哈希结果作为所述哈希值;
根据应用程序的界面变化情况进行应用程序的页面加载性能测试。
本实施例中,当所述哈希值中包含测试应用程序的启动页加载时间时,通过判断启动页的哈希值是否出现判断启动页是否加载完毕。。
本实施例中,通过正则表达式将应用程序促销页面的页面倒计时字符串去除。
本实施例中,将所述移动设备中构建的HTTP服务器伪装成IOS***允许持续运行的应用程序;
所述持续运行的应用程序包括音乐播放器或地图定位软件。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本申请实施例1中的方法实施例基于同一构思,其带来的技术效果与本申请方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
Claims (6)
1.基于IOS***的APP页面控件自动化方法,其特征在于,包括以下步骤:
将待测试的应用程序安装在移动设备,所述移动设备运行有IOS***,启动所述移动设备的屏幕朗读,以暴露待测试的应用程序的界面元素;
在所述移动设备构建跨域和域名解析的HTTP服务器框架,对所述移动设备进行域名映射,通过所述HTTP服务器框架进行域名映射后的移动设备和测试电脑端的通信;
对所述移动设备运行待测试应用程序的过程进行屏幕快照,对所述屏幕快照进行遍历查询页面属性数据,所述测试电脑端向所述移动设备的HTTP服务器框架发送待测试的应用程序操控请求;
根据需要查询的页面属性数据找到对应页面属性数据的控件元素,根据所述控件元素进行页面属性触发操作;
采用Snapshot对所述移动设备运行待测试应用程序的过程进行屏幕快照,以Snap变量作为根节点继续递归遍历所有的元素节点,遍历时取到每个节点的各个子节点的各个属性值;
将应用程序的当前页面控件属性映射为哈希值,将所述哈希值作为当前页面的唯一标识符;获取待测试应用程序的实时只读镜像模拟应用程序运行事件;
将得到的各个子节点的各个属性值进行拼接,将拼接后的字符串映射为所述哈希值;通过哈希值是否变化判断应用程序的界面变化情况;
所述哈希值还包括屏幕快照的二进制哈希或屏幕快照base64的字符串哈希,通过包含屏幕快照的二进制哈希或屏幕快照base64的字符串哈希的哈希值判断应用程序的界面变化情况;
判断应用程序的界面变化情况的步骤包括:
获取页面哈希,判断哈希值是否变化;如果变化,判断当前哈希值是否已存在于哈希表中,若当前哈希值不存在于哈希表中,将当前页面的哈希结果作为所述哈希值;
根据应用程序的界面变化情况进行应用程序的页面加载性能测试;
当所述哈希值中包含测试应用程序的启动页加载时间时,通过判断启动页的哈希值是否出现判断启动页是否加载完毕。
2.根据权利要求1所述的基于IOS***的APP页面控件自动化方法,其特征在于,通过GCD Web Server构建HTTP服务器框架,在移动设备上实现跨域的HTTP服务器;
所述测试电脑端通过跨域HTTP服务器和域名解析向所述移动设备发送通信请求,所述移动设备的HTTP服务器向测试电脑端返回响应结果。
3.根据权利要求1所述的基于IOS***的APP页面控件自动化方法,其特征在于,通过正则表达式将应用程序促销页面的页面倒计时字符串去除。
4.根据权利要求1所述的基于IOS***的APP页面控件自动化方法,其特征在于,将所述移动设备中构建的HTTP服务器伪装成IOS***允许持续运行的应用程序。
5.基于IOS***的APP页面控件自动化装置,将待测试的应用程序安装在移动设备,所述移动设备运行有IOS***,其特征在于,包括:
页面元素暴露模块,用于启动所述移动设备的屏幕朗读,以暴露待测试的应用程序的界面元素;
服务器构建模块,用于在所述移动设备构建跨域和域名解析的HTTP服务器框架,对所述移动设备进行域名映射,通过所述HTTP服务器框架进行域名映射后的移动设备和测试电脑端的通信;
应用程序处理模块,对所述移动设备运行待测试应用程序的过程进行屏幕快照,对所述屏幕快照进行遍历查询页面属性数据,所述测试电脑端向所述移动设备的HTTP服务器框架发送待测试的应用程序操控请求;
程序操控模块,用于根据需要查询的页面属性数据找到对应页面属性数据的控件元素,根据所述控件元素的坐标信息进行页面属性触发操作,获取待测试应用程序的实时只读镜像模拟应用程序运行事件;
采用Snapshot对所述移动设备运行待测试应用程序的过程进行屏幕快照,以Snap变量作为根节点继续递归遍历所有的元素节点,遍历时取到每个节点的各个子节点的各个属性值;
将应用程序的当前页面控件属性映射为哈希值,将所述哈希值作为当前页面的唯一标识符;获取待测试应用程序的实时只读镜像模拟应用程序运行事件;
将得到的各个子节点的各个属性值进行拼接,将拼接后的字符串映射为所述哈希值;通过哈希值是否变化判断应用程序的界面变化情况;
所述哈希值还包括屏幕快照的二进制哈希或屏幕快照base64的字符串哈希,通过包含屏幕快照的二进制哈希或屏幕快照base64的字符串哈希的哈希值判断应用程序的界面变化情况;
判断应用程序的界面变化情况的步骤包括:
获取页面哈希,判断哈希值是否变化;如果变化,判断当前哈希值是否已存在于哈希表中,若当前哈希值不存在于哈希表中,将当前页面的哈希结果作为所述哈希值;
根据应用程序的界面变化情况进行应用程序的页面加载性能测试;
当所述哈希值中包含测试应用程序的启动页加载时间时,通过判断启动页的哈希值是否出现判断启动页是否加载完毕。
6.根据权利要求要求5所述的基于IOS***的APP页面控件自动化装置,其特征在于,通过GCD Web Server构建HTTP服务器框架,在移动设备上实现跨域的HTTP服务器;
所述测试电脑端通过跨域HTTP服务器和域名解析向所述移动设备发送通信请求,所述移动设备的HTTP服务器向测试电脑端返回响应结果;
通过正则表达式将应用程序促销页面的页面倒计时字符串去除;
将所述移动设备中构建的HTTP服务器伪装成IOS***允许持续运行的应用程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111116834.5A CN113791786B (zh) | 2021-09-23 | 2021-09-23 | 基于ios***的app页面控件自动化方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111116834.5A CN113791786B (zh) | 2021-09-23 | 2021-09-23 | 基于ios***的app页面控件自动化方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113791786A CN113791786A (zh) | 2021-12-14 |
CN113791786B true CN113791786B (zh) | 2024-01-19 |
Family
ID=79184213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111116834.5A Active CN113791786B (zh) | 2021-09-23 | 2021-09-23 | 基于ios***的app页面控件自动化方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113791786B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006089387A1 (en) * | 2005-02-22 | 2006-08-31 | Nextair Corporation | Extending access to local software of a wireless device |
CN1926546A (zh) * | 2004-03-03 | 2007-03-07 | 英国电讯有限公司 | 数据处理*** |
CN101242336A (zh) * | 2008-03-13 | 2008-08-13 | 杭州华三通信技术有限公司 | 远程访问内网Web服务器的方法及Web代理服务器 |
CN101894136A (zh) * | 2010-06-13 | 2010-11-24 | 优视科技有限公司 | 基于移动终端的页面刷新处理方法及其*** |
CN103412820A (zh) * | 2013-08-30 | 2013-11-27 | 曙光信息产业(北京)有限公司 | Web***中的页面的测试方法和装置 |
CN107729230A (zh) * | 2017-09-18 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种基于控件模式下的web自动化测试装置及测试方法 |
CN109783356A (zh) * | 2018-12-14 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 一种自动化测试方法及终端 |
CN110287111A (zh) * | 2019-06-21 | 2019-09-27 | 深圳前海微众银行股份有限公司 | 一种用户界面的测试用例生成方法及装置 |
CN110647740A (zh) * | 2018-06-27 | 2020-01-03 | 复旦大学 | 一种基于tpm的容器可信启动方法及装置 |
CN110781091A (zh) * | 2019-10-31 | 2020-02-11 | 北京奇艺世纪科技有限公司 | 应用程序的测试方法、装置、电子设备及存储介质 |
CN111324535A (zh) * | 2020-02-18 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 一种控件异常检测方法、装置和计算机设备 |
CN111694744A (zh) * | 2020-06-11 | 2020-09-22 | 安然 | 一种基于monkey源码的测试开法方法 |
CN111949522A (zh) * | 2020-07-31 | 2020-11-17 | 中国工商银行股份有限公司 | 用户界面自动化测试方法及装置 |
CN112241502A (zh) * | 2020-10-16 | 2021-01-19 | 北京字节跳动网络技术有限公司 | 一种页面加载检测方法及装置 |
CN112783764A (zh) * | 2021-01-08 | 2021-05-11 | 展讯通信(上海)有限公司 | 应用程序的自动化测试方法及装置、存储介质、终端 |
-
2021
- 2021-09-23 CN CN202111116834.5A patent/CN113791786B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1926546A (zh) * | 2004-03-03 | 2007-03-07 | 英国电讯有限公司 | 数据处理*** |
WO2006089387A1 (en) * | 2005-02-22 | 2006-08-31 | Nextair Corporation | Extending access to local software of a wireless device |
CN101242336A (zh) * | 2008-03-13 | 2008-08-13 | 杭州华三通信技术有限公司 | 远程访问内网Web服务器的方法及Web代理服务器 |
CN101894136A (zh) * | 2010-06-13 | 2010-11-24 | 优视科技有限公司 | 基于移动终端的页面刷新处理方法及其*** |
CN103412820A (zh) * | 2013-08-30 | 2013-11-27 | 曙光信息产业(北京)有限公司 | Web***中的页面的测试方法和装置 |
CN107729230A (zh) * | 2017-09-18 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种基于控件模式下的web自动化测试装置及测试方法 |
CN110647740A (zh) * | 2018-06-27 | 2020-01-03 | 复旦大学 | 一种基于tpm的容器可信启动方法及装置 |
CN109783356A (zh) * | 2018-12-14 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 一种自动化测试方法及终端 |
CN110287111A (zh) * | 2019-06-21 | 2019-09-27 | 深圳前海微众银行股份有限公司 | 一种用户界面的测试用例生成方法及装置 |
CN110781091A (zh) * | 2019-10-31 | 2020-02-11 | 北京奇艺世纪科技有限公司 | 应用程序的测试方法、装置、电子设备及存储介质 |
CN111324535A (zh) * | 2020-02-18 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 一种控件异常检测方法、装置和计算机设备 |
CN111694744A (zh) * | 2020-06-11 | 2020-09-22 | 安然 | 一种基于monkey源码的测试开法方法 |
CN111949522A (zh) * | 2020-07-31 | 2020-11-17 | 中国工商银行股份有限公司 | 用户界面自动化测试方法及装置 |
CN112241502A (zh) * | 2020-10-16 | 2021-01-19 | 北京字节跳动网络技术有限公司 | 一种页面加载检测方法及装置 |
CN112783764A (zh) * | 2021-01-08 | 2021-05-11 | 展讯通信(上海)有限公司 | 应用程序的自动化测试方法及装置、存储介质、终端 |
Also Published As
Publication number | Publication date |
---|---|
CN113791786A (zh) | 2021-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107766126B (zh) | 容器镜像的构建方法、***、装置及存储介质 | |
WO2020155777A1 (zh) | Ui自动化功能测试方法、测试装置、测试设备及存储介质 | |
CN109951315B (zh) | 一种实现yang模型到内部模型映射的方法及*** | |
CN108964968B (zh) | 一种容器云环境下的服务接入管理方法和*** | |
US9672140B1 (en) | Processing special requests at dedicated application containers | |
CN106445518A (zh) | 一种跨平台移动终端应用程序开发方法及*** | |
TWI528288B (zh) | 一種跨平臺轉換應用代碼的方法及裝置 | |
US9477497B2 (en) | Methods for determining resource dependency and systems thereof | |
CN111399840B (zh) | 一种模块开发方法及装置 | |
CN107783816A (zh) | 虚拟机的创建方法及装置、大数据集群创建的方法及装置 | |
WO2007011942A1 (en) | System and method for automatic or semi-automatic software integration | |
CN110673923A (zh) | Xwiki***配置方法、***及计算机设备 | |
CN111857810A (zh) | 一种前端开发文件创建方法、装置及电子设备 | |
CN116301951B (zh) | 一种基于kubernetes的微服务应用安装升级方法及装置 | |
US12026494B2 (en) | Dynamic automation of prerequisite component deployment in disconnected environments | |
US20240146650A1 (en) | Creating endpoints | |
CN108694049B (zh) | 一种更新软件的方法和设备 | |
CN115268879A (zh) | 代码处理方法、装置、电子设备及存储介质 | |
CN113791786B (zh) | 基于ios***的app页面控件自动化方法及装置 | |
CN113485927A (zh) | 一种测试数据生成方法、装置、设备及存储介质 | |
CN111488286B (zh) | 一种Android模块独立开发的方法及装置 | |
CN112068879A (zh) | 基于配置化的客户端应用程序开发框架构建方法及装置 | |
CN116755788A (zh) | 一种线上规则修改方法、装置、设备及存储介质 | |
CN112039691B (zh) | 一种网络仿真平台中虚拟路由器自动配置方法和装置 | |
CN113760442A (zh) | 一种应用的运行和访问方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |