CN111078529B - 客户端写入模块测试方法、装置、电子设备 - Google Patents
客户端写入模块测试方法、装置、电子设备 Download PDFInfo
- Publication number
- CN111078529B CN111078529B CN201911121897.2A CN201911121897A CN111078529B CN 111078529 B CN111078529 B CN 111078529B CN 201911121897 A CN201911121897 A CN 201911121897A CN 111078529 B CN111078529 B CN 111078529B
- Authority
- CN
- China
- Prior art keywords
- plaintext
- writing module
- persistent data
- client
- data
- 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/368—Test management for test version control, e.g. updating test cases to a new software version
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- 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
技术领域
本申请实施例涉及计算机技术领域,特别是涉及一种客户端写入模块测试方法、装置、电子设备及计算机可读存储介质。
背景技术
在具有文本写入功能的客户端软件开发过程中,对文本写入功能的测试至关重要,例如写入模块的升级过程中,需要构造覆盖各种场景下的持久化数据,并将各种场景下的持久化数据分别在老版本和待发布版本客户端上分别运行,根据数据的运行结果确定待发布版本的客户端是否测试通过。现有技术的客户端写入模块的测试流程如下:人工构造各个场景的持久化数据,对待发布版本客户端的写入文本功能和持久化数据的完整性进行测试;卸载待发布版本客户端,安装老版本客户端,基于老版本客户端,人工构造各个场景的持久化数据;用待发布版本客户端更新老版本客户端,验证基于老版本构造的持久化数据在升级后的待发布版本客户端中的完整性。
可见,现有技术中的客户端写入模块测试方法需要人工构造多个场景的持久化数据,效率低下。另一方面,通过人工验证版本更新后的数据完整型,也存在效率低下的问题,并且,人工校验的精度不够高。
发明内容
本申请实施例提供一种客户端写入模块测试方法,有助于提升对客户端写入模块测试的效率。
为了解决上述问题,第一方面,本申请实施例提供了一种客户端写入模块测试方法,包括:
获取第一版本客户端的各写入模块在预设测试场景下的第一持久化数据,以及,获取第二版本客户端的各写入模块在所述预设测试场景下的第二持久化数据;
对所述第一持久化数据进行解析转换,得到与所述预设测试场景匹配的第一明文文本,以及,对所述第二持久化数据进行解析转换,得到与所述预设测试场景匹配的第二明文文本;
对所述第二明文文本和所述第一明文文本进行差异校验,根据差异校验结果确定所述第二版本客户端的所述写入模块在所述预设测试场景的测试结果。
第二方面,本申请实施例提供了一种客户端写入模块测试装置,包括:
持久化数据获取模块,用于获取第一版本客户端的各写入模块在预设测试场景下的第一持久化数据,以及,获取第二版本客户端的各写入模块在所述预设测试场景下的第二持久化数据;
明文文本转换模块,用于对所述第一持久化数据进行解析转换,得到与所述预设测试场景匹配的第一明文文本,以及,对所述第二持久化数据进行解析转换,得到与所述预设测试场景匹配的第二明文文本;
明文文本差异校验模块,用于对所述第二明文文本和所述第一明文文本进行差异校验,根据差异校验结果确定所述第二版本客户端的所述写入模块在所述预设测试场景的测试结果。
第三方面,本申请实施例还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请实施例所述的客户端写入模块测试方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时本申请实施例公开的客户端写入模块测试方法的步骤。
本申请实施例公开的客户端写入模块测试方法,通过获取第一版本客户端的各写入模块在预设测试场景下的第一持久化数据,以及,获取第二版本客户端的各写入模块在所述预设测试场景下的第二持久化数据;对所述第一持久化数据进行解析转换,得到与所述预设测试场景匹配的第一明文文本,以及,对所述第二持久化数据进行解析转换,得到与所述预设测试场景匹配的第二明文文本;对所述第二明文文本和所述第一明文文本进行差异校验,根据差异校验结果确定所述第二版本客户端的所述写入模块在所述预设测试场景的测试结果,有助于提升对客户端写入模块测试的效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一的客户端写入模块测试方法流程图;
图2是本申请实施例一中客户端一个页面中包括的写入模块示意图;
图3是本申请实施例一中客户端生成的持久化数据示意图;
图4是本申请实施例一中生成的明文文本示意图;
图5是本申请实施例三的客户端写入模块测试装置结构示意图之一;
图6是本申请实施例三的客户端写入模块测试装置结构示意图之二。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
本申请实施例公开的一种客户端写入模块测试方法,如图1所示,所述方法包括:步骤110至步骤130。
步骤110,获取第一版本客户端的各写入模块在预设测试场景下的第一持久化数据,以及,获取第二版本客户端的各写入模块在所述预设测试场景下的第二持久化数据。
本申请实施例公开的客户端写入模块测试方法用于测试页面上具有写入模块的客户端。本申请实施例中所述的写入模块是指客户端中提供用户输入信息能力的该功能模块。例如,图2所示的客户端页面中包括:星级选择模块210(提供选择星级的能力)、文本输入模块220和230(提供输入文本的能力)、图片模块240(提供上传图片的能力)。不同客户端、同一客户端的不同页面中可以包括各种类型的写入模块,本申请实施例对客户端包括的写入模块的类型和数量不做限定。
对象序列化是一个用于将对象状态转换为字节流的过程,可以将其保存到磁盘文件中或通过网络发送到任何其他程序。现有技术中,客户端在运行过程中会可以对客户端的当前页面执行对象序列化,存储当前页面的对象(即写入模块)的序列化数据;之后,将所述序列化数据存储在安装所述客户端的电子设备的非易失存储器中,得到当前页面的持久化数据。其中,所述持久化数据,即所述序列化数据中包括当前页面中各写入模块的序列化数据。客户端会将上述序列化数据保存在数据文件中。其中,数据文件中包括当前页面中包括的各写入模块的写入模块的标识、写入模块的写入数据等信息。
为了便于再次进入该页面时,用户能够看到前一次输入的信息,通常,客户端将各写入模块的数据以二进制文件的形式存储到指定目录下的数据文件中,并存储在所述客户端所安装在的电子设备的非易失存储器中。
生成持久化数据的具体方法参见现有技术对象序列化和持久化方法,本申请实施中不再赘述。持久化数据通常具有固定的文件格式。通常,所述持久化数据中包括各写入模块的序列信息和各写入模块的标识和各写入模块的写入数据。各写入模块的写入标识和写入数据按照预设格式存储,每个写入模块的相关数据按照各写入模块的序列信息在所述持久化数据中依次存储。其中,各写入模块的序列信息指示当前页面中各写入模块的声明先后顺序。本申请的一些实施例中,可以通过调用系统提供的文件读写接口获取电子设备的指定目录下存储的持久化数据。
本申请的一些实施例中,所述获取第一版本客户端的各写入模块在预设测试场景下的第一持久化数据,包括:通过执行指定的文件读取指令,获取所述第一版本客户端的各写入模块在预设测试场景下写入到所述第一版本客户端的宿主电子设备的预设目录下的第一持久化数据。同样的,所述获取第二版本客户端的各写入模块在所述预设测试场景下的第二持久化数据,包括:通过执行指定的文件读取指令,获取所述第二版本客户端的各写入模块在预设测试场景下写入到所述第二版本客户端的宿主电子设备的预设目录下的第二持久化数据。本申请实施例中所述的第一版本客户端代表老版本客户端,所述第二版本客户端代表待测试版本客户端,所述第一版本客户端和所述第二版本客户端为同一客户端软件的不同版本。将老版本客户端生成的持久化数据称为第一持久化数据,将新版本客户端生成的持久化数据成为第二持久化数据。下面结合具体测试场景举例说明获取第一持久化数据和第二持久化数据的技术方案。
当电子设备上运行老版本客户端时,在预设测试场景下(如在图2所示的页面,用户在文本输入模块230中输入的数字“100”,之后,用户点击页面右上角的“保存”按钮时)所述老版本客户端存储的页面P1的持久化数据称为第一持久化数据,所述第一持久化数据中包括页面P1的写入模块210至230的标识、类型、属性信息和用户输入的数据等数据结构的序列化信息。所述第一持久化数据以二进制文件的形式存储。如果老版本客户端的页面P1的实现程序代码中依次声明写入模块210至230的对象,则述第一持久化数据中写入模块210至230的相关数据的存储顺序从文件头开始,依次为写入模块210的相关数据、写入模块220的相关数据、写入模块230的相关数据。如图3中所示的是一部分第一持久化数据。
相应的,当电子设备上运行待测试版本客户端时,在同样测试场景下(即在图2所示的页面,用户在文本输入模块230中输入的数字“100”,之后,用户点击页面右上角的“保存”按钮时)所述待测试版本客户端存储的页面P1的持久化数据称为第二持久化数据,所述第二持久化数据中包括页面P1的写入模块210至230的标识、类型、属性信息和用户输入的数据等数据结构的序列化信息。所述第二持久化数据以二进制文件的形式存储。如果待测试客户端的页面P1的实现程序代码中依次声明写入模块210至230的对象,则述第一持久化数据中写入模块210至230的相关数据的存储顺序从文件头开始,依次为写入模块210的相关数据、写入模块220的相关数据、写入模块230的相关数据。
本申请的一些实施例中,可以通过在所述第一版本客户端和所述第二版本客户端的宿主电子设备上预设数据传输插件或数据传输应用,执行通过脚本语言工具封装的文件读取和传输命令,读取第一持久化数据和第二持久化数据,并传输至预设服务端。例如,当所述电子设备上为安卓操作系统时,可以通过ADB(Android Debug Bridge调试桥)命令封装得到的文件读取和传输工具,将第一版本客户端生成的第一持久化数据和第二版本客户端生成的第二持久化数据传输到云端服务器。
本申请一些实施例中,在通过执行指定的文件读取指令,获取所述第一版本客户端的各写入模块在预设测试场景下写入到所述第一版本客户端的宿主电子设备的预设目录下的第一持久化数据的步骤之后,还包括:在预设服务器端,基于客户端的版本维度对所述第一持久化数据和所述第二持久化数据进行存储。所述云端服务器按照所述第一版本客户端和所述第二版本客户端的版本信息,将不同客户端版本生成的持久化数据存储在不同数据库中。例如,所述云端服务器将所述第一版本客户端生成的第一持久化数据存储在第一数据库中,将所述第二版本客户端生成的第二持久化数据存储在第二数据库中,便于后续读取相应版本的持久化数据。
进一步的,针对每个测试场景都可以生成一份持久化数据,并上传到所述云端服务器进行存储。在后续各个版本测试过程中,可以重复使用参考版本的各个测试场景下生成的持久化数据,而不需要重新操作生成第一持久化数据。在本申请的一些实施例中,所述获取第一版本客户端的各写入模块在预设测试场景下的第一持久化数据,还包括:获取所述预设服务端预先存储的与所述第一版本客户端的版本信息匹配的持久化数据,其中,所述持久化数据选自于所述第一持久化数据或所述第二持久化数据。
以客户端APP的第一个版本的版本信息为1.0,第二个版本的版本信息为1.1举例,本申请实施例中的第一版本客户端表示为APP1.0,第二版本客户端表示为APP1.1,版本信息为1.0的APP中的写入模块为参考模块,作为测试结果的校验标准,预先存储在预设服务端。在测试1.1版本的APP时,可以直接从所述预设服务端读取1.0版本APP的各个测试场景生成的持久化数据(即第一持久化数据)作为标准数据,进行解析转换,得到标准明文文本;然后,将1.1版本APP生成的相应测试场景的第二持久化数据进行解析转换,生成第二明文文本;再将第二明文文本与标准明文文本进行对比校验。在测试1.2、1.3甚至后续更多版本的过程中,只要客户端的某个页面的写入模块的声明序列和声明结构没有发生变化,均可以采用该页面预先存储在所述预设服务端的持久化数据作为标准数据,而不需要重新执行一次1.0版本的APP,重新生成标准数据,可以提升测试效率。
本申请的另一些实施例中,如果1.1版本APP的某个页面测试通过之后,1.1版本APP生成的该页面的持久化数据也可以作为标准数据供后续版本进行对比校验。
步骤120,对所述第一持久化数据进行解析转换,得到与所述预设测试场景匹配的第一明文文本,以及,对所述第二持久化数据进行解析转换,得到与所述预设测试场景匹配的第二明文文本。
本申请实施例中所述的第一持久化数据和第二持久化数据为二进制格式的数据,即字节流形式的数据。本申请实施例中所述的第一明文文本和第二明文文本为可读性语言文本。
从字节流创建对象的相反的过程称为反序列化,即把字节流恢复为对象的过程,通过执行反序列化,现有技术中,通过对序列化对象数据执行反序列化处理,可以恢复页面P1的展示内容。本申请实施例中,借鉴反序列化的思想,通过对所述第一持久化数据和第二持久化数据进行解析,获取相应的写入模块的相关数据。
本申请一些实施例中,所述对所述第一持久化数据进行解析转换,得到与所述预设测试场景匹配的第一明文文本,包括:按照预设持久化数据格式对所述第一持久化数据进行解析,确定所述第一持久化数据中各写入模块的待校验信息;按照所述第一持久化数据中各所述写入模块的序列信息,根据所述第一持久化数据中各所述写入模块的待校验信息,生成与所述预设测试场景匹配的第一明文文本。其中,所述待校验信息包括各写入模块的序列信息和每个写入模块的声明信息、写入数据。
本申请一些实施例中,按照预设持久化数据格式对所述第一持久化数据进行解析的过程为:按照对象序列化规则,执行反序列化操作,对第一持久化数据进行解析,确定所述第一持久化数据中包括的对象序列信息和每个写入模块(即每个对象)的序列化数据。其中,每个写入模块的序列化数据包括客户端的程序代码对该写入对象进行声明的各种属性信息,如:写入模块标识、写入数据类型等,以及,写入数据取值。不同类型的写入模块,其属性信息可能不同,对该写入模块执行对象序列化操作时,生成的持久化数据也会相应变化。对象序列信息和每个写入模块(即每个对象)的序列化数据均属于写入模块的待校验信息。
二进制文件中的字节流序列指示客户端代码中对写入模块的声明顺序,和写入模块的数据结构的序列化信息。具体实施时,按照持久化数据的格式进行二进制数据解析,可以依次得到各写入模块的序列化数据(如模块标识、模块类型、写入数据类型、写入数据取值等)。进一步的,可以将得到的各模块的序列化数据,分别转化为明文文本,并按照各序列化数据的字节流序列将各序列化数据转换得到的明文文本依次写入第一明文文本文件中。本申请实施例中所述的明文文本至可读性语言文本。
本申请的一些实施例中所述明文文本可以为如图4所述的JSON(一种脚本语言)格式。本申请的另一些实施例中所述明文文本可以为XML格式等其他可读性语言文本,便于向测试人员直观地展示测试结果。在进行明文文本转换时,对于不同的明文,遵循该明文文本文件的生成格式。
同样的,所述获取第二版本客户端的各写入模块在所述预设测试场景下的第二持久化数据,包括:按照预设持久化数据格式对所述第二持久化数据进行解析,确定所述第二持久化数据中各写入模块的待校验信息;按照所述第二持久化数据中各所述写入模块的序列信息,根据所述第二持久化数据中各所述写入模块的待校验信息,生成与所述预设测试场景匹配的第二明文文本。对第二持久化数据进行解析,得到第二明文文本的具体实施方式与对第一持久化数据进行解析,得到第一明文文本的具体实施方式相同,此处不再赘述。
步骤130,对所述第二明文文本和所述第一明文文本进行差异校验,根据差异校验结果确定所述第二版本客户端的所述写入模块在所述预设测试场景的测试结果。
在同样的测试场景下,当第二版本客户端和第一版本客户端的页面P1包括的写入模块数量和声明顺序一致的情况下,第二版本客户端的页面P1的第一持久化数据和所述第一版本客户端的页面P1的第一持久化数据应该是一致的,通过对持久化数据进行解析后按照同样规则生成的明文文本中的对应的每一行中数据也应该是相同的。如果通果执行明文文本校验,确定第二明文文本和第一明文文本中有文本行中的数据不同,则说明第二版本客户端的相应写入模块与第一版本客户端中不一致。
因此,通过对第一明文文本和第二明文文本进行逐行比对,即可确定所述第二明文文本与所述第一明文文本中不一致的文本行。进一步的,由于明文文本具有可读性,测试人员可以根据不一致的明文文本行确定第二版本客户端与第一版本客户端中不一致的写入模块,实现高效对客户端的写入模块进行测试。
本申请的一些实施例中,所述对所述第二明文文本和所述第一明文文本进行差异校验,根据差异校验结果确定所述第二版本客户端的所述写入模块在所述预设测试场景的测试结果,包括:通过比较所述第一明文文本和所述第二明文文本中相对应行文本的字符差异,对所述第二明文文本和所述第一明文文本进行差异校验;在所述差异校验结果指示所述确定所述第二明文文本和所述第一明文文本存在差异的情况下,确定所述第二版本客户端的各所述写入模块与所述第一版本客户端的各所述写入模块不一致。例如,通过执行diff命令比较第一明文文本和第二明文文本之间的差异,并基于文本行对比较结果进行对比展示。测试人员根据对比展示的比较结果即可确定第二版本客户端与第一版本客户端在功能实现维度是否一致。
本申请的一些实施例中,所述第一明文文本和所述第二明文文本中包括各所述写入模块的标识和写入数据,所述在所述差异校验结果指示所述确定所述第二明文文本和所述第一明文文本存在差异的情况下,确定所述第二版本客户端的各所述写入模块与所述第一版本客户端的各所述写入模块不一致的步骤,包括:在所述差异校验结果指示所述第二明文文本和所述第一明文文本的相应文本行中所述写入模块的标识存在差异的情况下,确定所述第二版本客户端的所述标识对应的所述写入模块与所述第一版本客户端的所述标识对应的写入模块不一致。例如,当所述第一明文文本的第9行文本为:“content=“\u8349\u7a3f\u57fa\u51c6\u6570\u636e””,而所述第二明文文本的第9行文本为:“averagePrice={”时,所述差异校验结果将指示所述第二明文文本和所述第一明文文本的第9行文本行中所述写入模块的标识存在差异,此时,测试人员根据展示的差异校验结果即可确定所述第二版本客户端中对写入模块的声明与所述第一版本客户端不一致。
本申请的另一些实施例中,所述第一明文文本和所述第二明文文本中包括各所述写入模块的标识和写入数据,所述在所述差异校验结果指示所述确定所述第二明文文本和所述第一明文文本存在差异的情况下,确定所述第二版本客户端的各所述写入模块与所述第一版本客户端的各所述写入模块不一致的步骤,还包括:在所述差异校验结果指示所述第二明文文本和所述第一明文文本的相应文本行中所述写入模块的写入数据存在差异的情况下,确定所述第二版本客户端的所述标识对应的所述写入模块的写入数据不完整。例如,当所述第一明文文本的第9行文本为:“content=“\u8349\u7a3f\u57fa\u51c6\u6570\u636e””,而所述第二明文文本的第9行文本为:“content=“\u8349\u7a3f””时,所述差异校验结果将指示所述第二明文文本和所述第一明文文本的第9行文本行中所述写入模块的写入数据存在差异。此时,测试人员根据展示的差异校验结果即可确定所述第二版本客户端中在此测试场景下,与标识“content”对应的写入模块存在写入数据不完成的情况。
本申请实施例公开的客户端写入模块测试方法,通过获取第一版本客户端的各写入模块在预设测试场景下的第一持久化数据,以及,获取第二版本客户端的各写入模块在所述预设测试场景下的第二持久化数据;对所述第一持久化数据进行解析转换,得到与所述预设测试场景匹配的第一明文文本,以及,对所述第二持久化数据进行解析转换,得到与所述预设测试场景匹配的第二明文文本;对所述第二明文文本和所述第一明文文本进行差异校验,根据差异校验结果确定所述第二版本客户端的所述写入模块在所述预设测试场景的测试结果,有助于提升对客户端写入模块测试的效率。本申请实施例公开的客户端写入模块测试方法,利用客户端页面生成的持久化数据中的写入模块信息生成明文文本,通过比对明文文本确定不同版本之间的差异,进而实现客户端页面中写入模块的测试,不再需要测试人员通过操作客户端人工验证各写入模块写入数据的完整性。并且,通过比较基于页面的持久化数据转化的到明文,实现了基于数据级别的校验,准确度和可靠性更高。
实施例二
本申请另一些实施例中公开的客户端写入模块测试方法,在获取第一版本客户端的各写入模块在预设测试场景下的第一持久化数据,以及,获取第二版本客户端的各写入模块在所述预设测试场景下的第二持久化数据之前,还包括:通过运行Appium工具,获取第一版本客户端的各写入模块的标识和/或路径;调用Appium方法,通过所述写入模块的标识和/或路径对所述第一版本客户端的各所述写入模块设置所述预设测试场景的用户输入数据,生成测试用例数据;通过运行Appium工具,获取第二版本客户端的各写入模块的标识和/或路径;调用Appium方法,通过所述第二版本客户端的各所述写入模块的标识和/或路径,根据所述测试用例数据设置所述预设测试场景的用户输入数据。
Appium是一个开源工具,用于自动化测试iOS、Android和Windows桌面平台上的应用。Appium为CS(client-server,客户端-服务端)结构,在Appium的客户端,还提供一个Inspector(检查器)以查看待测试应用程序的层级结构。
本申请具体实施时,在计算机上搭建Appium测试环境之后,对Appium DesktopInspector(即Appium的客户端软件)进行配置,其中,需要配置的信息包括:安装待测试客户端的电子设备标识、安装待测试客户端的平台操作系统类型、安装待测试客户端的操作系统版本号、待测试客户端的应用包名称等信息。Appium的客户端软件将根据上述配置信息,在运行过程中获取待测试客户端的信息。
例如,在对待测试客户端进行测试的过程中,Appium的客户端软件启动运行之后,在Appium Desktop Inspector页面,点击放大按钮,打开inspector session,通过inspector页面配置待测试客户端的相关参数,如:安装待测试客户端的电子设备标识、安装待测试客户端的平台操作系统类型、安装待测试客户端的操作系统版本号、待测试客户端的应用包名称等。然后,启动session。inspector session可以获取配置的测试包名称对应的应用的页面结构,并展示页面结构和相应的页面。测试人员可以通过移动鼠标选择展示的页面中的区域,相应的,在inspector session的界面,可以看到选中区域中包括的写入模块的属性。如text、class、resource-id等。通过选择待测试应用的界面元素,并在inspector session配置针对该界面元素的测试数据,即可实现对该界面元素的测试。
以对用于发表评论的应用客户端的草稿保存功能模块进行测试为例,所述草稿保存功能模块即为本申请实施例中所述的数据写入模块,用于保存用户编辑的评论数据。所述草稿保存功能模块的页面包括多个写入模块,在启动Appium Desktop Inspector之后,Appium Desktop Inspector将获取到该页面的各写入模块的标识elementID和路径XPath,Appium Desktop Inspector将各写入模块的标识elementID和路径XPath来定位页面中的各个元素。例如,测试人员可以通过鼠标选择,AppiumDesktop Inspector显示的所述草稿保存功能模块的页面中的元素,然后在Appium Desktop Inspector中配置针对草稿保存功能模块的测试用例,模拟测试人员对页面的个写入模块进行测试。
Appium可以保存测试用例的数据,接下来用于第二版本客户端的测试。
通过Appium生成测试用例数据,可以降低测试人员输入测试数据的工作量,提升测试效率。另一方面,也规避了测试人员手动针对不同版本的客户端构造同样的测试场景用例时,由于输入数据不一致而导致的测试结果不可靠的问题。
实施例三
本申请实施例公开的一种客户端写入模块测试装置,如图5所示,所述装置包括:
持久化数据获取模块510,用于获取第一版本客户端的各写入模块在预设测试场景下的第一持久化数据,以及,获取第二版本客户端的各写入模块在所述预设测试场景下的第二持久化数据;
明文文本转换模块520,用于对所述第一持久化数据进行解析转换,得到与所述预设测试场景匹配的第一明文文本,以及,对所述第二持久化数据进行解析转换,得到与所述预设测试场景匹配的第二明文文本;
明文文本差异校验模块530,用于对所述第二明文文本和所述第一明文文本进行差异校验,根据差异校验结果确定所述第二版本客户端的所述写入模块在所述预设测试场景的测试结果。
本申请的一些实施例中,如图6所示,所述明文文本转换模块520进一步包括:第一明文文本转换子模块5201和第二明文文本转换子模块5202,其中,
所述第一明文文本转换子模块5201,用于按照预设持久化数据格式对所述第一持久化数据进行解析,确定所述第一持久化数据中各写入模块的待校验信息;以及,
按照所述第一持久化数据中各所述写入模块的序列信息,根据所述第一持久化数据中各所述写入模块的待校验信息,生成与所述预设测试场景匹配的第一明文文本;
所述第二明文文本转换子模块5202,用于按照预设持久化数据格式对所述第二持久化数据进行解析,确定所述第二持久化数据中各写入模块的待校验信息;以及,
按照所述第二持久化数据中各所述写入模块的序列信息,根据所述第二持久化数据中各所述写入模块的待校验信息,生成与所述预设测试场景匹配的第二明文文本。
本申请的一些实施例中,如图6所示,所述持久化数据获取模块510进一步包括:第一持久化数据获取子模块5101和第二持久化数据获取子模块5102,其中,
所述第一持久化数据获取子模块5101,用于通过执行指定的文件读取指令,获取所述第一版本客户端的各写入模块在预设测试场景下写入到所述第一版本客户端的宿主电子设备的预设目录下的第一持久化数据;
所述第二持久化数据获取子模块5102,用于通过执行指定的文件读取指令,获取所述第二版本客户端的各写入模块在预设测试场景下写入到所述第二版本客户端的宿主电子设备的预设目录下的第二持久化数据。
本申请的一些实施例中,所述第一持久化数据获取子模块5101,还用于在通过执行指定的文件读取指令,获取所述第一版本客户端的各写入模块在预设测试场景下写入到所述第一版本客户端的宿主电子设备的预设目录下的第一持久化数据之后,
在预设服务器端,基于客户端的版本维度对所述第一持久化数据进行存储;
所述第二持久化数据获取子模块5102,还用于在预设服务器端,基于客户端的版本维度对所述第二持久化数据进行存储。
相应的,所述第一持久化数据获取子模块5101还用于,获取所述预设服务端预先存储的与所述第一版本客户端的版本信息匹配的持久化数据,其中,所述持久化数据选自于所述第一持久化数据或所述第二持久化数据。
本申请的一些实施例中,所述对所述第二明文文本和所述第一明文文本进行差异校验,根据差异校验结果确定所述第二版本客户端的所述写入模块在所述预设测试场景的测试结果的步骤,包括:
通过比较所述第一明文文本和所述第二明文文本中相对应行文本的字符差异,对所述第二明文文本和所述第一明文文本进行差异校验;
在所述差异校验结果指示所述确定所述第二明文文本和所述第一明文文本存在差异的情况下,确定所述第二版本客户端的各所述写入模块与所述第一版本客户端的各所述写入模块不一致。
本申请的一些实施例中,所述第一明文文本和所述第二明文文本中包括各所述写入模块的标识和写入数据,所述在所述差异校验结果指示所述确定所述第二明文文本和所述第一明文文本存在差异的情况下,确定所述第二版本客户端的各所述写入模块与所述第一版本客户端的各所述写入模块不一致的步骤,包括:
在所述差异校验结果指示所述第二明文文本和所述第一明文文本的相应文本行中所述写入模块的标识存在差异的情况下,确定所述第二版本客户端的所述标识对应的所述写入模块与所述第一版本客户端的所述标识对应的写入模块不一致;或,
在所述差异校验结果指示所述第二明文文本和所述第一明文文本的相应文本行中所述写入模块的写入数据存在差异的情况下,确定所述第二版本客户端的所述标识对应的所述写入模块的写入数据不完整。
本申请实施例公开的客户端写入模块测试装置,用于实现本申请实施例一或实施例二中所述的客户端写入模块测试方法,装置的各模块的具体实施方式不再赘述,可参见方法实施例相应步骤的具体实施方式。
本申请实施例公开的客户端写入模块测试装置,通过获取第一版本客户端的各写入模块在预设测试场景下的第一持久化数据,以及,获取第二版本客户端的各写入模块在所述预设测试场景下的第二持久化数据;对所述第一持久化数据进行解析转换,得到与所述预设测试场景匹配的第一明文文本,以及,对所述第二持久化数据进行解析转换,得到与所述预设测试场景匹配的第二明文文本;对所述第二明文文本和所述第一明文文本进行差异校验,根据差异校验结果确定所述第二版本客户端的所述写入模块在所述预设测试场景的测试结果,有助于提升对客户端写入模块测试的效率。
本申请实施例公开的客户端写入模块测试装置,利用客户端页面生成的持久化数据中的写入模块信息生成明文文本,通过比对明文文本确定不同版本之间的差异,进而实现客户端页面中写入模块的测试,不再需要测试人员通过操作客户端人工验证各写入模块写入数据的完整性。并且,通过比较基于页面的持久化数据转化的到明文,实现了基于数据级别的校验,准确度和可靠性更高。
相应的,本申请还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例一或实施例二所述的客户端写入模块测试方法。所述电子设备可以为PC机、移动终端、个人数字助理、平板电脑等。
本申请还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例一或实施例二所述的客户端写入模块测试方法的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本申请提供的一种客户端写入模块测试方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
Claims (11)
1.一种客户端写入模块测试方法,其特征在于,包括:
获取第一版本客户端的各写入模块在预设测试场景下的第一持久化数据,以及,获取第二版本客户端的各写入模块在所述预设测试场景下的第二持久化数据;
对所述第一持久化数据进行解析转换,得到与所述预设测试场景匹配的第一明文文本,以及,对所述第二持久化数据进行解析转换,得到与所述预设测试场景匹配的第二明文文本;
对所述第二明文文本和所述第一明文文本进行差异校验,根据差异校验结果确定所述第二版本客户端的所述写入模块在所述预设测试场景的测试结果。
2.根据权利要求1所述的方法,其特征在于,所述对所述第一持久化数据进行解析转换,得到与所述预设测试场景匹配的第一明文文本的步骤,包括:
按照预设持久化数据格式对所述第一持久化数据进行解析,确定所述第一持久化数据中各写入模块的待校验信息;
按照所述第一持久化数据中各所述写入模块的序列信息,根据所述第一持久化数据中各所述写入模块的待校验信息,生成与所述预设测试场景匹配的第一明文文本;
所述获取第二版本客户端的各写入模块在所述预设测试场景下的第二持久化数据的步骤,包括:
按照预设持久化数据格式对所述第二持久化数据进行解析,确定所述第二持久化数据中各写入模块的待校验信息;
按照所述第二持久化数据中各所述写入模块的序列信息,根据所述第二持久化数据中各所述写入模块的待校验信息,生成与所述预设测试场景匹配的第二明文文本。
3.根据权利要求1所述的方法,其特征在于,所述获取第一版本客户端的各写入模块在预设测试场景下的第一持久化数据的步骤,包括:
通过执行指定的文件读取指令,获取所述第一版本客户端的各写入模块在预设测试场景下写入到所述第一版本客户端的宿主电子设备的预设目录下的第一持久化数据;
所述获取第二版本客户端的各写入模块在所述预设测试场景下的第二持久化数据的步骤,包括:
通过执行指定的文件读取指令,获取所述第二版本客户端的各写入模块在预设测试场景下写入到所述第二版本客户端的宿主电子设备的预设目录下的第二持久化数据。
4.根据权利要求3所述的方法,其特征在于,在通过执行指定的文件读取指令,获取所述第一版本客户端的各写入模块在预设测试场景下写入到所述第一版本客户端的宿主电子设备的预设目录下的第一持久化数据的步骤之后,还包括:
在预设服务器端,基于客户端的版本维度对所述第一持久化数据和所述第二持久化数据进行存储;
所述获取第一版本客户端的各写入模块在预设测试场景下的第一持久化数据的步骤,还包括:
获取预设服务端预先存储的与所述第一版本客户端的版本信息匹配的持久化数据,其中,所述持久化数据选自于所述第一持久化数据或所述第二持久化数据。
5.根据权利要求1所述的方法,其所述特征在于,所述对所述第二明文文本和所述第一明文文本进行差异校验,根据差异校验结果确定所述第二版本客户端的所述写入模块在所述预设测试场景的测试结果的步骤,包括:
通过比较所述第一明文文本和所述第二明文文本中相对应行文本的字符差异,对所述第二明文文本和所述第一明文文本进行差异校验;
在所述差异校验结果指示所述确定所述第二明文文本和所述第一明文文本存在差异的情况下,确定所述第二版本客户端的各所述写入模块与所述第一版本客户端的各所述写入模块不一致。
6.根据权利要求5所述的方法,其特征在于,所述第一明文文本和所述第二明文文本中包括各所述写入模块的标识和写入数据,所述在所述差异校验结果指示所述确定所述第二明文文本和所述第一明文文本存在差异的情况下,确定所述第二版本客户端的各所述写入模块与所述第一版本客户端的各所述写入模块不一致的步骤,包括:
在所述差异校验结果指示所述第二明文文本和所述第一明文文本的相应文本行中所述写入模块的标识存在差异的情况下,确定所述第二版本客户端的所述标识对应的所述写入模块与所述第一版本客户端的所述标识对应的写入模块不一致;或,
在所述差异校验结果指示所述第二明文文本和所述第一明文文本的相应文本行中所述写入模块的写入数据存在差异的情况下,确定所述第二版本客户端的所述标识对应的所述写入模块的写入数据不完整。
7.一种客户端写入模块测试装置,其特征在于,包括:
持久化数据获取模块,用于获取第一版本客户端的各写入模块在预设测试场景下的第一持久化数据,以及,获取第二版本客户端的各写入模块在所述预设测试场景下的第二持久化数据;
明文文本转换模块,用于对所述第一持久化数据进行解析转换,得到与所述预设测试场景匹配的第一明文文本,以及,对所述第二持久化数据进行解析转换,得到与所述预设测试场景匹配的第二明文文本;
明文文本差异校验模块,用于对所述第二明文文本和所述第一明文文本进行差异校验,根据差异校验结果确定所述第二版本客户端的所述写入模块在所述预设测试场景的测试结果。
8.根据权利要求7所述的装置,其特征在于,所述获取第一版本客户端的各写入模块在预设测试场景下的第一持久化数据的步骤,包括:
通过执行指定的文件读取指令,获取所述第一版本客户端的各写入模块在预设测试场景下写入到所述第一版本客户端的宿主电子设备的预设目录下的第一持久化数据;
所述获取第二版本客户端的各写入模块在所述预设测试场景下的第二持久化数据的步骤,包括:
通过执行指定的文件读取指令,获取所述第二版本客户端的各写入模块在预设测试场景下写入到所述第二版本客户端的宿主电子设备的预设目录下的第二持久化数据。
9.根据权利要求8所述的装置,其特征在于,在通过执行指定的文件读取指令,获取所述第一版本客户端的各写入模块在预设测试场景下写入到所述第一版本客户端的宿主电子设备的预设目录下的第一持久化数据的步骤之后,还包括:
在预设服务器端,基于客户端的版本维度对所述第一持久化数据和所述第二持久化数据进行存储;
所述获取第一版本客户端的各写入模块在预设测试场景下的第一持久化数据的步骤,还包括:
获取预设服务端预先存储的与所述第一版本客户端的版本信息匹配的持久化数据,其中,所述持久化数据选自于所述第一持久化数据或所述第二持久化数据。
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任意一项所述的客户端写入模块测试方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至6任意一项所述的客户端写入模块测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911121897.2A CN111078529B (zh) | 2019-11-15 | 2019-11-15 | 客户端写入模块测试方法、装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911121897.2A CN111078529B (zh) | 2019-11-15 | 2019-11-15 | 客户端写入模块测试方法、装置、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111078529A CN111078529A (zh) | 2020-04-28 |
CN111078529B true CN111078529B (zh) | 2023-07-14 |
Family
ID=70311030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911121897.2A Active CN111078529B (zh) | 2019-11-15 | 2019-11-15 | 客户端写入模块测试方法、装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078529B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015645A (zh) * | 2020-08-27 | 2020-12-01 | 云账户技术(天津)有限公司 | web系统的功能测试方法、装置和电子设备 |
CN115865809B (zh) * | 2023-02-02 | 2023-06-02 | 爱集微咨询(厦门)有限公司 | 数据传输方法、装置、电子设备以及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106919509A (zh) * | 2017-03-09 | 2017-07-04 | 腾讯科技(深圳)有限公司 | 一种客户端生成方法、装置及电子设备 |
CN109688139A (zh) * | 2018-12-27 | 2019-04-26 | 成都国信安信息产业基地有限公司 | 云平台安全检测系统 |
WO2019196213A1 (zh) * | 2018-04-12 | 2019-10-17 | 平安科技(深圳)有限公司 | 接口测试方法、装置、设备及计算机可读存储介质 |
CN110362479A (zh) * | 2019-06-19 | 2019-10-22 | 平安科技(深圳)有限公司 | 系统升级测试方法和系统 |
-
2019
- 2019-11-15 CN CN201911121897.2A patent/CN111078529B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106919509A (zh) * | 2017-03-09 | 2017-07-04 | 腾讯科技(深圳)有限公司 | 一种客户端生成方法、装置及电子设备 |
WO2019196213A1 (zh) * | 2018-04-12 | 2019-10-17 | 平安科技(深圳)有限公司 | 接口测试方法、装置、设备及计算机可读存储介质 |
CN109688139A (zh) * | 2018-12-27 | 2019-04-26 | 成都国信安信息产业基地有限公司 | 云平台安全检测系统 |
CN110362479A (zh) * | 2019-06-19 | 2019-10-22 | 平安科技(深圳)有限公司 | 系统升级测试方法和系统 |
Non-Patent Citations (1)
Title |
---|
张令芬 ; .JavaScript API自动化测试方案的管理设计与实现.电子设计工程.2016,第24卷(第2期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111078529A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111428462B (zh) | 通讯协议模板构建的方法及终端设备 | |
CN111061526B (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
US20080209405A1 (en) | Distributed debugging for a visual programming language | |
JP2003256202A (ja) | 整合性検査支援プログラム、整合性検査支援方法および整合性検査支援装置 | |
CN107526676B (zh) | 一种跨系统测试方法及装置 | |
CN110955409B (zh) | 在云平台上创建资源的方法和装置 | |
CN108804305A (zh) | 一种自动化测试的方法及装置 | |
US20050137844A1 (en) | Method for generating a language-independent regression test script | |
CN111078529B (zh) | 客户端写入模块测试方法、装置、电子设备 | |
CN111858376A (zh) | 请求报文生成方法和接口测试方法 | |
CN110780874A (zh) | 用于生成信息的方法和装置 | |
CN104049974A (zh) | 控件动态组装方法和系统 | |
CN115658529A (zh) | 用户页面的自动化测试方法以及相关设备 | |
CN113505082A (zh) | 应用程序测试方法及装置 | |
CN113704110A (zh) | 用户界面的自动化测试方法及装置 | |
CN109739704A (zh) | 一种接口测试方法、服务端及计算机可读存储介质 | |
CN112632425B (zh) | 一种离线资源文件的生成方法、装置、设备及存储介质 | |
CN113836014A (zh) | 一种接口测试方法、装置、电子设备和存储介质 | |
CN109474822B (zh) | 一种安卓电视多国语言自动化测试的方法及装置 | |
CN112052157A (zh) | 测试报文的构造方法、装置及系统 | |
CN107797917B (zh) | 性能测试脚本生成方法及装置 | |
CN115599361A (zh) | 一种软件的开发方法、装置、设备及介质 | |
CN114896161A (zh) | 基于人工智能的文件构造方法、装置、计算机设备及介质 | |
CN113722236B (zh) | 游戏调试方法、装置、设备、存储介质 | |
CN111522737B (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 |