CN116302930A - 应用测试方法和装置 - Google Patents
应用测试方法和装置 Download PDFInfo
- Publication number
- CN116302930A CN116302930A CN202211674511.2A CN202211674511A CN116302930A CN 116302930 A CN116302930 A CN 116302930A CN 202211674511 A CN202211674511 A CN 202211674511A CN 116302930 A CN116302930 A CN 116302930A
- Authority
- CN
- China
- Prior art keywords
- control
- page
- current page
- entry
- current
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 216
- 238000000034 method Methods 0.000 claims abstract description 129
- 230000006870 function Effects 0.000 claims description 56
- 238000012545 processing Methods 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 17
- 238000004458 analytical method Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 description 32
- 238000010586 diagram Methods 0.000 description 13
- 230000001960 triggered effect Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 241000208306 Apium Species 0.000 description 3
- BUGBHKTXTAQXES-UHFFFAOYSA-N Selenium Chemical compound [Se] BUGBHKTXTAQXES-UHFFFAOYSA-N 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000750 progressive effect Effects 0.000 description 3
- 229910052711 selenium Inorganic materials 0.000 description 3
- 239000011669 selenium Substances 0.000 description 3
- 238000010998 test method Methods 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明提供了一种应用测试方法和装置,特别涉及物联网领域,所述方法包括:基于入口页面文件,确定入口页面控件和入口页面控件类型信息;基于入口页面控件类型信息,触发入口页面控件确定所述当前页面文件,重复基于当前页面控件类型信息,触发当前页面文件的当前页面控件确定新的当前页面文件,直到无法确定新的当前页面文件,形成页面控件树;确定页面控件树中每个层次的节点的待测试控件和待测试控件类型信息,并基于每个层次的待测试控件的待测试控件类型信息,对每个层次的待测试控件进行测试。本发明能够提高应用测试的普适性、准确性和速度,从而提高应用测试的效率。
Description
技术领域
本发明涉及前端测试技术领域,特别涉及物联网领域,尤其涉及一种应用测试方法和装置。
背景技术
应用测试的过程往往涉及到对应用有关页面中的控件进行测试,而对于页面控件的测试,往往通过诸如Selenium等现有自动化测试框架实现。但是,上述自动化测试框架,对于系统原生控件测试的兼容性较好,而对基于WebView的页面控件进行测试时其兼容性较差,对控件进行解析、触发和定位等操作时易出现错误或因相关版本不匹配而无法顺利进行的问题,且易出现卡顿和无故中断等情况。然而,现有的很多应用页面及应用页面控件是基于WebView体系的。因此,采用上述现有自动化测试框架对页面控件进行测试时,难免会造成测试的普适性较差、准确性较低且速度较慢。另外,上述自动化测试框架对诸如UIAutomator工具等外部链接包的依赖性较强,实际使用时可能会额外耗费较多时间配置和调用众多外部链接包,且配置和调用外部链接包时也很容易出现各种错误及兼容性问题,进一步降低了测试的普适性、准确性和速度。
综上所述,现有技术中存在应用测试的普适性较差、准确性较低且速度较慢,从而不利于提高应用测试的效率的问题。
发明内容
本发明的一个目的在于提供一种应用测试方法,以解决现有技术中存在的应用测试的普适性较差、准确性较低且速度较慢,从而不利于提高应用测试的效率的问题。本发明的另一个目的在于提供一种应用测试装置。本发明的再一个目的在于提供一种计算机设备。本发明的还一个目的在于提供一种可读介质。
为了达到以上目的,本发明的一方面公开了一种应用测试方法,所述方法包括:
基于目标应用的入口页面文件,确定入口页面控件和所述入口页面控件对应的入口页面控件类型信息;
基于所述入口页面控件对应的入口页面控件类型信息,触发所述入口页面控件确定所述目标应用的当前页面文件,重复基于所述当前页面文件的当前页面控件对应的当前页面控件类型信息,触发所述当前页面文件的当前页面控件确定新的当前页面文件,直到无法确定新的当前页面文件,形成对应所述目标应用中多个页面的多个控件的页面控件树;
确定所述页面控件树中每个层次的节点对应的待测试控件和待测试控件类型信息,并基于每个所述层次的所述待测试控件对应的所述待测试控件类型信息,对每个所述层次的所述待测试控件进行测试。
可选的,所述基于目标应用的入口页面文件,确定入口页面控件和所述入口页面控件对应的入口页面控件类型信息,包括:
基于预设的XML解析方法和所述入口页面文件,得到入口页面XML信息;
基于所述入口页面XML信息,确定对应的入口页面控件属性信息和所述入口页面控件;
基于所述入口页面控件属性信息,得到所述入口页面控件类型信息。
可选的,基于所述入口页面XML信息,确定所述入口页面控件,包括:
基于预设的路径定位语言对所述入口页面XML信息进行处理,确定所述入口页面控件。
可选的,进一步包括:
在基于预设的XML解析方法和所述入口页面文件,得到入口页面XML信息之后,
基于所述入口页面XML信息,确定所述入口页面文件在目标应用中的入口页面层级和对应的入口页面控件数量。
可选的,所述基于所述入口页面控件对应的入口页面控件类型信息,触发所述入口页面控件确定所述目标应用的当前页面文件,重复基于所述当前页面文件的当前页面控件对应的当前页面控件类型信息,触发所述当前页面文件的当前页面控件确定新的当前页面文件,直到无法确定新的当前页面文件,形成对应所述目标应用中多个页面的多个控件的页面控件树,包括:
基于所述入口页面控件和对应的所述入口页面控件类型信息,形成对应的根节点,并将所述根节点作为当前节点;对所述入口页面控件进行与所述入口页面控件类型信息对应的预设触发操作,确定所述入口页面控件指向的下一级页面文件为当前页面文件;
重复执行控件树生长步骤,直到无法确定任何所述当前页面控件指向的下一级页面文件,得到所述页面控件树;所述控件树生长步骤包括:基于当前页面文件,确定当前页面控件和所述当前页面控件对应的当前页面控件类型信息;基于所述当前页面控件和对应的所述当前页面控件类型信息,形成所述当前节点的子节点,并将所述子节点作为更新后的当前节点;对所述当前页面控件进行与对应的所述当前页面控件类型信息对应的预设触发操作,确定所述当前页面控件指向的下一级页面文件为更新后的当前页面文件。
可选的,所述基于当前页面文件,确定当前页面控件和所述当前页面控件对应的当前页面控件类型信息,包括:
基于预设的XML解析方法和所述当前页面文件,得到当前页面XML信息;
基于所述当前页面XML信息,确定对应的当前页面控件属性信息和所述当前页面控件;
基于所述当前页面控件属性信息,得到所述当前页面控件类型信息。
可选的,基于所述当前页面XML信息,确定所述当前页面控件,包括:
基于预设的路径定位语言对所述当前页面XML信息进行处理,确定所述当前页面控件。
可选的,进一步包括:
在基于预设的XML解析方法和所述当前页面文件,得到当前页面XML信息之后,
基于所述当前页面XML信息,确定所述当前页面文件在目标应用中的当前页面层级和对应的当前页面控件数量。
可选的,所述确定所述页面控件树中每个层次的节点对应的待测试控件和待测试控件类型信息,包括:
对所述页面控件树进行广度优先遍历,得到页面控件树中每个层次的节点对应的待测试控件和待测试控件类型信息。
可选的,所述基于每个所述层次的所述待测试控件对应的所述待测试控件类型信息,对每个所述层次的所述待测试控件进行测试,包括:
基于所述待测试控件类型信息,确定预设测试功能类中的对应测试逻辑;
基于所述测试逻辑,对所述待测试控件进行测试。
可选的,进一步包括:
在基于所述测试逻辑,对所述待测试控件进行测试之后,
基于预设的加载地址确定函数和所述待测试控件,确定所述待测试控件对应的跳转地址和起源地址。
为了达到以上目的,本发明的另一方面公开了一种应用测试装置,所述装置包括:
起始解析模块,用于基于目标应用的入口页面文件,确定入口页面控件和所述入口页面控件对应的入口页面控件类型信息;
控件树形成模块,用于基于所述入口页面控件对应的入口页面控件类型信息,触发所述入口页面控件确定所述目标应用的当前页面文件,重复基于所述当前页面文件的当前页面控件对应的当前页面控件类型信息,触发所述当前页面文件的当前页面控件确定新的当前页面文件,直到无法确定新的当前页面文件,形成对应所述目标应用中多个页面的多个控件的页面控件树;
控件测试模块,用于确定所述页面控件树中每个层次的节点对应的待测试控件和待测试控件类型信息,并基于每个所述层次的所述待测试控件对应的所述待测试控件类型信息,对每个所述层次的所述待测试控件进行测试。
本发明还公开了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述方法。
本发明还公开了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述方法。
本发明提供的应用测试方法和装置,通过基于目标应用的入口页面文件,确定入口页面控件和所述入口页面控件对应的入口页面控件类型信息,能够基于便于获取的且对应应用实际入口页面的入口页面文件进行解析,快速准确地确定后续整体解析测试过程所需的入口页面控件及其对应的入口页面控件类型信息,为后续解析测试的过程提供了优良的基础,从而提高了整体应用测试的普适性、准确性和速度。
通过基于所述入口页面控件对应的入口页面控件类型信息,触发所述入口页面控件确定所述目标应用的当前页面文件,重复基于所述当前页面文件的当前页面控件对应的当前页面控件类型信息,触发所述当前页面文件的当前页面控件确定新的当前页面文件,直到无法确定新的当前页面文件,形成对应所述目标应用中多个页面的多个控件的页面控件树,能够充分考虑控件的类型性质与正确触发该控件的方式紧密关联的规律,以及应用不同的页面及其控件之间具有前后的访问递进关系的规律,以首页性质的入口页面及其控件为解析起点,采用合适的触发方式递进触发目标应用中不同层级页面的控件,从而有利于快速、全面且准确地确定目标应用不同层级的多个页面以及其对应的控件,使后续步骤的测试对象能够较为全面准确地覆盖目标应用中的多个页面控件,且上述触发确定控件的方式具有较强的适应性且计算复杂度并不高,耗时较短且不过分依赖环境、配置和引入包等,从而,上述步骤提高了整体应用测试的普适性、准确性和速度。
通过确定所述页面控件树中每个层次的节点对应的待测试控件和待测试控件类型信息,并基于每个所述层次的所述待测试控件对应的所述待测试控件类型信息,对每个所述层次的所述待测试控件进行测试,能够充分考虑页面控件树中同一层次的多个节点均表征目标应用中同一级页面对应控件的规律,以树结构为基础,更方便快速地实现了分别对不同级别页面对应的控件进行整体测试,由于同一级页面对应的控件在性质、匹配版本、环境需求和测试形式等相似度较高,因此,对同级页面的控件进行整体测试能够减少相关配置和调整操作从而进一步减少对应耗时,而且兼容性良好且不易在测试过程中出现错误,从而大幅度提高了整体应用测试的普适性、准确性和速度。
本发明提供的应用测试方法和装置,其具体执行逻辑所适用的框架和体系等范围较宽,从而对于诸如Selenium等相对不太适合基于WebView的页面的自动化测试框架并不过分依赖,因此能够提高测试兼容性,减少对控件进行解析、触发和定位等操作时出现的错误并不易出现因相关版本不匹配而无法顺利进行的问题,也不易出现因兼容性问题而出现的卡顿和无故中断等情况。而且,其具体执行逻辑涉及的有关方法、函数以及类等,有很多相对较为常用,因此需要从非常规外部包引入的有关方法、函数以及类的数量及种类并不多,减少了因配置和调用外部包的耗时、错误和兼容性问题。因此,能够大幅度提高整体应用测试的普适性、准确性和速度。
综上所述,本发明能够提高应用测试的普适性、准确性和速度,从而提高应用测试的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例的一种应用测试方法的流程示意图;
图2示出了本发明实施例的一种可选的确定入口页面控件和入口页面控件类型信息的步骤示意图;
图3示出了本发明实施例的一种可选的得到页面控件树的步骤示意图;
图4示出了本发明实施例的一种可选的确定待测试控件和待测试控件类型信息的步骤示意图;
图5示出了本发明实施例的一种可选的对待测试控件进行测试的步骤示意图;
图6示出了本发明实施例的一种应用测试装置的模块示意图;
图7示出适于用来实现本发明实施例的计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
关于本文中所使用的“第一”、“第二”、……等,并非特别指称次序或顺位的意思,亦非用以限定本发明,其仅为了区别以相同技术用语描述的元件或操作。
关于本文中所使用的“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指包含但不限于。
关于本文中所使用的“及/或”,包括所述事物的任一或全部组合。
需要说明的是,本发明技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
需要说明的是,本申请公开的一种应用测试方法和装置可用于物联网领域,也可用于除物联网领域之外的任意领域,本申请公开的一种应用测试方法和装置的应用领域不做限定。
本发明实施例公开了一种应用测试方法,如图1所示,该方法具体包括如下步骤:
S101:基于目标应用的入口页面文件,确定入口页面控件和所述入口页面控件对应的入口页面控件类型信息。
S102:基于所述入口页面控件对应的入口页面控件类型信息,触发所述入口页面控件确定所述目标应用的当前页面文件,重复基于所述当前页面文件的当前页面控件对应的当前页面控件类型信息,触发所述当前页面文件的当前页面控件确定新的当前页面文件,直到无法确定新的当前页面文件,形成对应所述目标应用中多个页面的多个控件的页面控件树。
S103:确定所述页面控件树中每个层次的节点对应的待测试控件和待测试控件类型信息,并基于每个所述层次的所述待测试控件对应的所述待测试控件类型信息,对每个所述层次的所述待测试控件进行测试。
示例性的,一个目标应用一般对应一个入口页面文件(极少数特殊情况下也可能对应多个),一个入口页面文件对应零至多个入口页面控件,一个入口页面控件对应一个入口页面控件类型信息,触发入口页面控件后可确定零至多个对应的当前页面文件(通俗来讲,即触发入口页面控件后可能会跳转或弹出新的当前页面,而当前页面文件即跳转或弹出的当前页面对应的页面文件),一个当前页面文件对应零至多个当前页面控件,一个当前页面控件对应一个当前页面控件类型信息,触发当前页面控件后可确定零至多个对应的下一级当前页面文件,一个入口页面控件对应一个页面控件树,一个目标应用对应零至多个页面控件树,一个页面控件树对应一至多个层次,一个层次对应一至多个节点,一个节点对应一个待测试控件,一个待测试控件对应一个待测试控件类型信息。需要说明的是,对于有关对应关系,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,本发明的应用测试方法,可以但不限于Appium自动化测试框架/工具为基础,该框架/工具可显示有管理用界面,其可显示有关的执行命令、测试状态和测试结果等,并提供对应的操控媒介,进一步的,还可以对应形成有关测试报告并支持打印。具体的,若整体逻辑基于Appium自动化测试框架/工具,本发明实施例则可能涉及到但不限于该框架/工具的如下现有类:
AutoTset类:AutoTset类作为对应测试框架的主类,引用了许多开源库和Java语言的集合类;其中的WebViewLevel变量用来记录遍历应用程序时当前活动所处程序的层级;WebView List变量继承自列表类,可用来保存页面上所有WebView控件信息以供测试使用;mysqltest类用来向数据库中存入控件信息时传递控件的路径和加载的地址,并可执行对应的测试语句,还可将信息插入到数据库中;checkurl类主要可用于在相关测试语句执行完毕后,对于保存WebView控件信息的数据库进行遍历,查找出其中存在错误页面的网址并打印报告;checkcycle类的作用类似,主要用于遍历数据库时查找指向同一网址的路径,将这几条不同路径看作存在无限循环的错误并打印;
Viewtest类:针对于某一个页面,可通过引用该类中的get_sourcepage方法提取页面上所有控件信息生成XML形式的信息,并将WebView控件存储于列表对象中,之后可按顺序提取列表中的元素进行触发,并通过获取控件的文本标识和所指向的远程网址的函数,以及统计界面元素中WebView控件存在的个数,调用数据库连接驱动将这些信息存入数据库中;
round类:可以通过其确定对应页面在应用中的层级,并且控制在一层界面的所有WebView控件被测试后,可保留当前AppiumDriver驱动信息的状态。
mysqltest类:可主要负责将有关测试结果保存到Mysql数据库中。
其中,可能涉及到的上述类,几乎均隶属于该框架/工具中的Appium类,Appium类中还自带有AppiumDriver类和AndroidDriver类等用于对应与测试有关的操作,使用Appium可完成很多功能的实现,例如对页面元素的识别和提取,对当前加载的远程网址的提取,对页面元素的定位以及对WebView控件执行操作等等。
需要说明的是,本发明实施例的应用测试方法,其可以基于的框架、工具或体系等,不仅仅局限于Appium(以及其具体包括的类、方法和函数等),也可以基于其他的测试框架、工具或体系等,甚至还可以不基于测试框架、工具或体系等。因此,上述说明仅为举例,并不对本发明实施例构成限制。
优选的,可以将对应的测试环境部署在对应的测试用终端机上,并配置好其系统版本信息、测试机ID信息和其他信息等,而可通过对应的服务器与该测试用终端机进行交互,执行对应的命令、下达对应的指令并进行监控等,控制整体测试过程的进行,该服务器可通过但不限于http协议等与测试用终端机通信。这样,能够实现测试的异步处理和解耦,提高测试的效率。需要说明的是,对于与测试有关的具体部署方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,本发明实施例的应用测试方法和装置,可至少适用于但不限于移动应用的前端内容上。
示例性的,本发明实施例中的方法,其也可以为函数,同理,本发明实施例中的函数,其也可以为方法(函数和方法的性质十分接近)。
优选的,本发明实施例提取出的有关页面控件和页面控件信息等,可以存放在对应的列表对象中,这样,能够便于读取、识别和使用。
示例性的,本发明实施例的控件,其具体体现形式可以为但不限于在对应文件或xml信息的内容中的部分代码段或信息段等,包含但不限于控件对应的有关输入输出参数以及对应的控件执行逻辑等。需要说明的是,对于控件具体的体现形式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。优选的,本发明实施例的控件,其具体体现形式可以为但不限于WebElement对象。
优选的,本发明实施例中的控件在触发时,可以先将其对应的信息内容(例如对应的XML信息内容等)进行DOM解析转化,使对应控件的内容转化为便于执行的形式,从而能够提高触发的成功率、速度和准确性。
优选的,本发明实施例中的有关控件、控件类型信息、控件属性信息和对应测试结果等,可以存储在有关的数据库中,其中,所述数据库可以为但不限于MySQL数据库,这样,能够便于有关信息的存储和提取,更好地满足有关环境需求和效率需求。
本发明提供的应用测试方法和装置,通过基于目标应用的入口页面文件,确定入口页面控件和所述入口页面控件对应的入口页面控件类型信息,能够基于便于获取的且对应应用实际入口页面的入口页面文件进行解析,快速准确地确定后续整体解析测试过程所需的入口页面控件及其对应的入口页面控件类型信息,为后续解析测试的过程提供了优良的基础,从而提高了整体应用测试的普适性、准确性和速度。
通过基于所述入口页面控件对应的入口页面控件类型信息,触发所述入口页面控件确定所述目标应用的当前页面文件,重复基于所述当前页面文件的当前页面控件对应的当前页面控件类型信息,触发所述当前页面文件的当前页面控件确定新的当前页面文件,直到无法确定新的当前页面文件,形成对应所述目标应用中多个页面的多个控件的页面控件树,能够充分考虑控件的类型性质与正确触发该控件的方式紧密关联的规律,以及应用不同的页面及其控件之间具有前后的访问递进关系的规律,以首页性质的入口页面及其控件为解析起点,采用合适的触发方式递进触发目标应用中不同层级页面的控件,从而有利于快速、全面且准确地确定目标应用不同层级的多个页面以及其对应的控件,使后续步骤的测试对象能够较为全面准确地覆盖目标应用中的多个页面控件,且上述触发确定控件的方式具有较强的适应性且计算复杂度并不高,耗时较短且不过分依赖环境、配置和引入包等,从而,上述步骤提高了整体应用测试的普适性、准确性和速度。
通过确定所述页面控件树中每个层次的节点对应的待测试控件和待测试控件类型信息,并基于每个所述层次的所述待测试控件对应的所述待测试控件类型信息,对每个所述层次的所述待测试控件进行测试,能够充分考虑页面控件树中同一层次的多个节点均表征目标应用中同一级页面对应控件的规律,以树结构为基础,更方便快速地实现了分别对不同级别页面对应的控件进行整体测试,由于同一级页面对应的控件在性质、匹配版本、环境需求和测试形式等相似度较高,因此,对同级页面的控件进行整体测试能够减少相关配置和调整操作从而进一步减少对应耗时,而且兼容性良好且不易在测试过程中出现错误,从而大幅度提高了整体应用测试的普适性、准确性和速度。
本发明提供的应用测试方法和装置,其具体执行逻辑所适用的框架和体系等范围较宽,从而对于诸如Selenium等相对不太适合基于WebView的页面的自动化测试框架并不过分依赖,因此能够提高测试兼容性,减少对控件进行解析、触发和定位等操作时出现的错误并不易出现因相关版本不匹配而无法顺利进行的问题,也不易出现因兼容性问题而出现的卡顿和无故中断等情况。而且,其具体执行逻辑涉及的有关方法、函数以及类等,有很多相对较为常用,因此需要从非常规外部包引入的有关方法、函数以及类的数量及种类并不多,减少了因配置和调用外部包的耗时、错误和兼容性问题。因此,能够大幅度提高整体应用测试的普适性、准确性和速度。
综上所述,本发明能够提高应用测试的普适性、准确性和速度,从而提高应用测试的效率。
在一个可选的实施方式中,如图2所示,所述基于目标应用的入口页面文件,确定入口页面控件和所述入口页面控件对应的入口页面控件类型信息,包括如下步骤:
S201:基于预设的XML解析方法和所述入口页面文件,得到入口页面XML信息。
S202:基于所述入口页面XML信息,确定对应的入口页面控件属性信息和所述入口页面控件。
S203:基于所述入口页面控件属性信息,得到所述入口页面控件类型信息。
示例性的,所述入口页面文件,可以通过访问或操作目标应用对应项目下的入口Activity(Activity为应用项目的一种构成组件,例如可以为但不限于交互组件等)或入口Activity对应的文件夹(或目录、包等)等来获取。由于入口页面的在应用中的层级是最高的,且入口页面往往存放在对应项目下易于获取的地方,因此入口页面获取的方式较为简单且获取速度较快。其中,所述入口页面,可以理解为但不限于访问应用时起始显示的页面,即可通俗理解为首页或主页等。需要说明的是,对于入口页面文件的来源和性质,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述XML解析方法,可以为但不限于Appium框架中的网页驱动类函数webdriver.getsource()。需要说明的是,对于XML解析方法的类型,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述步骤S201,可以为但不限于将所述入口页面文件输入到所述XML解析方法中进行处理,得到所述入口页面XML信息。其中,所述入口页面XML信息,可以为但不限于与所述入口页面文件对应的XML格式的信息内容或信息文件等,可通俗理解为将入口页面文件转换为了与XML格式对应的内容。需要说明的是,对于步骤S201的具体实现方式和入口页面XML信息的具体性质等,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
在XML信息中声明应用程序的页面内容的优点是它能更好的把应用程序的表现跟控制它们行为的代码分离。且在后续测试过程中涉及到的页面内容在应用程序代码外部存在,意味着在测试用例执行过程中不会触及目标应用的代码层且不用重新编译就能够对有关页面元素(例如页面本身或其控件等)进行分析和触发。减少了测试过程对目标应用本身的不利干扰,且降低了测试难度,提高了测试的效率。
示例性的,所述步骤S203,可以为但不限于对所述入口页面控件属性信息进行解析,通过识别对应属性标识(例如属性名等)等方式,从解析后的页面控件属性信息中确定对应的入口页面控件类型信息(例如,解析该类型信息,得到控件所属类名,从而能够基于控件所属类名确定入口页面控件类型信息),或通过使用有关测试架构/工具等中的对应函数或方法等对所述入口页面控件属性信息进行解析得到所述入口页面控件类型信息。需要说明的是,对于步骤S203的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述入口页面控件类型信息,可以为但不限于表示入口页面控件类型的标识或说明内容等,优选的,其本身也可以即为入口页面控件属性信息中的某个或某些字段(例如,可以直接为属性信息中的控件所属的类名class,而控件所属的类名class可以标识并表征入口页面控件对应的控件类型)。其中,入口页面控件类型可取为但不限于按钮、文本框、选项栏、拖动条和操作面板等。需要说明的是,对于入口页面控件类型信息的具体内容、性质和对应可取的具体类型等,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,本发明实施例的控件属性信息,包括但不限于控件所属的类名(可表示为但不限于class,其属性值类型可以为但不限于String)、控件归属的索引(可表示为但不限于index,其属性值类型可以为但不限于Int)、控件上的文本字符串(可表示为但不限于text,其属性值类型可以为但不限于String)、控件的id标识(可表示为但不限于resource-id,其属性值类型可以为但不限于String)、控件所属应用包名(可表示为但不限于package,其属性值类型可以为但不限于String)、控件的备注字符串(可表示为但不限于content-desc,其属性值类型可以为但不限于String)、表示控件可否被选择的标识(可表示为但不限于checkable,其属性值类型可以为但不限于Boolean)、表示控件是否被开启的标识(可表示为但不限于checked,其属性值类型可以为但不限于Boolean)、表示控件是否响应点击的标识(可表示为但不限于clickable,其属性值类型可以为但不限于Boolean)、表示控件是否可用的标识(可表示为但不限于enabled,其属性值类型可以为但不限于Boolean)、表示控件可否获得焦点的标识(可表示为但不限于focusable,其属性值类型可以为但不限于Boolean)、表示控件是否已经获得焦点的标识(可表示为但不限于focused,其属性值类型可以为但不限于Boolean)、表示控件是否响应滑动的标识(可表示为但不限于scrollable,其属性值类型可以为但不限于Boolean)、表示控件是否响应长按的标识(可表示为但不限于long-clickable,其属性值类型可以为但不限于Boolean)、表示控件是否以预设形式显示文本的标识(可表示为但不限于password,其属性值类型可以为但不限于Boolean)、表示控件是否被选中的标识(可表示为但不限于selected,其属性值类型可以为但不限于Boolean)以及控件在界面上的坐标(可表示为但不限于bounds,具
体可包括但不限于控件左上角坐标、右下角坐标和中心坐标等)等。其中,本发明实5施例中的有关控件属性信息中的具体内容,也可以在整体测试过程中被展现提供,以作为测试过程中的有关的辅助信息和测试结果分析过程中的参考依据信息,为整体测试提供了对应的内容参考。需要说明的是,对于本发明实施例控件属性信息的具体内容和对应用途,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
0示例性的,基于所述入口页面XML信息,确定对应的入口页面控件属性信息,
可以为但不限于直接解析所述入口页面XML信息,即可直接确定入口页面控件属性信息。需要说明的是,对于基于所述入口页面XML信息,确定对应的入口页面控件属性信息的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
5通过上述步骤,能够凭借XML信息便于定位、分析和处理的优势,提高确定入
口页面控件类型信息和入口页面控件的普适性、准确性和速度,从而提高了整体应用测试的的普适性、准确性和速度。
在一个可选的实施方式中,基于所述入口页面XML信息,确定所述入口页面控件,包括:
0基于预设的路径定位语言对所述入口页面XML信息进行处理,确定所述入口页面控件。
示例性的,所述路径定位语言,可以为但不限于Xpath语言。需要说明的是,对于路径定位语言的具体类型,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
5示例性的,所述基于预设的路径定位语言对所述入口页面XML信息进行处理,
确定所述入口页面控件,可以为但不限于配置有关路径定位语言,再将路径定位语言运用到入口页面XML信息中进行执行,从而能够定位所述入口页面控件。其中,配置路径定位语言,并运用到XML信息中,为现有手段。需要说明的是,对于基于预设的路径定位语言对所述入口页面XML信息进行处理,确定所述入口页面控件的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够有利于使对于某个特定控件的识别操作,其返回的结果具有唯一性,减少了诸如误定位到其他非预期内容或预期定位一个控件却无意中定位到多个控件的错误,大幅度提高了确定页面控件的准确性,从而提高了整体应用测试的普适性和准确性。
定位对应页面控件时,还可以通过以控件属性信息中某一个或某多个变量(或该变量对应的属性值)作为定位标识,以此为依据在xml信息中确定对应的控件信息,例如,以控件所属的类名变量作为依据,定位控件信息,这样,该变量所在的对应范围的信息段即对应控件信息。然而有些控件对应的控件属性信息中,某个属性的属性值或字段本身为空,这样,可能会造成页面控件的漏定位。因此,采用路径定位语言去确定控件,能够克服上述问题,其本身的准确性更高。
在一个可选的实施方式中,进一步包括:
在基于预设的XML解析方法和所述入口页面文件,得到入口页面XML信息之后,
基于所述入口页面XML信息,确定所述入口页面文件在目标应用中的入口页面层级和对应的入口页面控件数量。
示例性的,基于所述入口页面XML信息,确定所述入口页面文件在目标应用中的入口页面层级,可以为但不限于使用Appium中的round类中的有关方法或函数等将所述入口页面XML信息对照目标应用的有关文件包进行分析处理,确定所述入口页面层级,或者使用有关的XML层级工具将所述入口页面XML信息对照目标应用的有关文件包进行分析处理,确定所述入口页面层级,再或者,可以通过Appium的有关计数器来确定整体触发过程中的对应层级逻辑,从而确定入口页面XML信息对应的入口页面层级。需要说明的是,对于基于所述入口页面XML信息,确定所述入口页面文件在目标应用中的入口页面层级的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。其中,入口页面文件作为目标应用中首页性质的页面文件,其层级通常为最高层级。
示例性的,所述基于所述入口页面XML信息,确定所述对应的入口页面控件数量,可以为但不限于直接解析入口页面XML信息得到所述入口页面控件数量,或者通过提取入口页面XML信息中的标签,从而可以基于标签数量确定入口页面控件数量。需要说明的是,对于基于所述入口页面XML信息,确定所述对应的入口页面控件数量的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,确定到的入口页面层级和对应的入口页面控件数量,可以在整体测试中作为对应的辅助参考信息,使有关测试人员可以更清楚、更全面地了解到应用测试的情况,并且还可以作为确定测试结果的依据。需要说明的是,对于入口页面层级和对应的入口页面控件数量的具体用途,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够准确快速地获取对于测试过程具有参考意义的入口页面层级和对应的入口页面控件数量,从而能够便于更明确清晰地掌握整体测试情况并更准确地确定测试结果。
在一个可选的实施方式中,如图3所示,所述基于所述入口页面控件对应的入口页面控件类型信息,触发所述入口页面控件确定所述目标应用的当前页面文件,重复基于所述当前页面文件的当前页面控件对应的当前页面控件类型信息,触发所述当前页面文件的当前页面控件确定新的当前页面文件,直到无法确定新的当前页面文件,形成对应所述目标应用中多个页面的多个控件的页面控件树,包括如下步骤:
S301:基于所述入口页面控件和对应的所述入口页面控件类型信息,形成对应的根节点,并将所述根节点作为当前节点;对所述入口页面控件进行与所述入口页面控件类型信息对应的预设触发操作,确定所述入口页面控件指向的下一级页面文件为当前页面文件。
S302:重复执行控件树生长步骤,直到无法确定任何所述当前页面控件指向的下一级页面文件,得到所述页面控件树;所述控件树生长步骤包括:基于当前页面文件,确定当前页面控件和所述当前页面控件对应的当前页面控件类型信息;基于所述当前页面控件和对应的所述当前页面控件类型信息,形成所述当前节点的子节点,并将所述子节点作为更新后的当前节点;对所述当前页面控件进行与对应的所述当前页面控件类型信息对应的预设触发操作,确定所述当前页面控件指向的下一级页面文件为更新后的当前页面文件。
示例性的,所述基于所述入口页面控件和对应的所述入口页面控件类型信息,形成对应的根节点,并将所述根节点作为当前节点,可以为但不限于将所述入口页面控件和对应的入口页面控件类型信息进行整合和结构化处理,形成对应的节点信息即根节点。优选的,还可以将入口页面控件对应的入口页面控件属性信息一并整合至对应的根节点中。需要说明的是,对于基于所述入口页面控件和对应的所述入口页面控件类型信息,形成对应的根节点,并将所述根节点作为当前节点的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述对所述入口页面控件进行与所述入口页面控件类型信息对应的预设触发操作,确定所述入口页面控件指向的下一级页面文件为当前页面文件,可以为但不限于使用入口页面控件中与所述入口页面控件类型信息相符的触发函数/方法,或通过预先构造好的、与所述入口页面控件类型信息对应的外部触发函数/方法或对应架构(例如Appium)中自带的有关与入口页面控件类型信息对应的触发逻辑,来触发所述入口页面控件,确定入口页面控件指向的下一级页面文件为当前页面文件。例如,若入口页面控件为按钮(可以为但不限于Button类)类的控件,可以使用诸如Tap函数等的点击操作触发函数来触发所述入口页面控件,或者,若所述入口页面控件为输入框类的控件,可以使用预设的输入操作函数对该控件进行触发。其中,所述入口页面控件指向的下一级页面文件,可通俗地理解为但不限于触发入口页面控件后所跳转到页面的页面文件。需要说明的是,对于对所述入口页面控件进行与所述入口页面控件类型信息对应的预设触发操作,确定所述入口页面控件指向的下一级页面文件为当前页面文件的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述基于所述当前页面控件和对应的所述当前页面控件类型信息,形成所述当前节点的子节点,可以为但不限于将所述当前页面控件和对应的当前页面控件类型信息进行整合和结构化处理,形成对应的节点信息即子节点。优选的,还可以将当前页面控件对应的当前页面控件属性信息一并整合至对应的子节点中。需要说明的是,对于基于所述当前页面控件和对应的所述当前页面控件类型信息,形成所述当前节点的子节点的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述对所述当前页面控件进行与对应的所述当前页面控件类型信息对应的预设触发操作,确定所述当前页面控件指向的下一级页面文件为更新后的当前页面文件,可以为但不限于使用当前页面控件中与所述当前页面控件类型信息相符的触发函数/方法,或通过预先构造好的、与所述当前页面控件类型信息对应的外部触发函数/方法或对应架构(例如Appium)中自带的有关与当前页面控件类型信息对应的触发逻辑,来触发所述当前页面控件,确定当前页面控件指向的下一级页面文件为更新后的当前页面文件。例如,若当前页面控件为按钮(可以为但不限于Button类)类的控件,可以使用诸如Tap函数等的点击操作触发函数来触发所述当前页面控件,或者,若所述当前页面控件为输入框类的控件,可以使用预设的输入操作函数对该控件进行触发。其中,所述当前页面控件指向的下一级页面文件,可通俗地理解为但不限于触发当前页面控件后所跳转到页面的页面文件。需要说明的是,对于对所述当前页面控件进行与对应的所述当前页面控件类型信息对应的预设触发操作,确定所述当前页面控件指向的下一级页面文件为更新后的当前页面文件的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,控件树生长过程,有如下例子:
某个入口页面控件对应有一个根节点A,触发入口页面控件后跳转得到当前页面文件甲,当前页面文件甲中存在两个当前页面控件,则将该两个当前页面控件形成对应根节点A的子节点B和子节点C。而上述两个当前页面控件(子节点B和子节点C对应的控件)触发后,分别跳转得到了新的当前页面文件乙和新的当前页面文件丙,而当前页面文件乙和当前页面文件丙各有一个页面控件,则可分别形成子节点B下一层的相对子节点D以及子节点C下一层的相对子节点E。而当前页面文件乙和当前页面文件丙的控件触发后,无法形成新的页面文件,则结束对应循环。最终,形成了以根节点A为根节点的控件树,根节点A在控件树中的层次对应入口页面文件,根节点A具有两个子节点B和子节点C,子节点B和子节点C在同一下位层次,且该层次对应当前页面文件甲,子节点B的下面还有进一步的子节点D且子节点C的下面还有进一步的子节点E,子节点D和子节点E在同一进一步的下位层次,且该进一步的下位层次对应当前压面文件乙和当前页面文件丙。
需要说明的是,上述说明仅为举例,对本发明实施例中的控件树生长过程并不构成限制。
示例性的,一个页面控件树的一个层次对应目标应用中某一层级的一个或多个应用页面以其对应的一个或多个控件(具体的,一个层次中的节点对应该目标应用中某一层级的应用页面上的控件)。需要说明的是,对于有关对应关系,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够以简单的处理方式快速地形成后续测试所使用的页面控件树,且该控件树能够与应用中对应的触发逻辑层级对应且全面地覆盖了应用中的对应页面和控件,从而提高了形成页面控件树的准确性,另外,形成上述控件树的步骤对于特殊架构、环境和配置等的依赖程度并不高,其普适性较强。从而提高了整体应用测试的普适性、准确性和速度。
在一个可选的实施方式中,所述基于当前页面文件,确定当前页面控件和所述当前页面控件对应的当前页面控件类型信息,包括:
基于预设的XML解析方法和所述当前页面文件,得到当前页面XML信息;
基于所述当前页面XML信息,确定对应的当前页面控件属性信息和所述当前页面控件;
基于所述当前页面控件属性信息,得到所述当前页面控件类型信息。
示例性的,所述XML解析方法,可以为但不限于Appium框架中的网页驱动类函数webdriver.getsource()。需要说明的是,对于XML解析方法的类型,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述基于预设的XML解析方法和所述当前页面文件,得到当前页面XML信息,可以为但不限于将所述当前页面文件输入到所述XML解析方法中进行处理,得到所述当前页面XML信息。其中,所述当前页面XML信息,可以为但不限于与所述当前页面文件对应的XML格式的信息内容或信息文件等,可通俗理解为将当前页面文件转换为了与XML格式对应的内容。需要说明的是,对于基于预设的XML解析方法和所述当前页面文件,得到当前页面XML信息的具体实现方式和当前页面XML信息的具体性质等,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
在XML信息中声明应用程序的页面内容的优点是它能更好的把应用程序的表现跟控制它们行为的代码分离。且在后续测试过程中涉及到的页面内容在应用程序代码外部存在,意味着在测试用例执行过程中不会触及目标应用的代码层且不用重新编译就能够对有关页面元素(例如页面本身或其控件等)进行分析和触发。减少了测试过程对目标应用本身的不利干扰,且降低了测试难度,提高了测试的效率。
示例性的,所述基于所述当前页面控件属性信息,得到所述当前页面控件类型信息,可以为但不限于对所述当前页面控件属性信息进行解析,通过识别对应属性标识(例如属性名等)等方式,从解析后的页面控件属性信息中确定对应的当前页面控件类型信息(例如,解析该类型信息,得到控件所属类名,从而能够基于控件所属类名确定当前页面控件类型信息),或通过使用有关测试架构/工具等中的对应函数或方法等对所述当前页面控件属性信息进行解析得到所述当前页面控件类型信息。需要说明的是,对于基于所述当前页面控件属性信息,得到所述当前页面控件类型信息的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述当前页面控件类型信息,可以为但不限于表示当前页面控件类型的标识或说明内容等,优选的,其本身也可以即为当前页面控件属性信息中的某个或某些字段(例如,可以直接为属性信息中的控件所属的类名class,而控件所属的类名class可以标识并表征当前页面控件对应的控件类型)。其中,当前页面控件类型可取为但不限于按钮、文本框、选项栏、拖动条和操作面板等。需要说明的是,对于当前页面控件类型信息的具体内容、性质和对应可取的具体类型等,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,本发明实施例的控件属性信息,包括但不限于控件所属的类名(可表示为但不限于class,其属性值类型可以为但不限于String)、控件归属的索引(可表示为但不限于index,其属性值类型可以为但不限于Int)、控件上的文本字符串(可表示为但不限于text,其属性值类型可以为但不限于String)、控件的id标识(可表示为但不限于resource-id,其属性值类型可以为但不限于String)、控件所属应用包名(可表示为但不限于package,其属性值类型可以为但不限于String)、控件的备注字符串(可表示为但不限于content-desc,其属性值类型可以为但不限于String)、表示控件可否被选择的标识(可表示为但不限于checkable,其属性值类型可以为但不限于Boolean)、表示控件是否被开启的标识(可表示为但不限于checked,其属性值类型可以为但不限于Boolean)、表示控件是否响应点击的标识(可表示为但不限于clickable,其属性值类型可以为但不限于Boolean)、表示控件是否可用的标识(可表示为但不限于enabled,其属性值类型可以为但不限于Boolean)、表示控件可否获得焦点的标识(可表示为但不限于focusable,其属性值类型可以为但不限于Boolean)、表示控件是否已经获得焦点的标识(可表示为但不限于focused,其属性值类型可以为但不限于Boolean)、表示控件是否响应滑动的标识(可表示为但不限于scrollable,其属性值类型可以为但不限于Boolean)、表示控件是否响应长按的标识(可表示为但不限于long-clickable,其属性值类型可以为但不限于Boolean)、表示控件是否以预设形式显示文本的标识(可表示为但不限于password,其属性值类型可以为但不限于Boolean)、表示控件是否被选中的标识(可表示为但不限于selected,其属性值类型可以为但不限于Boolean)以及控件在界面上的坐标(可表示为但不限于bounds,具体可包括但不限于控件左上角坐标、右下角坐标和中心坐标等)等。其中,本发明实施例中的有关控件属性信息中的具体内容,也可以在整体测试过程中被展现提供,以作为测试过程中的有关的辅助信息和测试结果分析过程中的参考依据信息,为整体测试提供了对应的内容参考。需要说明的是,对于本发明实施例控件属性信息的具体内容和对应用途,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,基于所述当前页面XML信息,确定对应的当前页面控件属性信息,可以为但不限于直接解析所述当前页面XML信息,即可直接确定当前页面控件属性信息。需要说明的是,对于基于所述当前页面XML信息,确定对应的当前页面控件属性信息的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,本发明实施例中的当前页面,其性质可以为但不限于目标应用中除入口页面外层级相对靠下的内部页面等。需要说明的是,对于当前页面的具体性质,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够凭借XML信息便于定位、分析和处理的优势,提高确定当前页面控件类型信息和当前页面控件的普适性、准确性和速度,从而提高了整体应用测试的的普适性、准确性和速度。
在一个可选的实施方式中,基于所述当前页面XML信息,确定所述当前页面控件,包括:
基于预设的路径定位语言对所述当前页面XML信息进行处理,确定所述当前页面控件。
示例性的,所述路径定位语言,可以为但不限于Xpath语言。需要说明的是,对于路径定位语言的具体类型,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述基于预设的路径定位语言对所述当前页面XML信息进行处理,确定所述当前页面控件,可以为但不限于配置有关路径定位语言,再将路径定位语言运用到当前页面XML信息中进行执行,从而能够定位所述当前页面控件。其中,配置路径定位语言,并运用到XML信息中,为现有手段。需要说明的是,对于基于预设的路径定位语言对所述当前页面XML信息进行处理,确定所述当前页面控件的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够有利于使对于某个特定控件的识别操作,其返回的结果具有唯一性,减少了诸如误定位到其他非预期内容或预期定位一个控件却无意中定位到多个控件的错误,大幅度提高了确定页面控件的准确性,从而提高了整体应用测试的普适性和准确性。
在一个可选的实施方式中,进一步包括:
在基于预设的XML解析方法和所述当前页面文件,得到当前页面XML信息之后,
基于所述当前页面XML信息,确定所述当前页面文件在目标应用中的当前页面层级和对应的当前页面控件数量。
示例性的,基于所述当前页面XML信息,确定所述当前页面文件在目标应用中的当前页面层级,可以为但不限于使用Appium中的round类中的有关方法或函数等将所述当前页面XML信息对照目标应用的有关文件包进行分析处理,确定所述当前页面层级,或者使用有关的XML层级工具将所述当前页面XML信息对照目标应用的有关文件包进行分析处理,确定所述当前页面层级,再或者,可以通过Appium的有关计数器来确定整体触发过程中的对应层级逻辑,从而确定当前页面XML信息对应的当前页面层级。需要说明的是,对于基于所述当前页面XML信息,确定所述当前页面文件在目标应用中的当前页面层级的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述基于所述当前页面XML信息,确定所述对应的当前页面控件数量,可以为但不限于直接解析当前页面XML信息得到所述当前页面控件数量,或者通过提取当前页面XML信息中的标签,从而可以基于标签数量确定当前页面控件数量。需要说明的是,对于基于所述当前页面XML信息,确定所述对应的当前页面控件数量的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,确定到的当前页面层级和对应的当前页面控件数量,可以在整体测试中作为对应的辅助参考信息,使有关测试人员可以更清楚、更全面地了解到应用测试的情况,并且还可以作为确定测试结果的依据。需要说明的是,对于当前页面层级和对应的当前页面控件数量的具体用途,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够准确快速地获取对于测试过程具有参考意义的当前页面层级和对应的当前页面控件数量,即目标应用中除入口页面以外的其他多个页面的页面层级和对应的页面控件数量,从而能够便于更明确清晰地掌握整体测试情况并更准确地确定测试结果。
在一个可选的实施方式中,如图4所示,所述确定所述页面控件树中每个层次的节点对应的待测试控件和待测试控件类型信息,包括如下步骤:
S401:对所述页面控件树进行广度优先遍历,得到页面控件树中每个层次的节点对应的待测试控件和待测试控件类型信息。
示例性的,所述步骤S401,可通俗理解为依次遍历页面控件树中每一层的节点(从根节点往下),并对遍历到的节点进行解析确定其中的待测试控件和待测试控件类型信息。需要说明的是,对于步骤S401的理解和具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
优选的,可以在每得到页面控件树中一个层次节点的待测试控件和待测试控件类型信息后,就基于该层次的节点对应的所述待测试控件对应的所述待测试控件类型信息,对该层次的待测试控件进行测试。这样,能够提高整体应用测试的速度。
通过上述步骤,能够较快速、全面地遍历页面控件树,从而在提高了整体测试速度的基础上,还提高了测试覆盖率,便于提高测试的全面性和准确性。
在一个可选的实施方式中,如图5所示,所述基于每个所述层次的所述待测试控件对应的所述待测试控件类型信息,对每个所述层次的所述待测试控件进行测试,包括如下步骤:
S501:基于所述待测试控件类型信息,确定预设测试功能类中的对应测试逻辑。
S502:基于所述测试逻辑,对所述待测试控件进行测试。
示例性的,所述步骤S501,可以为但不限于使用所述测试控件类型信息在预设的测试逻辑对应信息进行查询,确定所述测试控件类型信息对应的测试逻辑标识(可以为但不限于对应的类名、函数名或方法名等),然后基于所述测试逻辑标识在所述测试功能类中进行查询、搜索或映射,确定对应的所述测试逻辑。其中,所述测试逻辑,其具体性质可以为但不限于方法、函数或类等,形式可以为但不限于对应的代码段等。其中,所述测试功能类,可以为但不限于对应测试框架中的有关功能类,例如在Appium框架中,有关的测试功能类,可以为但不限于round类,round类中还可以包含记载有各种测试功能语句的函数或方法等。需要说明的是,对于步骤S501的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述步骤S502,可以为但不限于将所述待测试控件的有关数据结构信息等输入到所述测试逻辑中进行运算处理,以实现对所述待测试控件进行测试。例如,若待测试控件为按钮控件,则测试逻辑可通过但不限于执行对其的点击、拖动和滑动等操作来对其进行有关触发测试。需要说明的是,对于步骤S502的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。优选的,可通过Appium架构中的AppiumDriver对象(驱动实例化后的对象)保存控件树中每一层节点对应的待测试控件的有关测试状态信息,并可以通过递归触发等方式实现往下一层节点的跳转和测试等操作。需要说明的是,对于步骤S502的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,基于所述测试逻辑,对所述待测试控件进行测试后,还会得到有关的诸如测试结果信息、问题定位点信息、测试描述信息和问题描述信息等反应测试整体情况的信息,具体由对应的测试逻辑输出(输出这些信息的方式为现有方式),有关测试人员可以充分地通过这些输出信息了解测试的详情,以进行有关评判和分析等工作。需要说明的是,对于测试逻辑输出信息的具体内容和输出内容的具体用途,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。另外,测试逻辑输出的诸如测试结果信息、问题定位点信息、测试描述信息和问题描述信息等,可以进一步保存在对应的数据库中。
在一个可选的实施方式中,进一步包括:
在基于所述测试逻辑,对所述待测试控件进行测试之后,
基于预设的加载地址确定函数和所述待测试控件,确定所述待测试控件对应的跳转地址和起源地址。
示例性的,所述加载地址确定函数,可以为但不限于Appium中的getCurrentUrl函数/方法等。需要说明的是,对于加载地址确定函数,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述基于预设的加载地址确定函数和所述待测试控件,确定所述待测试控件对应的跳转地址和起源地址,可以为但不限于将所述待测试控件输入到所述加载地址确定函数中进行运算处理,输出得到所述跳转地址(可用但不限于URL表示)和起源地址(可用但不限于Link表示)。其中,所述跳转地址,可以通俗理解为但不限于待测试控件触发后,弹出或跳转到的新页面的对应地址;所述起源地址,可通俗理解为但不限于待测试控件对应的页面或该待测试控件本身对应的地址,即通过哪个路径或地址触发确定该待测试控件或该待测试控件对应的页面中的“哪个路径或地址”。需要说明的是,对于基于预设的加载地址确定函数和所述待测试控件,确定所述待测试控件对应的跳转地址和起源地址的具体实现方式以及跳转地址和起源地址的含义,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述地址,其形式还可以为路径等。
示例性的,有的待测试控件在触发后可能也并不进行跳转,因为其本身执行逻辑可能并不是用于得到下一级页面的,而是执行相应的非跳转功能。
通过上述步骤,能够准确快速地得到对应控件的跳转地址和起源地址,确定的跳转地址和起源地址可以同样作为了解整体测试情况和测试结果的辅助参考信息,有关测试人员通过分析跳转地址和起源地址,可以更准确地分析有关测试过程中体现的问题,比如执行应用时的闪退问题以及出现死机页面等问题的分析,就可以涉及到以跳转地址和起源地址做参考,便于测试人员知晓对应问题的出现过程。因此,上述步骤可以间接提高测试的效率和全面性。
基于相同原理,本发明实施例公开了一种应用测试装置600,如图6所示,该应用测试装置600包括:
起始解析模块601,用于基于目标应用的入口页面文件,确定入口页面控件和所述入口页面控件对应的入口页面控件类型信息;
控件树形成模块602,用于基于所述入口页面控件对应的入口页面控件类型信息,触发所述入口页面控件确定所述目标应用的当前页面文件,重复基于所述当前页面文件的当前页面控件对应的当前页面控件类型信息,触发所述当前页面文件的当前页面控件确定新的当前页面文件,直到无法确定新的当前页面文件,形成对应所述目标应用中多个页面的多个控件的页面控件树;
控件测试模块603,用于确定所述页面控件树中每个层次的节点对应的待测试控件和待测试控件类型信息,并基于每个所述层次的所述待测试控件对应的所述待测试控件类型信息,对每个所述层次的所述待测试控件进行测试。
在一个可选的实施方式中,所述起始解析模块601,用于:
基于预设的XML解析方法和所述入口页面文件,得到入口页面XML信息;
基于所述入口页面XML信息,确定对应的入口页面控件属性信息和所述入口页面控件;
基于所述入口页面控件属性信息,得到所述入口页面控件类型信息。
在一个可选的实施方式中,所述起始解析模块601,用于:
基于预设的路径定位语言对所述入口页面XML信息进行处理,确定所述入口页面控件。
在一个可选的实施方式中,进一步包括入口页面辅助解析模块,用于:
在基于预设的XML解析方法和所述入口页面文件,得到入口页面XML信息之后,
基于所述入口页面XML信息,确定所述入口页面文件在目标应用中的入口页面层级和对应的入口页面控件数量。
在一个可选的实施方式中,所述控件树形成模块602,用于:
基于所述入口页面控件和对应的所述入口页面控件类型信息,形成对应的根节点,并将所述根节点作为当前节点;对所述入口页面控件进行与所述入口页面控件类型信息对应的预设触发操作,确定所述入口页面控件指向的下一级页面文件为当前页面文件;
重复执行控件树生长步骤,直到无法确定任何所述当前页面控件指向的下一级页面文件,得到所述页面控件树;所述控件树生长步骤包括:基于当前页面文件,确定当前页面控件和所述当前页面控件对应的当前页面控件类型信息;基于所述当前页面控件和对应的所述当前页面控件类型信息,形成所述当前节点的子节点,并将所述子节点作为更新后的当前节点;对所述当前页面控件进行与对应的所述当前页面控件类型信息对应的预设触发操作,确定所述当前页面控件指向的下一级页面文件为更新后的当前页面文件。
在一个可选的实施方式中,所述控件树形成模块602,用于:
基于预设的XML解析方法和所述当前页面文件,得到当前页面XML信息;
基于所述当前页面XML信息,确定对应的当前页面控件属性信息和所述当前页面控件;
基于所述当前页面控件属性信息,得到所述当前页面控件类型信息。
在一个可选的实施方式中,所述控件树形成模块602,用于:
基于预设的路径定位语言对所述当前页面XML信息进行处理,确定所述当前页面控件。
在一个可选的实施方式中,进一步包括当前页面辅助解析模块,用于:
在基于预设的XML解析方法和所述当前页面文件,得到当前页面XML信息之后,
基于所述当前页面XML信息,确定所述当前页面文件在目标应用中的当前页面层级和对应的当前页面控件数量。
在一个可选的实施方式中,所述控件测试模块603,用于:
对所述页面控件树进行广度优先遍历,得到页面控件树中每个层次的节点对应的待测试控件和待测试控件类型信息。
在一个可选的实施方式中,所述控件测试模块603,用于:
基于所述待测试控件类型信息,确定预设测试功能类中的对应测试逻辑;
基于所述测试逻辑,对所述待测试控件进行测试。
在一个可选的实施方式中,进一步包括加载地址确定模块,用于:
在基于所述测试逻辑,对所述待测试控件进行测试之后,
基于预设的加载地址确定函数和所述待测试控件,确定所述待测试控件对应的跳转地址和起源地址。
由于该应用测试装置600解决问题的原理与以上方法类似,因此本应用测试装置600的实施可以参见以上的方法的实施,在此不再赘述。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机设备,具体的,计算机设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
在一个典型的实例中计算机设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述方法。
下面参考图7,其示出了适于用来实现本申请实施例的计算机设备700的结构示意图。
如图7所示,计算机设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的工作和处理。在RAM703中,还存储有系统700操作所需的各种程序和数据。CPU701、ROM702、以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶反馈器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装如存储部分708。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包括用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由记录“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (14)
1.一种应用测试方法,其特征在于,包括:
基于目标应用的入口页面文件,确定入口页面控件和所述入口页面控件对应的入口页面控件类型信息;
基于所述入口页面控件对应的入口页面控件类型信息,触发所述入口页面控件确定所述目标应用的当前页面文件,重复基于所述当前页面文件的当前页面控件对应的当前页面控件类型信息,触发所述当前页面文件的当前页面控件确定新的当前页面文件,直到无法确定新的当前页面文件,形成对应所述目标应用中多个页面的多个控件的页面控件树;
确定所述页面控件树中每个层次的节点对应的待测试控件和待测试控件类型信息,并基于每个所述层次的所述待测试控件对应的所述待测试控件类型信息,对每个所述层次的所述待测试控件进行测试。
2.根据权利要求1所述的方法,其特征在于,所述基于目标应用的入口页面文件,确定入口页面控件和所述入口页面控件对应的入口页面控件类型信息,包括:
基于预设的XML解析方法和所述入口页面文件,得到入口页面XML信息;
基于所述入口页面XML信息,确定对应的入口页面控件属性信息和所述入口页面控件;
基于所述入口页面控件属性信息,得到所述入口页面控件类型信息。
3.根据权利要求2所述的方法,其特征在于,基于所述入口页面XML信息,确定所述入口页面控件,包括:
基于预设的路径定位语言对所述入口页面XML信息进行处理,确定所述入口页面控件。
4.根据权利要求2所述的方法,其特征在于,进一步包括:
在基于预设的XML解析方法和所述入口页面文件,得到入口页面XML信息之后,
基于所述入口页面XML信息,确定所述入口页面文件在目标应用中的入口页面层级和对应的入口页面控件数量。
5.根据权利要求1所述的方法,其特征在于,所述基于所述入口页面控件对应的入口页面控件类型信息,触发所述入口页面控件确定所述目标应用的当前页面文件,重复基于所述当前页面文件的当前页面控件对应的当前页面控件类型信息,触发所述当前页面文件的当前页面控件确定新的当前页面文件,直到无法确定新的当前页面文件,形成对应所述目标应用中多个页面的多个控件的页面控件树,包括:
基于所述入口页面控件和对应的所述入口页面控件类型信息,形成对应的根节点,并将所述根节点作为当前节点;对所述入口页面控件进行与所述入口页面控件类型信息对应的预设触发操作,确定所述入口页面控件指向的下一级页面文件为当前页面文件;
重复执行控件树生长步骤,直到无法确定任何所述当前页面控件指向的下一级页面文件,得到所述页面控件树;所述控件树生长步骤包括:基于当前页面文件,确定当前页面控件和所述当前页面控件对应的当前页面控件类型信息;基于所述当前页面控件和对应的所述当前页面控件类型信息,形成所述当前节点的子节点,并将所述子节点作为更新后的当前节点;对所述当前页面控件进行与对应的所述当前页面控件类型信息对应的预设触发操作,确定所述当前页面控件指向的下一级页面文件为更新后的当前页面文件。
6.根据权利要求5所述的方法,其特征在于,所述基于当前页面文件,确定当前页面控件和所述当前页面控件对应的当前页面控件类型信息,包括:
基于预设的XML解析方法和所述当前页面文件,得到当前页面XML信息;
基于所述当前页面XML信息,确定对应的当前页面控件属性信息和所述当前页面控件;
基于所述当前页面控件属性信息,得到所述当前页面控件类型信息。
7.根据权利要求6所述的方法,其特征在于,基于所述当前页面XML信息,确定所述当前页面控件,包括:
基于预设的路径定位语言对所述当前页面XML信息进行处理,确定所述当前页面控件。
8.根据权利要求6所述的方法,其特征在于,进一步包括:
在基于预设的XML解析方法和所述当前页面文件,得到当前页面XML信息之后,
基于所述当前页面XML信息,确定所述当前页面文件在目标应用中的当前页面层级和对应的当前页面控件数量。
9.根据权利要求1所述的方法,其特征在于,所述确定所述页面控件树中每个层次的节点对应的待测试控件和待测试控件类型信息,包括:
对所述页面控件树进行广度优先遍历,得到页面控件树中每个层次的节点对应的待测试控件和待测试控件类型信息。
10.根据权利要求1所述的方法,其特征在于,所述基于每个所述层次的所述待测试控件对应的所述待测试控件类型信息,对每个所述层次的所述待测试控件进行测试,包括:
基于所述待测试控件类型信息,确定预设测试功能类中的对应测试逻辑;
基于所述测试逻辑,对所述待测试控件进行测试。
11.根据权利要求10所述的方法,其特征在于,进一步包括:
在基于所述测试逻辑,对所述待测试控件进行测试之后,
基于预设的加载地址确定函数和所述待测试控件,确定所述待测试控件对应的跳转地址和起源地址。
12.一种应用测试装置,其特征在于,包括:
起始解析模块,用于基于目标应用的入口页面文件,确定入口页面控件和所述入口页面控件对应的入口页面控件类型信息;
控件树形成模块,用于基于所述入口页面控件对应的入口页面控件类型信息,触发所述入口页面控件确定所述目标应用的当前页面文件,重复基于所述当前页面文件的当前页面控件对应的当前页面控件类型信息,触发所述当前页面文件的当前页面控件确定新的当前页面文件,直到无法确定新的当前页面文件,形成对应所述目标应用中多个页面的多个控件的页面控件树;
控件测试模块,用于确定所述页面控件树中每个层次的节点对应的待测试控件和待测试控件类型信息,并基于每个所述层次的所述待测试控件对应的所述待测试控件类型信息,对每个所述层次的所述待测试控件进行测试。
13.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-11中任一项所述方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-11中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211674511.2A CN116302930A (zh) | 2022-12-26 | 2022-12-26 | 应用测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211674511.2A CN116302930A (zh) | 2022-12-26 | 2022-12-26 | 应用测试方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116302930A true CN116302930A (zh) | 2023-06-23 |
Family
ID=86784004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211674511.2A Pending CN116302930A (zh) | 2022-12-26 | 2022-12-26 | 应用测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116302930A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117093503A (zh) * | 2023-10-17 | 2023-11-21 | 杭银消费金融股份有限公司 | 一种客户端测试管理方法与系统 |
CN117349178A (zh) * | 2023-10-30 | 2024-01-05 | 新华三科技服务有限公司 | 用户页面测试方法及装置 |
-
2022
- 2022-12-26 CN CN202211674511.2A patent/CN116302930A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117093503A (zh) * | 2023-10-17 | 2023-11-21 | 杭银消费金融股份有限公司 | 一种客户端测试管理方法与系统 |
CN117093503B (zh) * | 2023-10-17 | 2024-02-06 | 杭银消费金融股份有限公司 | 一种客户端测试管理方法与系统 |
CN117349178A (zh) * | 2023-10-30 | 2024-01-05 | 新华三科技服务有限公司 | 用户页面测试方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2653887C (en) | Test script transformation architecture | |
US8694966B2 (en) | Identifying test cases to be run after changes to modules of a software application | |
US9465726B2 (en) | Abstract layer for automatic user interface testing | |
US9021442B2 (en) | Dynamic scenario testing of web application | |
CN116302930A (zh) | 应用测试方法和装置 | |
CN109117164B (zh) | 基于关键元素差异性分析的微服务更新方法及系统 | |
Bento et al. | Automated analysis of distributed tracing: Challenges and research directions | |
US20180046562A1 (en) | Identification of code features potentially associated with code behavior | |
US11113137B2 (en) | Error incident fingerprinting with unique static identifiers | |
US10649744B1 (en) | Systems and methods for handling renaming of programming constructs in programming environments | |
CN103905231A (zh) | 对设备类型统一管理的方法和装置 | |
CN108710571A (zh) | 一种生成自动化测试代码的方法和装置 | |
US9652358B1 (en) | Type widening for source code analysis | |
US9858173B2 (en) | Recording user-driven events within a computing system including vicinity searching | |
EP2105837B1 (en) | Test script transformation analyzer with change guide engine | |
CN110826057B (zh) | 数据处理路径的分析方法、计算机设备、存储介质 | |
CN104866425A (zh) | 一种数据库压力测试的方法 | |
US20240086165A1 (en) | Systems and methods for building and deploying machine learning applications | |
CN113835952B (zh) | 基于编译器代码注入的Linux系统调用监控方法 | |
US8924924B2 (en) | Representing the structure of a data format using a class-based representation | |
CN115185535A (zh) | 依赖关系显示方法及装置、存储介质及电子设备 | |
CN113987044A (zh) | 资产数据的导入处理方法、装置及电子设备 | |
CN109308256A (zh) | 一种java程序动态分析方法、设备和存储介质 | |
US9038049B2 (en) | Automated discovery of resource definitions and relationships in a scripting environment | |
CN117130946B (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 |