CN109062810B - 一种应用程序的测试方法、装置、电子设备及存储介质 - Google Patents
一种应用程序的测试方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN109062810B CN109062810B CN201811126571.4A CN201811126571A CN109062810B CN 109062810 B CN109062810 B CN 109062810B CN 201811126571 A CN201811126571 A CN 201811126571A CN 109062810 B CN109062810 B CN 109062810B
- Authority
- CN
- China
- Prior art keywords
- test
- preset
- hookstore
- testing
- root element
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种应用程序的测试方法、装置、电子设备及存储介质,其中,方法包括:加载目标应用的测试页面hookstore;通过预设测试器对hookstore上的页面元素进行测试,其中,预设测试器由非原生语言编译而成;本发明的方法、装置、电子设备及存储介质,因为预设测试器是由非原生语言编译而成,所以,若目标应用是由非原生语言编译而成,则预设测试脚本可以通过自动加载该目标应用的hookstore,并通过预设测试器对该目标应用的hookstore上的页面元素进行自动测试,以完成对该目标应用的自动化测试。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种应用程序的测试方法、装置、电子设备及存储介质。
背景技术
传统的手机软件自动化测试都是通过部署自动化测试环境服务器,以执行第三方自动化测试框架,并加载单个手机平台程序现实应用,然后通过解析该软件的页面标签,来调用页面上的事件方法执行模拟人工操作。
但是,该传统的手机软件自动化测试方案都是基于原生代码编写项目的方案。例如,若手机软件是通过React Native框架,并采用JavaScript代码来开发的,则该传统的自动化测试方案并不能对该手机软件进行测试。
发明内容
本发明的主要目的在于提出一种应用程序的测试方法、装置、电子设备及存储介质,其克服了现有技术中不能对由非原生语言编译而成的手机软件进行测试的问题。
根据本发明的第一个方面,提供了一种应用程序的测试方法,所述方法包括:加载目标应用的测试页面hookstore;通过预设测试器对所述hookstore上的页面元素进行测试,其中,所述预设测试器由非原生语言编译而成。
可选的,所述页面元素包括:根元素及子元素;所述通过预设测试器对所述hookstore上的页面元素进行测试,包括:通过所述预设测试器对所述根元素进行测试,得到根元素测试结果;在得到所述根元素测试结果后,通过所述预设测试器对所述子元素的子单元进行测试,得到子单元测试结果。
可选的,在得到所述根元素测试结果后,所述方法还包括:将所述根元素测试结果抛给测试示波器;基于所述根元素所属的hookstore,通过所述测试示波器将所述根元素测试结果进行分类展示,其中,所述测试示波器是由非原生语言编译而成。
可选的,在得到所述子单元测试结果后,所述方法还包括:将所述子单元测试结果抛给测试示波器;基于所述子单元对应的功能模块,通过所述测试示波器将所述子单元测试结果进行分类展示,其中,所述测试示波器是由非原生语言编译而成。
可选的,所述方法还包括:通过钩子HOOK线程维持所述测试方法的持续执行。
可选的,所述加载的hookstore的数量为多个;基于预设顺序,通过所述预设测试器依次对每个所述hookstore上的页面元素进行测试。
根据本发明的第二个方面,提供了一种应用程序的测试装置,所述装置包括:加载模块,用于加载目标应用的测试页面hookstore;测试模块,用于通过预设测试器对所述hookstore上的页面元素进行测试,其中,所述预设测试器由非原生语言编译而成。
可选的,所述页面元素包括:根元素及子元素;所述测试模块具体用于:
通过所述预设测试器对所述根元素进行测试,得到根元素测试结果;在得到所述根元素测试结果后,通过所述预设测试器对所述子元素的子单元进行测试,得到子单元测试结果。
可选的,所述装置还包括:根元素测试结果抛出模块,用于在得到所述根元素测试结果后,将所述根元素测试结果抛给测试示波器;根元素测试结果展示模块,基于所述根元素所属的hookstore,通过所述测试示波器将所述根元素测试结果进行分类展示,其中,所述测试示波器是由非原生语言编译而成。
可选的,所述装置还包括:子单元测试结果抛出模块,用于在得到所述子单元测试结果后,将所述子单元测试结果抛给测试示波器;子单元测试结果展示模块,用于基于所述子单元对应的功能模块,通过所述测试示波器将所述子单元测试结果进行分类展示,其中,所述测试示波器是由非原生语言编译而成。
可选的,所述装置还包括:维持模块,用于通过钩子HOOK线程维持所述测试装置的持续执行。
可选的,所述加载的hookstore的数量为多个;所述测试模块,还具体用于基于预设顺序,通过所述预设测试器依次对每个所述hookstore上的页面元素进行测试。
根据本发明的第三个方面,提供了一种计算机设备,包括处理器和存储器;
所述存储器用于存储计算机指令,所述处理器用于运行所述存储器存储的计算机指令,以实现上述的一种应用程序的测试方法。
根据本发明的第四个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述的一种应用程序的测试方法。
本发明有益效果如下:因为预设测试器是由非原生语言编译而成,所以,若目标应用是由非原生语言编译而成,则预设测试脚本可以通过自动加载该目标应用的hookstore,并通过预设测试器对该目标应用的hookstore上的页面元素进行自动测试,以完成对该目标应用的自动化测试。而且,通过该测试方法,可有效的确定目标应用的运行状况,由此可提高目标应用的运行稳定性,保障了用户使用质量,此外,不仅可以降低开发人员与测试人员对自动化测试语言的学习成本,而且,也可减少预设测试脚本命令的编写、及降低开发人员与测试人员的工作量。
附图说明
图1为本发明第一实施例一种应用程序的测试方法的流程框图;
图2为本发明第二实施例一种应用程序的测试方法的流程框图;
图3为本发明第三实施例一种应用程序的测试方法的流程框图;
图4为本发明第四实施例一种应用程序的测试方法的流程框图;
图5为本发明第四实施例一种测试页面的结构示意图;
图6为本发明第五实施例一种应用程序的测试装置的结构示意图。
本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
在上下文中所称“电子设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。电子设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
所述电子设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述电子设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述电子设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的电子设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
为了便于理解本发明实施例,下面通过几个具体实施例对本发明的实施过程进行详细的阐述。
本发明第一实施例提供一种应用程序的测试方法,所述方法包括:加载目标应用的测试页面hookstore;通过预设测试器对所述hookstore上的页面元素进行测试,其中,所述预设测试器由非原生语言编译而成。
就此,因为预设测试器是由非原生语言编译而成,所以,若目标应用是由非原生语言编译而成,则预设测试脚本可以通过自动加载该目标应用的hookstore,并通过预设测试器对该目标应用的hookstore上的页面元素进行自动测试,以完成对该目标应用的自动化测试。而且,通过该测试方法,可有效的确定手机软件的运行状况,由此可提高手机软件的运行稳定性,保障了用户使用质量,此外,不仅可以降低开发人员与测试人员对自动化测试语言的学习成本,而且,也可减少预设测试脚本命令的编写、及降低开发人员与测试人员的工作量。
图1为本发明第一实施例一种应用程序的测试方法的流程框图。根据图1所示,本发明第一实施例提供了一种应用程序的测试方法,所述方法包括:
S11:加载目标应用的测试页面hookstore;
预设测试脚本可自动加载目标应用的hookstore,当然,该hookstore的数量可以为多个,也可以只有一个。
在本实施例中,该目标应用可为基于React Native框架且采用JavaScript代码开发得到的手机软件,即:该目标应用可由非原生语言编译而成。当然,该目标应用也可为基于原生代码开发得到的手机软件。
其中,该React Native是由FaceBook开源的一种开发框架,基于该React Native,可以使用JavaScript代码来调用客户端的代码,从而实现一套代码跨平台运行。
其中,该预设测试脚本可为基于Android平台开发的React Native程序JAVA,和/或,基于iOS平台开发的React Native程序Objective-C。
S12:通过预设测试器对所述hookstore上的页面元素进行测试,其中,所述预设测试器由非原生语言编译而成。
在预设测试脚本加载目标应用的hookstore后,预设测试脚本可以通过预设测试器对已加载的hookstore上的页面元素进行自动测试,其中,该预设测试器由非原生语言编译而成。所以,通过该预设测试器,可以对由非原生语言编译而成的目标应用上的页面元素进行自动化测试,即:通过该预设测试器,可以对由非原生语言编译而成的目标应用进行自动化测试。当然,通过该预设测试器,也可以对由原生语言编译而成的目标应用上的页面元素进行自动化测试,即:通过该预设测试器,可以对由原生语言编译而成的目标应用进行自动化测试。
当然,如果该加载的hookstore的数量为多个,则需要基于预设顺序,通过所述预设测试器依次对每个所述hookstore上的页面元素进行测试。
此外,在本实施例中,还需要通过钩子HOOK线程维持步骤S11-S12的持续执行。
就此,因为预设测试器是由非原生语言编译而成,所以,若目标应用是由非原生语言编译而成,则预设测试脚本可以通过自动加载该目标应用的hookstore,并通过预设测试器对该目标应用的hookstore上的页面元素进行自动测试,以完成对该目标应用的自动化测试。而且,通过该测试方法,可有效的确定目标应用的运行状况,由此可提高目标应用的运行稳定性,保障了用户使用质量,此外,不仅可以降低开发人员与测试人员对自动化测试语言的学习成本,而且,也可减少预设测试脚本命令的编写、及降低开发人员与测试人员的工作量。
图2为本发明第二实施例一种应用程序的测试方法的流程框图。根据图2所示,本发明第二实施例提供了一种应用程序的测试方法,所述方法包括:
S21:加载目标应用的测试页面hookstore;
预设测试脚本可自动加载目标应用的hookstore,当然,该hookstore的数量可以为多个,也可以只有一个。
在本实施例中,该目标应用可为基于React Native框架且采用JavaScript代码开发得到的手机软件,即:该目标应用可由非原生语言编译而成。当然,该目标应用也可为基于原生代码开发得到的手机软件。
其中,该React Native是由FaceBook开源的一种开发框架,基于该React Native,可以使用JavaScript代码来调用客户端的代码,从而实现一套代码跨平台运行。
其中,该预设测试脚本可为基于Android平台开发的React Native程序JAVA,和/或,基于iOS平台开发的React Native程序Objective-C。
此外,该页面元素包括:根元素及子元素。所以,本实施例还需执行以下步骤:
S22:通过所述预设测试器对该页面元素中的根元素进行测试,得到根元素测试结果;
在预设测试脚本加载目标应用的hookstore后,预设测试脚本可以通过预设测试器对已加载的hookstore上的根元素进行自动测试。
S23:在得到所述根元素测试结果后,通过所述预设测试器对所述子元素的子单元进行测试,得到子单元测试结果。
在得到根元素测试结果后,预设测试脚本可以继续通过预设测试器对已加载的hookstore上的子元素的子单元进行自动测试。
可选的,在得到根元素测试结果预设时间后,预设测试脚本可以继续通过预设测试器对已加载的hookstore上的子元素的子单元进行自动测试。具体的,通过在完成根元素测试与开始子元素的子单元测试之间间隔预设时间,可有效的避免二者的测试过程相互干扰,以避免导致测试过程紊乱。可选的,可以在测试根元素后,预设测试脚本暂停工作预设时间。
而且,在本实施例中,并不对该预设时间的数值大小进行限定,只需其大于等于零即可,如:5ms。
当然,如果该加载的hookstore的数量为多个,则需要基于预设顺序,通过预设测试器依次对每个hookstore进行测试。具体的,按照预设顺序,首先需要对第一个hookstore进行测试,具体的,对该第一个hookstore上的根元素进行测试,得到所有的根元素测试结果;在间隔预设时间后,再对该hookstore上的子元素的子单元进行测试,得到所有的子单元测试结果。接着,对第二个hookstore进行测试。当然,在每完成一个hookstore的测试后,预设测试脚本可检测是否还有未测试的hookstore,若有,则接着按照预设顺序对这些未测试的hookstore进行测试。
在完成对已加载的所有hookstore的测试后,该目标应用的测试过程才可视为完成。
此外,在本实施例中,还需要通过钩子HOOK线程维持步骤S21-S23的持续执行。
就此,因为预设测试器是由非原生语言编译而成,所以,若目标应用是由非原生语言编译而成,则预设测试脚本可以通过自动加载该目标应用的hookstore,并通过预设测试器对该目标应用的hookstore上的页面元素进行自动测试,以完成对该目标应用的自动化测试。而且,通过该测试方法,可有效的确定目标应用的运行状况,由此可提高目标应用的运行稳定性,保障了用户使用质量,此外,不仅可以降低开发人员与测试人员对自动化测试语言的学习成本,而且,也可减少预设测试脚本命令的编写、及降低开发人员与测试人员的工作量。
图3为本发明第三实施例一种应用程序的测试方法的流程框图。根据图3所示,本发明第三实施例提供了一种应用程序的测试方法,所述方法包括:
S31:加载目标应用的测试页面hookstore;
预设测试脚本可自动加载目标应用的hookstore,当然,该hookstore的数量可以为多个,也可以只有一个。
在本实施例中,该目标应用可为基于React Native框架且采用JavaScript代码开发得到的手机软件,即:该目标应用可由非原生语言编译而成。当然,该目标应用也可为基于原生代码开发得到的手机软件。
其中,该React Native是由FaceBook开源的一种开发框架,基于该React Native,可以使用JavaScript代码来调用客户端的代码,从而实现一套代码跨平台运行。
其中,该预设测试脚本可为基于Android平台开发的React Native程序JAVA,和/或,基于iOS平台开发的React Native程序Objective-C。
此外,该页面元素包括:根元素及子元素。所以,本实施例还需执行以下步骤:
S32:通过所述预设测试器对该页面元素中的根元素进行测试,得到根元素测试结果;
在预设测试脚本加载目标应用的hookstore后,预设测试脚本可以通过预设测试器对已加载的hookstore上的根元素进行自动测试。
S33:将所述根元素测试结果抛给测试示波器;基于所述根元素所属的hookstore,通过所述测试示波器将所述根元素测试结果进行分类展示,其中,所述测试示波器是由非原生语言编译而成;
在得到根元素测试结果后,预设测试脚本将该根元素测试结果抛给测试示波器。其中,该测试示波器是由非原生语言编译而成。
测试示波器在接收到根元素测试结果后,将根元素测试结果按照该根元素测试结果所属的hookstore进行分类展示。而且,因为该测试示波器是由非原生语言编译而成,所以,在该目标应用是由非原生语言编译而成时,通过该测试示波器可以对该根元素测试结果进行分类展示。
S34:在得到所述根元素测试结果后,通过所述预设测试器对所述子元素的子单元进行测试,得到子单元测试结果;
在得到根元素测试结果后,预设测试脚本可以继续通过预设测试器对已加载的hookstore上的子元素的子单元进行自动测试。
可选的,在得到根元素测试结果预设时间后,预设测试脚本可以继续通过预设测试器对已加载的hookstore上的子元素的子单元进行自动测试。具体的,通过在完成根元素测试与开始子元素的子单元测试之间间隔预设时间,可有效的避免二者的测试过程相互干扰,以避免导致测试过程紊乱。可选的,可以在测试根元素后,预设测试脚本暂停工作预设时间。
而且,在本实施例中,并不对该预设时间的数值大小进行限定,只需其大于等于零即可,如:5ms。
当然,如果该加载的hookstore的数量为多个,则需要基于预设顺序,通过预设测试器依次对每个hookstore进行测试。具体的,按照预设顺序,首先需要对第一个hookstore进行测试,具体的,对该第一个hookstore上的根元素进行测试,得到所有的根元素测试结果;在间隔预设时间后,再对该hookstore上的子元素的子单元进行测试,得到所有的子单元测试结果。接着,对第二个hookstore进行测试。当然,在每完成一个hookstore的测试后,预设测试脚本可检测是否还有未测试的hookstore,若有,则接着按照预设顺序对这些未测试的hookstore进行测试。
在完成对已加载的所有hookstore的测试后,该目标应用的测试过程才可视为完成。
S35:将所述子单元测试结果抛给测试示波器;基于所述子单元对应的功能模块,通过所述测试示波器将所述子单元测试结果进行分类展示。
其中,所述测试示波器是由非原生语言编译而成。
在得到子单元测试结果后,预设测试脚本将该子单元测试结果抛给测试示波器。
测试示波器在接收到子单元测试结果后,将子单元测试结果按照子单元对应的功能模块进行分类展示。而且,因为该测试示波器是由非原生语言编译而成,所以,在该目标应用是由非原生语言编译而成时,通过该测试示波器可以对该子单元测试结果进行分类展示。
可选的,该步骤S33可在步骤S34之后再执行。
此外,在本实施例中,还需要通过钩子HOOK线程维持步骤S31-S35的持续执行。
就此,因为预设测试器是由非原生语言编译而成,所以,若目标应用是由非原生语言编译而成,则预设测试脚本可以通过自动加载该目标应用的hookstore,并通过预设测试器对该目标应用的hookstore上的页面元素进行自动测试,以完成对该目标应用的自动化测试。而且,通过该测试方法,可有效的确定目标应用的运行状况,由此可提高目标应用的运行稳定性,保障了用户使用质量,此外,不仅可以降低开发人员与测试人员对自动化测试语言的学习成本,而且,也可减少预设测试脚本命令的编写、及降低开发人员与测试人员的工作量。
为了更好说明本实施例所述方法的实施过程,下面结合一个具体应用示例,对本实施例所述方法进行说明。
图4为本发明第四实施例一种应用程序的测试方法的流程框图;图5为本发明第四实施例一种测试页面的结构示意图。
根据图4所示,本发明第四实施例提供了一种应用程序的测试方法,该方法包括:
步骤1、加载目标应用的hookstore;
预设测试脚本加载目标应用的hookstore,其中,该hookstore如图5所示,该目标应用是由非原生语言编译而成,该hookstore的数量可以为多个,也可以只有一个。
在本实施例中,该目标应用可为基于React Native框架且采用JavaScript代码开发得到的手机软件,即:该目标应用可由非原生语言编译而成。当然,该目标应用也可为基于原生代码开发得到的手机软件。
其中,该React Native是由FaceBook开源的一种开发框架,基于该React Native,可以使用JavaScript代码来调用客户端的代码,从而实现一套代码跨平台运行。
其中,该预设测试脚本包括但不限于以下任意一种:基于Android平台开发的React Native程序JAVA、及基于iOS平台开发的React Native程序Objective-C。
步骤2、启动测试器Tester,以通过该Tester对已加载的hookstore上的根元素进行测试,得到根元素测试结果;
预设测试脚本启动Tester,其中,该Tester相当于第一至三实施例中的预设测试器,该Tester是由非原生语言编译而成。
步骤3、将根元素测试结果抛给测试示波器Test Scope;基于该根元素所属的hookstore,该Test Scope将该根元素测试结果进行分类展示;
步骤4、在得到根元素测试结果或将该根元素测试结果进行展示后,该预设测试脚本暂停工作5ms,在该5ms后,该预设测试脚本再次工作以启动Tester,通过该Tester依次对已加载的hookstore上的子元素的子单元进行测试,得到子单元测试结果;
步骤5、将子单元测试结果抛给测试示波器Test Scope;基于所述子单元对应的功能模块,通过所述测试示波器将所述子单元测试结果进行分类展示。
而且,如果该加载的hookstore的数量为多个,则需要基于预设顺序,通过预设测试器依次对每个hookstore进行测试。具体的,按照预设顺序,首先需要对第一个hookstore进行测试,具体的,对该第一个hookstore上的根元素进行测试,得到所有的根元素测试结果;在间隔5ms后,再对该hookstore上的子元素的子单元进行测试,得到所有的子单元测试结果。接着,对第二个hookstore进行测试。当然,在每完成一个hookstore的测试后,预设测试脚本可检测是否还有未测试的hookstore,具体的,执行以下步骤6:
步骤6、预设测试脚本检测是否还有未测试的hookstore;若有,则执行步骤2,以接着按照预设顺序对这些未测试的hookstore进行测试;否则,结束流程。
而且,在本实施例中,还通过HOOK线程保持上述步骤1-6的持续执行。
就此,因为预设测试器是由非原生语言编译而成,所以,若目标应用是由非原生语言编译而成,则预设测试脚本可以通过自动加载该目标应用的hookstore,并通过预设测试器对该目标应用的hookstore上的页面元素进行自动测试,以完成对该目标应用的自动化测试。而且,通过该测试方法,可有效的确定目标应用的运行状况,由此可提高目标应用的运行稳定性,保障了用户使用质量,此外,不仅可以降低开发人员与测试人员对自动化测试语言的学习成本,而且,也可减少预设测试脚本命令的编写、及降低开发人员与测试人员的工作量。
图6为本发明第五实施例一种应用程序的测试装置的结构示意图。根据图6所示,本发明第五实施例提供了一种应用程序的测试装置,所述装置包括:加载模块110,用于加载目标应用的测试页面hookstore;测试模块120,用于通过预设测试器对所述hookstore上的页面元素进行测试,其中,所述预设测试器由非原生语言编译而成。
可选的,所述页面元素包括:根元素及子元素;所述测试模块120具体用于:通过所述预设测试器对所述根元素进行测试,得到根元素测试结果;在得到所述根元素测试结果后,通过所述预设测试器对所述子元素的子单元进行测试,得到子单元测试结果。
可选的,所述装置还包括:根元素测试结果抛出模块,用于在得到所述根元素测试结果后,将所述根元素测试结果抛给测试示波器;根元素测试结果展示模块,基于所述根元素所属的hookstore,通过所述测试示波器将所述根元素测试结果进行分类展示,其中,所述测试示波器是由非原生语言编译而成。
可选的,所述装置还包括:子单元测试结果抛出模块,用于在得到所述子单元测试结果后,将所述子单元测试结果抛给测试示波器;子单元测试结果展示模块,用于基于所述子单元对应的功能模块,通过所述测试示波器将所述子单元测试结果进行分类展示,其中,所述预设测试器由非原生语言编译而成。
可选的,所述装置还包括:维持模块,用于通过钩子HOOK线程维持所述测试装置的持续执行。
可选的,所述加载的hookstore的数量为多个;测试模块,还具体用于基于预设顺序,通过所述预设测试器依次对每个所述hookstore上的页面元素进行测试。
本发明第六实施例提供了一种电子设备,包括处理器和存储器;所述存储器用于存储计算机指令,所述处理器用于运行所述存储器存储的计算机指令,以实现上述的一种应用程序的测试方法。
本发明第六实施例中的一种电子设备所涉及的名词及实现原理具体可以参照本发明实施例中的第一至四实施例的一种应用程序的测试方法,在此不再赘述。
本发明第六实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个模块,所述一个或者多个模块可被一个或者多个处理器执行,以实现上述的一种应用程序的测试方法。
本发明第六实施例中的一种计算机可读存储介质所涉及的名词及实现原理具体可以参照本发明实施例中的第一至四实施例的一种应用程序的测试方法,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (14)
1.一种应用程序的测试方法,其特征在于,所述方法包括:
加载目标应用的测试页面hookstore;
通过预设测试器对所述hookstore上的页面元素进行测试,其中,所述预设测试器由非原生语言编译而成,所述目标应用为基于React Native框架开发的,hookstore为ReactNative的状态管理库。
2.根据权利要求1所述的方法,其特征在于,所述页面元素包括:根元素及子元素;
所述通过预设测试器对所述hookstore上的页面元素进行测试,包括:
通过所述预设测试器对所述根元素进行测试,得到根元素测试结果;
在得到所述根元素测试结果后,通过所述预设测试器对所述子元素的子单元进行测试,得到子单元测试结果。
3.根据权利要求2所述的方法,其特征在于,在得到所述根元素测试结果后,所述方法还包括:
将所述根元素测试结果抛给测试示波器;
基于所述根元素所属的hookstore,通过所述测试示波器将所述根元素测试结果进行分类展示,其中,所述测试示波器是由非原生语言编译而成。
4.根据权利要求2所述的方法,其特征在于,在得到所述子单元测试结果后,所述方法还包括:
将所述子单元测试结果抛给测试示波器;
基于所述子单元对应的功能模块,通过所述测试示波器将所述子单元测试结果进行分类展示,其中,所述测试示波器是由非原生语言编译而成。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:通过钩子HOOK线程维持所述测试方法的持续执行。
6.根据权利要求1所述的方法,其特征在于,所述加载的hookstore的数量为多个;
基于预设顺序,通过所述预设测试器依次对每个所述hookstore上的页面元素进行测试。
7.一种应用程序的测试装置,其特征在于,所述装置包括:
加载模块,用于加载目标应用的测试页面hookstore;
测试模块,用于通过预设测试器对所述hookstore上的页面元素进行测试,其中,所述预设测试器由非原生语言编译而成,所述目标应用为基于React Native框架开发的,hookstore为React Native的状态管理库。
8.根据权利要求7所述的装置,其特征在于,所述页面元素包括:根元素及子元素;
所述测试模块具体用于:
通过所述预设测试器对所述根元素进行测试,得到根元素测试结果;
在得到所述根元素测试结果后,通过所述预设测试器对所述子元素的子单元进行测试,得到子单元测试结果。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
根元素测试结果抛出模块,用于在得到所述根元素测试结果后,将所述根元素测试结果抛给测试示波器;
根元素测试结果展示模块,基于所述根元素所属的hookstore,通过所述测试示波器将所述根元素测试结果进行分类展示,其中,所述测试示波器是由非原生语言编译而成。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
子单元测试结果抛出模块,用于在得到所述子单元测试结果后,将所述子单元测试结果抛给测试示波器;
子单元测试结果展示模块,用于基于所述子单元对应的功能模块,通过所述测试示波器将所述子单元测试结果进行分类展示,其中,所述测试示波器是由非原生语言编译而成。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括:
维持模块,用于通过钩子HOOK线程维持所述测试装置的持续执行。
12.根据权利要求7所述的装置,其特征在于,所述加载的hookstore的数量为多个;
所述测试模块,还具体用于基于预设顺序,通过所述预设测试器依次对每个所述hookstore上的页面元素进行测试。
13.一种计算机设备,其特征在于,包括处理器和存储器;
所述存储器用于存储计算机指令,所述处理器用于运行所述存储器存储的计算机指令,以实现权利要求1至6中任一项所述的一种应用程序的测试方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1至6中任一项所述的一种应用程序的测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811126571.4A CN109062810B (zh) | 2018-09-26 | 2018-09-26 | 一种应用程序的测试方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811126571.4A CN109062810B (zh) | 2018-09-26 | 2018-09-26 | 一种应用程序的测试方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109062810A CN109062810A (zh) | 2018-12-21 |
CN109062810B true CN109062810B (zh) | 2022-05-06 |
Family
ID=64766139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811126571.4A Active CN109062810B (zh) | 2018-09-26 | 2018-09-26 | 一种应用程序的测试方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109062810B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536863A (zh) * | 2014-12-08 | 2015-04-22 | 广东欧珀移动通信有限公司 | 一种应用程序的测试方法及装置 |
CN105354143A (zh) * | 2015-12-02 | 2016-02-24 | 北京奇虎科技有限公司 | 一种用于应用程序的测试方法及装置 |
CN106502905A (zh) * | 2016-10-26 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 一种应用程序的测试方法、装置及系统 |
-
2018
- 2018-09-26 CN CN201811126571.4A patent/CN109062810B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536863A (zh) * | 2014-12-08 | 2015-04-22 | 广东欧珀移动通信有限公司 | 一种应用程序的测试方法及装置 |
CN105354143A (zh) * | 2015-12-02 | 2016-02-24 | 北京奇虎科技有限公司 | 一种用于应用程序的测试方法及装置 |
CN106502905A (zh) * | 2016-10-26 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 一种应用程序的测试方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109062810A (zh) | 2018-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8799875B2 (en) | Streamlining unit testing through hot code swapping | |
US9898396B2 (en) | Automated software testing and validation via graphical user interface | |
CN105302722B (zh) | Cts自动测试方法及装置 | |
CN110716870B (zh) | 服务的自动化测试方法及装置 | |
US20090204945A1 (en) | Utilizing intelligent automated scripts to test software applications | |
US9645911B2 (en) | System and method for debugging firmware/software by generating trace data | |
CN108197024B (zh) | 嵌入式浏览器调试方法、调试终端及计算机可读存储介质 | |
CN107391362A (zh) | 应用测试方法、移动终端及存储介质 | |
CN104850476A (zh) | 跨平台接口自动化测试方法及系统 | |
CN111414309B (zh) | 应用程序的自动化测试方法、计算机设备和存储介质 | |
CN112269742A (zh) | 一种基于jenkins的自动化白盒测试方法、装置及可读存储介质 | |
CN108572892B (zh) | 一种基于PowerPC多核处理器的离线测试方法和装置 | |
CN112148594A (zh) | 一种脚本测试方法、装置、电子设备及存储介质 | |
CN107818051B (zh) | 一种测试用例的跳转分析方法、装置及服务器 | |
CN109062810B (zh) | 一种应用程序的测试方法、装置、电子设备及存储介质 | |
CN109815127B (zh) | 自动化脚本转换方法、装置、计算机设备和存储介质 | |
CN110569198A (zh) | 一种业务功能自动化测试方法及装置 | |
CN114942890B (zh) | 一种用户界面测试方法、装置、设备及介质 | |
CN108132799B (zh) | 过程间静态程序分析信息提取方法、装置及设备 | |
CN110795341A (zh) | 一种服务器的自动测试方法、系统及装置 | |
CN111177014B (zh) | 软件自动测试方法、系统及存储介质 | |
CN106682249B (zh) | 模型无关的通用发布/订阅接口测试系统及方法 | |
CN111008140B (zh) | 一种跨平台的ui自动化测试方法及装置 | |
Chen et al. | A gui-based automated test system for android applications | |
CN112463602A (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 |