CN110928787B - 自动化测试脚本录制回放方法、装置、设备和存储介质 - Google Patents
自动化测试脚本录制回放方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN110928787B CN110928787B CN201911155633.9A CN201911155633A CN110928787B CN 110928787 B CN110928787 B CN 110928787B CN 201911155633 A CN201911155633 A CN 201911155633A CN 110928787 B CN110928787 B CN 110928787B
- Authority
- CN
- China
- Prior art keywords
- application program
- tested
- format file
- target
- recording
- 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
-
- 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
-
- 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
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)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种自动化测试脚本录制回放方法、装置、设备和存储介质。该方法包括:当监听到被测应用程序进程启动时,将预置的目标格式文件加载至被测应用程序进程中,目标格式文件中的代码用于实现自动化测试脚本的录制回放操作;调用目标格式文件中的初始化函数,建立被测应用程序进程与自动化测试辅助应用程序之间的通信;通过自动化测试辅助应用程序与PC端建立连接,以使PC端能够间接地与被测应用程序进程进行通信;运行被测应用程序进程时,执行目标格式文件中的代码,以完成自动化测试脚本的录制回放操作。上述技术方案提供了一种不依赖现有自动化测试框架也能完成自动化测试的实现方式。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种自动化测试脚本录制回放方法、装置、设备和存储介质。
背景技术
与安卓(Android)系统应用相关的自动化测试框架的脚本录制回放流程大致相同,其中,录制流程包括:控件查找→执行并记录操作→生成脚本,回放流程包括:解析脚本→查找控件→执行操作→生成测试报告。
主流的自动化测试框架主要是基于UiAutomator或AccessibilityService开发的,原因在于这两个服务都具备在被测APP(Application,应用程序)进程外部进行控件查找和动作执行的能力。
但是,基于UiAutomator或AccessibilityService开发的自动化测试框架也存在缺陷,主要包括:1)只能查找原生控件,不能直接查找Web元素,如果要在Web页面查找相应的元素,需要提供被测APP的签名文件或者开启被测APP WebView控件的调试(Debug)模式;2)由于动作执行在被测APP进程外触发,可能会导致在脚本回放时某些性能值无法采集或采集不准确,比如采集的点击响应时间可能超过实际响应时间。
发明内容
本发明实施例提供一种自动化测试脚本录制回放方法、装置、设备和存储介质,以提供一种不基于UiAutomator或AccessibilityService的自动化测试脚本录制回放服务的实现方式,并解决上述缺陷。
第一方面,本发明实施例提供了一种自动化测试脚本录制回放方法,包括:
当监听到被测应用程序进程启动时,将预置的目标格式文件加载至被测应用程序进程中,其中,所述目标格式文件中的代码用于实现自动化测试脚本的录制回放操作;
调用所述目标格式文件中的初始化函数,建立被测应用程序进程与自动化测试辅助应用程序之间的通信;
通过所述自动化测试辅助应用程序与PC端建立连接,以使所述PC端能够间接地与所述被测应用程序进程进行通信;
运行所述被测应用程序进程时,执行所述目标格式文件中的代码,以完成自动化测试脚本的录制回放操作。
第二方面,本发明实施例还提供了一种自动化测试脚本录制回放装置,包括:
目标格式文件加载模块,用于当监听到被测应用程序进程启动时,将预置的目标格式文件加载至被测应用程序进程中,其中,所述目标格式文件中的代码用于实现自动化测试脚本的录制回放操作;
应用程序间通信建立模块,用于调用所述目标格式文件中的初始化函数,建立被测应用程序进程与自动化测试辅助应用程序之间的通信;
终端间通信建立模块,用于通过所述自动化测试辅助应用程序与PC端建立连接,以使所述PC端能够间接地与所述被测应用程序进程进行通信;
脚本录制回放模块,用于运行所述被测应用程序进程时,执行所述目标格式文件中的代码,以完成自动化测试脚本的录制回放操作。
第三方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现任意实施例所述的自动化测试脚本录制回放方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任意实施例所述的自动化测试脚本录制回放方法。
本发明实施例中,在被测应用程序进程中加载用于实现自动化测试脚本的录制回放操作的目标格式文件,该目标格式文件中的代码运行在被测应用程序进程中,以此完成控件查找、动作执行、性能数据采集等一系列操作,实现了不依赖于UiAutomator或AccessibilityService也能完成自动化测试的技术效果。由于目标格式文件的代码运行在被测应用程序进程中,而非被测应用程序进程外,所以在回放过程中能够准确地采集到被测应用程序的一些内部性能数据,而且,即使在没有提供被测应用程序的签名文件或更改被测应用程序调试模式的情况下,也能实现直接准确地查找Web元素。
附图说明
图1是本发明实施例一提供的一种自动化测试脚本录制回放方法的流程图;
图2是本发明实施例二提供的一种自动化测试脚本录制回放方法的流程图;
图3是本发明实施例二提供的一种自动化测试脚本录制回放方法的实现架构图;
图4是本发明实施例二提供的一种自动化测试脚本回放后采集的数据示例图;
图5是本发明实施例三提供的一种自动化测试脚本录制回放装置的模块结构示意图;
图6是本发明实施例四提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1是本发明实施例一提供的一种自动化测试脚本录制回放方法的流程图,本实施例可适用于移动终端应用程序(尤其是安卓应用程序)进行自动化测试脚本录制回放的情况,该方法可以由本发明任意实施例提供的自动化测试脚本录制回放装置来执行,该装置可由硬件和/或软件组成,并一般可集成在计算机设备,例如是手机、平板电脑等之类的移动终端中。
如图1所示,本实施例提供的自动化测试脚本录制回放方法包括以下步骤:
S110、当监听到被测应用程序进程启动时,将预置的目标格式文件加载至被测应用程序进程中,其中,所述目标格式文件中的代码用于实现自动化测试脚本的录制回放操作。
被测应用程序(Application,APP),指的是运行在移动终端(例如手机端)上的、需要进行自动化测试的APP;目标格式文件,指的是具有特定文件格式的、包含有用于实现自动化测试脚本的录制回放操作的代码的文件。
具体的,当被测APP为被测安卓APP时,也即被测APP是运行在安卓系统上的APP时,目标格式文件可以是dex文件,dex文件格式是能够被DVM(Dalvik Virtual Machine,安卓虚拟机)或者ART(Android RunTime,安卓运行时)虚拟机识别、加载并执行的文件格式。
在当监听到被测应用程序进程启动时,将预置的目标格式文件加载在被测应用程序进程之前,还包括:
安装所述自动化测试辅助应用程序以及被测应用程序,并存储所述目标格式文件;启动所述自动化测试辅助应用程序准备环境,以及注入器。
其中,自动化测试辅助应用程序,指的是用于辅助被测APP完成自动化测试脚本录制回放的、运行在移动终端中的应用程序。注入器,指的是程序注入器,即在目标进程中注入一段可执行代码,该代码可以在目标进程中加载一个可执行文件。
在对被测APP进行自动化测试脚本录制回放之前,首先在移动终端中安装自动化测试辅助应用程序以及被测APP,并将目标格式文件存储在移动终端中,然后启动自动化测试辅助应用程序准备环境以及注入器,自动化测试辅助应用程序准备环境启动之后,自动化测试辅助应用程序即可正常运行。
具体的,可以基于PC端程序通过ADB(Android Debug Bridge,安卓调试桥)给移动终端安装好自动化测试辅助应用程序以及被测APP。
进一步的,作为一种可选的实施方式,可以将S110具体为:
通过所述注入器将目标钩子函数预埋在系统进程中,所述目标钩子函数用于监听所述被测应用程序进程是否启动;
当通过所述目标钩子函数监听到所述被测应用程序进程启动时,通过所述注入器将所述目标格式文件加载至所述被测应用程序进程中。
钩子,是一种hook机制,在一个函数那里预埋钩子,当所述函数被触发时,钩子就会生效。
注入器将目标钩子函数预埋到系统进程中,例如是将目标钩子函数预埋到zygote进程中,目的在于监听被测APP进程的启动,当监听到启动被测APP进程时,注入器就可以将预置的dex文件加载到被测APP进程中。
S120、调用所述目标格式文件中的初始化函数,建立被测应用程序进程与自动化测试辅助应用程序之间的通信。
在将预置的dex文件加载到被测APP进程中之后,调用dex文件的初始化函数,初始化函数运行时被测APP进程与自动化测试辅助应用程序建立通信连接,例如是建立Binder通信。
S130、通过所述自动化测试辅助应用程序与PC端建立连接,以使所述PC端能够间接地与所述被测应用程序进程进行通信。
在自动化测试辅助应用程序与被测APP进程建立通信连接之后,自动化测试辅助应用程序会建立与PC端的通信连接,可选的,自动化测试辅助应用程序启动一个socket服务等待PC端的连接,等PC端程序socket连接成功后,自动化测试辅助应用程序通过socket发送或接收指令及传输数据,进而PC端也就能间接地与被测APP通信了。至此,完成了被测APP与PC端的通信机制建立,被测APP可以执行PC端发送过来的指令,进而可以完成被测APP脚本的录制回放流程了。
S140、运行所述被测应用程序进程时,执行所述目标格式文件中的代码,以完成自动化测试脚本的录制回放操作。
其中,在执行所述目标格式文件中的代码,以完成自动化测试脚本的录制回放操作的过程中,包括:执行所述目标格式文件中的代码,以完成自动化测试脚本的录制回放流程中的控件查找、动作执行和数据采集操作。
dex文件中预置一些代码逻辑,目标在于完成控件查找、动作执行、性能数据采集等一系列操作。
具体的,当执行所述目标格式文件中的代码,完成控件查找操作时,通过被测应用程序的插桩方式获取当前目标组件的根视图控件,通过所述根视图控件根据文本和/或身份标识遍历视图树查找对应的控件;
当执行所述目标格式文件中的代码,完成Web元素查找操作时,通过被测应用程序的插桩方式获取当前目标组件的网页视图控件,并在所述网页视图控件中注入用于查找指定Web元素的目标代码。
可选的,当执行dex文件中的代码,完成控件查找操作时,首先通过被测APP的Instrumentation获取当前Activity组件的DecorView,再通过DecorView遍历View树根据文本、ID查找对应的控件。如果是查找的是Web元素,则在WebView中注入相应的js代码用于查找指定的Web元素。
当执行所述目标格式文件中的代码,完成动作执行操作时,根据动作类型确定动作坐标位置,并通过被测应用程序的插桩方式注入目标事件。
可选的,当执行dex文件中的代码,完成动作执行操作时,根据动作类型确定坐标位置,通过Instrumentation注入MotionEvent或KeyEvent等。
当执行所述目标格式文件中的代码,完成数据采集操作时,通过与目标采集数据匹配的应用程序接口或者钩子函数进行内部性能数据采集。
可选的,当执行dex文件中的代码,完成数据采集操作时,被测APP的一些内部运行数据都可以通过相应的应用程序接口(API)或者钩子函数(java hook)采集到,比如内存使用情况、网络请求状态等。
本发明实施例中,在被测应用程序进程中加载用于实现自动化测试脚本的录制回放操作的目标格式文件,该目标格式文件中的代码运行在被测应用程序进程中,以此完成控件查找、动作执行、性能数据采集等一系列操作,实现了不依赖于UiAutomator或AccessibilityService也能完成自动化测试的技术效果。由于目标格式文件的代码运行在被测应用程序进程中,而非被测应用程序进程外,所以在回放过程中能够准确地采集到被测应用程序的一些内部性能数据,而且,即使在没有提供被测应用程序的签名文件或更改被测应用程序调试模式的情况下,也能实现直接准确地查找Web元素。
实施例二
在上述实施例的基础上,以被测应用程序为安卓应用程序为例,本实施例提供了一种具体的实施方式。
如图2所示,本实施例提供的自动化测试脚本录制回放方法包括以下步骤:
S210、PC端程序通过ADB给移动终端安装好自动化测试辅助应用程序和被测APP,并将预置的dex文件存入移动终端中。
S220、移动终端启动所述自动化测试辅助应用程序的准备环境,以及注入器。
S230、移动终端中注入器将目标钩子函数预埋到zygote进程中,当监听到启动被测APP进程时,注入器将预置的dex文件加载到被测APP进程中,并调用dex文件的初始化函数,建立被测APP进程与自动化测试辅助应用程序的Binder通信连接。
其中,所述目标钩子函数的目的在于监听被测APP进程的启动。dex文件的初始化函数运行时,被测APP进程与自动化测试辅助应用程序建立Binder通信连接。
S240、移动终端中自动化测试辅助应用程序启动一个socket服务等待PC端的连接,等PC端程序socket连接成功后,使所述PC端能够间接地与所述被测应用程序进程进行通信。
如图3所示,移动终端中的自动化测试辅助应用程序与PC端建立socket连接,自动化测试辅助应用程序与被测APP进程建立Binder连接,以此使PC端能够间接地与移动终端中被测APP进程进行通信,被测APP可以执行PC端发送过来的指令。
S250、运行被测APP进程时,执行dex文件中的代码,完成自动化测试脚本录制回放流程中的控件查找、动作执行、性能数据采集等一系列操作。
具体的,当执行dex文件中的代码,完成控件查找操作时,首先通过被测APP的Instrumentation获取当前Activity组件的DecorView,再通过DecorView遍历View树根据文本、ID查找对应的控件。如果是查找的是Web元素,则在WebView中注入相应的js代码用于查找指定的Web元素。
当执行dex文件中的代码,完成动作执行操作时,根据动作类型确定坐标位置,通过Instrumentation注入MotionEvent或KeyEvent等。
当执行dex文件中的代码,完成数据采集操作时,被测APP的一些内部运行数据都可以通过相应的应用程序接口(API)或者钩子函数(java hook)采集到,比如内存使用情况、网络请求状态等,图4示出了一种自动化测试脚本回放后采集的数据示例。
在上述技术方案中,将预置的dex文件注入到被测APP进程中,当预置的dex文件正常地运行在被测APP进程中,即可完成自动化测试脚本录制回放流程中的控件查找、动作执行、数据采集等流程。上述自动化测试脚本录制回放流程不依赖于UiAutomator或AccessibilityService,在回放过程中能够准确地采集到被测应用程序的一些内部性能数据,而且,即使在没有提供被测应用程序的签名文件或更改被测应用程序调试模式的情况下,也能实现直接准确地查找Web元素。
实施例三
图5是本发明实施例三提供的一种自动化测试脚本录制回放装置的模块结构示意图,本实施例可适用于移动终端应用程序(尤其是安卓应用程序)进行自动化测试脚本录制回放的情况,该装置可以采用软件和/或硬件的方式实现,并一般可集成在计算机设备中,例如是手机、平板电脑等之类的移动终端中。
如图5所示,该装置包括:目标格式文件加载模块310、应用程序间通信建立模块320、终端间通信建立模块330和脚本录制回放模块340,其中,
目标格式文件加载模块310,用于当监听到被测应用程序进程启动时,将预置的目标格式文件加载至被测应用程序进程中,其中,所述目标格式文件中的代码用于实现自动化测试脚本的录制回放操作;
应用程序间通信建立模块320,用于调用所述目标格式文件中的初始化函数,建立被测应用程序进程与自动化测试辅助应用程序之间的通信;
终端间通信建立模块330,用于通过所述自动化测试辅助应用程序与PC端建立连接,以使所述PC端能够间接地与所述被测应用程序进程进行通信;
脚本录制回放模块340,用于运行所述被测应用程序进程时,执行所述目标格式文件中的代码,以完成自动化测试脚本的录制回放操作。
本发明实施例中,在被测应用程序进程中加载用于实现自动化测试脚本的录制回放操作的目标格式文件,该目标格式文件中的代码运行在被测应用程序进程中,以此完成控件查找、动作执行、性能数据采集等一系列操作,实现了不依赖于UiAutomator或AccessibilityService也能完成自动化测试的技术效果。由于目标格式文件的代码运行在被测应用程序进程中,而非被测应用程序进程外,所以在回放过程中能够准确地采集到被测应用程序的一些内部性能数据,而且,即使在没有提供被测应用程序的签名文件或更改被测应用程序调试模式的情况下,也能实现直接准确地查找Web元素。
具体的,所述目标格式文件包括dex文件,所述被测应用程序为被测安卓应用程序。
进一步的,上述装置还包括:预处理模块,用于在当监听到被测应用程序进程启动时,将预置的目标格式文件加载在被测应用程序进程之前,安装所述自动化测试辅助应用程序以及被测应用程序,并存储所述目标格式文件;启动所述自动化测试辅助应用程序准备环境,以及注入器。
进一步的,目标格式文件加载模块310,具体用于通过所述注入器将目标钩子函数预埋在系统进程中,所述目标钩子函数用于监听所述被测应用程序进程是否启动;当通过所述目标钩子函数监听到所述被测应用程序进程启动时,通过所述注入器将所述目标格式文件加载至所述被测应用程序进程中。
进一步的,脚本录制回放模块340,具体用于执行所述目标格式文件中的代码,以完成自动化测试脚本的录制回放流程中的控件查找、动作执行和数据采集操作。
进一步的,作为一种具体的实施方式,脚本录制回放模块340,具体用于:
当执行所述目标格式文件中的代码,完成控件查找操作时,通过被测应用程序的插桩方式获取当前目标组件的根视图控件,通过所述根视图控件根据文本和/或身份标识遍历视图树查找对应的控件;
当执行所述目标格式文件中的代码,完成Web元素查找操作时,通过被测应用程序的插桩方式获取当前目标组件的网页视图控件,并在所述网页视图控件中注入用于查找指定Web元素的目标代码;
当执行所述目标格式文件中的代码,完成动作执行操作时,根据动作类型确定动作坐标位置,并通过被测应用程序的插桩方式注入目标事件;
当执行所述目标格式文件中的代码,完成数据采集操作时,通过与目标采集数据匹配的应用程序接口或者钩子函数进行内部性能数据采集。
本发明实施例所提供的自动化测试脚本录制回放装置可执行本发明任意实施例所提供的自动化测试脚本录制回放方法,具备执行自动化测试脚本录制回放方法相应的功能模块和有益效果。
实施例四
图6是本发明实施例四提供的一种计算机设备的结构示意图,如图6所示,该计算机设备包括处理器40、存储器41、输入装置42和输出装置43;计算机设备中处理器40的数量可以是一个或多个,图6中以一个处理器40为例;计算机设备中的处理器40、存储器41、输入装置42和输出装置43可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的自动化测试脚本录制回放方法对应的程序指令/模块(例如,附图5所示的自动化测试脚本录制回放装置中的目标格式文件加载模块310、应用程序间通信建立模块320、终端间通信建立模块330和脚本录制回放模块340)。处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的自动化测试脚本录制回放方法。
存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置42可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置43可包括显示屏等显示设备。
实施例五
本发明实施例五还提供一种存储有计算机程序的计算机可读存储介质,计算机程序在由计算机处理器执行时用于执行一种自动化测试脚本录制回放方法,该方法包括:
当监听到被测应用程序进程启动时,将预置的目标格式文件加载至被测应用程序进程中,其中,所述目标格式文件中的代码用于实现自动化测试脚本的录制回放操作;
调用所述目标格式文件中的初始化函数,建立被测应用程序进程与自动化测试辅助应用程序之间的通信;
通过所述自动化测试辅助应用程序与PC端建立连接,以使所述PC端能够间接地与所述被测应用程序进程进行通信;
运行所述被测应用程序进程时,执行所述目标格式文件中的代码,以完成自动化测试脚本的录制回放操作。
当然,本发明实施例所提供的存储有计算机程序的计算机可读存储介质,其计算机程序不限于如上的方法操作,还可以执行本发明任意实施例所提供的自动化测试脚本录制回放方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
值得注意的是,上述自动化测试脚本录制回放装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (8)
1.一种自动化测试脚本录制回放方法,其特征在于,包括:
当监听到被测应用程序进程启动时,将预置的目标格式文件加载至被测应用程序进程中,其中,所述目标格式文件中的代码用于实现自动化测试脚本的录制回放操作;
调用所述目标格式文件中的初始化函数,建立被测应用程序进程与自动化测试辅助应用程序之间的通信;
通过所述自动化测试辅助应用程序与PC端建立连接,以使所述PC端能够间接地与所述被测应用程序进程进行通信;
运行所述被测应用程序进程时,执行所述目标格式文件中的代码,以完成自动化测试脚本的录制回放操作;
其中,执行所述目标格式文件中的代码,以完成自动化测试脚本的录制回放操作,包括:
执行所述目标格式文件中的代码,以完成自动化测试脚本的录制回放流程中的控件查找、动作执行和数据采集操作;
其中,执行所述目标格式文件中的代码,以完成自动化测试脚本的录制回放流程中的控件查找操作、动作执行操作和数据采集操作,包括:
当执行所述目标格式文件中的代码,完成控件查找操作时,通过被测应用程序的插桩方式获取当前目标组件的根视图控件,通过所述根视图控件根据文本和/或身份标识遍历视图树查找对应的控件;
当执行所述目标格式文件中的代码,完成Web元素查找操作时,通过被测应用程序的插桩方式获取当前目标组件的网页视图控件,并在所述网页视图控件中注入用于查找指定Web元素的目标代码;
当执行所述目标格式文件中的代码,完成动作执行操作时,根据动作类型确定动作坐标位置,并通过被测应用程序的插桩方式注入目标事件;
当执行所述目标格式文件中的代码,完成数据采集操作时,通过与目标采集数据匹配的应用程序接口或者钩子函数进行内部性能数据采集。
2.根据权利要求1所述的方法,其特征在于,所述目标格式文件包括dex文件,所述被测应用程序为被测安卓应用程序。
3.根据权利要求1或2所述的方法,其特征在于,在当监听到被测应用程序进程启动时,将预置的目标格式文件加载在被测应用程序进程之前,还包括:
安装所述自动化测试辅助应用程序以及被测应用程序,并存储所述目标格式文件;
启动所述自动化测试辅助应用程序准备环境,以及注入器。
4.根据权利要求3所述的方法,其特征在于,当监听到被测应用程序进程启动时,将预置的目标格式文件加载在被测应用程序进程中,包括:
通过所述注入器将目标钩子函数预埋在系统进程中,所述目标钩子函数用于监听所述被测应用程序进程是否启动;
当通过所述目标钩子函数监听到所述被测应用程序进程启动时,通过所述注入器将所述目标格式文件加载至所述被测应用程序进程中。
5.一种自动化测试脚本录制回放装置,其特征在于,包括:
目标格式文件加载模块,用于当监听到被测应用程序进程启动时,将预置的目标格式文件加载至被测应用程序进程中,其中,所述目标格式文件中的代码用于实现自动化测试脚本的录制回放操作;
应用程序间通信建立模块,用于调用所述目标格式文件中的初始化函数,建立被测应用程序进程与自动化测试辅助应用程序之间的通信;
终端间通信建立模块,用于通过所述自动化测试辅助应用程序与PC端建立连接,以使所述PC端能够间接地与所述被测应用程序进程进行通信;
脚本录制回放模块,用于运行所述被测应用程序进程时,执行所述目标格式文件中的代码,以完成自动化测试脚本的录制回放操作;
其中,所述脚本录制回放模块,包括:执行所述目标格式文件中的代码,以完成自动化测试脚本的录制回放流程中的控件查找、动作执行和数据采集操作;
其中,所述脚本录制回放模块,还包括:当执行所述目标格式文件中的代码,完成控件查找操作时,通过被测应用程序的插桩方式获取当前目标组件的根视图控件,通过所述根视图控件根据文本和/或身份标识遍历视图树查找对应的控件;
当执行所述目标格式文件中的代码,完成Web元素查找操作时,通过被测应用程序的插桩方式获取当前目标组件的网页视图控件,并在所述网页视图控件中注入用于查找指定Web元素的目标代码;
当执行所述目标格式文件中的代码,完成动作执行操作时,根据动作类型确定动作坐标位置,并通过被测应用程序的插桩方式注入目标事件;
当执行所述目标格式文件中的代码,完成数据采集操作时,通过与目标采集数据匹配的应用程序接口或者钩子函数进行内部性能数据采集。
6.根据权利要求5所述的装置,其特征在于,所述目标格式文件包括dex文件,所述被测应用程序为被测安卓应用程序。
7.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的自动化测试脚本录制回放方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一所述的自动化测试脚本录制回放方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911155633.9A CN110928787B (zh) | 2019-11-22 | 2019-11-22 | 自动化测试脚本录制回放方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911155633.9A CN110928787B (zh) | 2019-11-22 | 2019-11-22 | 自动化测试脚本录制回放方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110928787A CN110928787A (zh) | 2020-03-27 |
CN110928787B true CN110928787B (zh) | 2023-04-11 |
Family
ID=69850727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911155633.9A Active CN110928787B (zh) | 2019-11-22 | 2019-11-22 | 自动化测试脚本录制回放方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110928787B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115686334B (zh) * | 2022-10-31 | 2023-11-28 | 荣耀终端有限公司 | 操作控制的方法、电子设备及可读存储介质 |
CN115858400B (zh) * | 2023-02-27 | 2023-07-04 | 广州市玄武无线科技股份有限公司 | 一种移动app自动化测试任务编排系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7783927B2 (en) * | 2007-03-09 | 2010-08-24 | International Business Machines Corporation | Intelligent processing tools |
CN101025686A (zh) * | 2007-03-22 | 2007-08-29 | 中兴通讯股份有限公司 | 一种自动化测试系统及测试脚本的生成和运行方法 |
CN102012861A (zh) * | 2010-11-01 | 2011-04-13 | 北京航空航天大学 | 一种实时嵌入式软件测试结果数据分析的方法及系统 |
CN105335283B (zh) * | 2014-08-01 | 2018-07-06 | 阿里巴巴集团控股有限公司 | 终端设备中的应用测试方法及装置 |
CN105224456B (zh) * | 2015-09-29 | 2019-05-31 | 北京奇虎科技有限公司 | 一种测试脚本生成方法、装置和系统 |
CN108717393B (zh) * | 2018-05-16 | 2022-05-27 | 平安科技(深圳)有限公司 | 一种应用程序测试方法及移动终端 |
CN109710526A (zh) * | 2018-12-24 | 2019-05-03 | 北京云测信息技术有限公司 | 一种基于云服务自动化测试脚本录制回放系统及方法 |
-
2019
- 2019-11-22 CN CN201911155633.9A patent/CN110928787B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110928787A (zh) | 2020-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10977100B2 (en) | Method and system for automated agent injection in container environments | |
CN108595329B (zh) | 一种应用测试方法、装置及计算机存储介质 | |
US8683440B2 (en) | Performing dynamic software testing based on test result information retrieved in runtime using test result entity | |
US20130179865A1 (en) | Automated error checking system for a software application and method therefor | |
US20140211021A1 (en) | Test system for evaluating mobile device and driving method thereof | |
CN106991046B (zh) | 应用测试方法及装置 | |
CN108270837B (zh) | 一种利用闲置资源的分布式任务调度方法及系统 | |
CN110096424B (zh) | 测试的处理方法、装置、电子设备及存储介质 | |
CN103838663A (zh) | 一种应用程序的测试方法及装置 | |
CN111382048B (zh) | 真机测试平台上移动设备的管理方法和装置 | |
CN110928787B (zh) | 自动化测试脚本录制回放方法、装置、设备和存储介质 | |
CN107967207B (zh) | 用户界面交互功能的测试方法和装置 | |
CN115422063A (zh) | 一种低代码接口自动化系统、电子设备及存储介质 | |
CN109543417B (zh) | 一种基于Qemu平台的漏洞挖掘方法和装置 | |
CN106648762B (zh) | 一种搭建开发环境的方法及装置 | |
CN106708727B (zh) | 一种分布式病毒特征样本验证方法及系统 | |
CN107766068B (zh) | 应用系统补丁安装方法、装置、计算机设备和存储介质 | |
CN112612697A (zh) | 一种基于字节码技术的软件缺陷测试定位方法及系统 | |
CN111597111A (zh) | 一种应用程序启动速度监控方法以及装置 | |
CN111666200A (zh) | 一种pc软件冷启动耗时的测试方法及终端 | |
CN110795330A (zh) | 一种Monkey压力测试的方法和装置 | |
CN115454856A (zh) | 多应用的安全检测方法、装置、介质及电子设备 | |
CN112596750B (zh) | 应用测试方法、装置、电子设备及计算机可读存储介质 | |
CN111797016B (zh) | 应用程序的测试方法、设备、存储介质及装置 | |
CN109960636A (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 |