一种Web页面自动化测试方法及相关设备与流程

文档序号:21592477发布日期:2020-07-24 16:40阅读:205来源:国知局
一种Web页面自动化测试方法及相关设备与流程

本申请涉及计算机技术领域,尤其涉及一种web页面自动化测试方法及相关设备。



背景技术:

随着互联网技术的发展,手机、平板电脑、智能电视一体机等终端上的应用程序也越来越多,功能越来越丰富。每种应用程序在编写完成时,技术人员需要对该应用程序进行测试,测试成功后才发布该应用程序。

在对终端中应用程序的web页面进行自动化测试时,技术人员大多采用代理服务器转发开发设备发出的测试指令至终端,并将终端执行完测试指令返回的测试结果转发至开发设备,从而完成对终端的web页面的测试。在使用代理服务器对终端进行测试之前,技术人员需要先对终端的网络环境进行设置,使开发设备和终端处于同一个局域网内,代理服务器才能对开发设备发出的测试指令和终端返回的测试结果进行转发。对终端的网络环境进行设置,即在终端的系统设置中输入开发设备的局域网ip和代理服务器的默认端口号,使终端与开发设备处于同一个局域网内。

上述针对web页面的自动化测试方法在对终端进行测试之前,需要对终端的网络环境进行设置,这会对被测应用程序的网络逻辑造成干扰,同时,导致测试过程中测试指令无法覆盖一些只能在真实运行环境中可以执行的特定指令(比如隐藏qq音乐的播放状态栏、跳转到指定的qq音乐内页面等),使得执行测试指令后的web页面与真实运行环境中执行特定指令后的web页面产生执行效果上的差异,也就是说,上述方法不能保证web页面可以在与真实运行环境一致的测试环境下进行测试,会导致技术人员在测试的过程中难以快速、准确地对出现的问题进行定位。



技术实现要素:

本申请实施例公开了一种web页面自动化测试方法及相关设备,能够保证web页面可以在与真实运行环境一致的测试环境下进行测试,提高测试的覆盖率和准确率。

第一方面,本申请提供一种web页面自动化测试方法,所述方法包括:

开发设备基于所述开发设备与被测设备之间的数据线与所述被测设备建立通信通道;

所述开发设备通过所述通信通道发送测试指令至所述被测设备,所述测试指令指示所述被测设备获取目标web页面的目标数据信息;

所述开发设备获取所述被测设备返回的所述目标web页面的目标数据信息。

在一种可能的实施方式中,所述测试指令中包括预设javascript代码,所述预设javascript代码用于指示所述被测设备获取所述目标数据信息。

在一种可能的实施方式中,所述开发设备获取所述被测设备返回的所述目标web页面的目标数据信息,包括:

所述开发设备通过所述通信通道启动androidlogcat;

所述开发设备通过所述androidlogcat监听所述被测设备输入至日志信息中的所述目标web页面的目标数据信息。

在一种可能的实施方式中,所述开发设备获取所述被测设备返回的所述目标web页面的目标数据信息,包括:

所述开发设备通过所述被测设备上的目标文件获取所述被测设备输入至所述目标文件中的所述目标web页面的目标数据信息。

在一种可能的实施方式中,所述被测设备的测试环境与所述被测设备的运行环境一致,其中,所述被测设备的测试环境指所述被测设备执行所述测试指令时的网络环境,所述被测设备的运行环境指用户使用所述被测设备时的网络环境。

在一种可能的实施方式中,所述目标数据信息包括以下任意一种或者多种:标签元素信息、图片元素信息、文字元素信息、所述目标web页面的标题、所述目标web页面打开过程中的消耗时间或所述目标web页面是否加载完毕。

在一种可能的实施方式中,所述目标web页面为基于被测应用程序中的webview的web页面,所述开发设备通过所述通信通道发送测试指令至所述被测设备,包括:

所述开发设备通过所述通信通道发送所述测试指令至所述被测设备上的被测应用程序,以使所述被测应用程序将所述测试指令发送至所述被测应用程序中的webview,所述测试指令指示所述被测应用程序中的webview获取所述目标web页面的目标数据信息;

所述开发设备获取所述被测设备返回的所述目标web页面的目标数据信息,包括:

所述开发设备获取所述被测设备上的所述被测应用程序返回的所述目标web页面的目标数据信息,其中,所述被测应用程序返回的所述目标web页面的目标数据信息是由所述被测应用程序中的webview返回至所述被测应用程序的。

可以看出,本申请提供的web页面自动化测试方法,开发设备与被测设备通过数据线连接,并进一步建立与被测设备之间的通信通道adb后,开发设备可以通过adb发送测试指令至被测设备获取被测设备的web页面的数据信息,上述方法不依靠网络进行命令传输,无需对被测设备的网络环境进行额外设置,因此能够有效避免对被测设备的应用程序的网络逻辑的干扰。同时,可以保证web页面在被测试时的测试环境和在实际运行时的运行环境是一致的,有利于技术人员在测试的过程中能够快速、准确地对出现的问题进行定位,提高测试的覆盖率和准确率。另外,本申请通过在测试指令中包括预设javascript代码,不仅能够实现开发设备对被测设备上的传统应用程序的web页面的测试,而且预设javascript代码不会受限于webview对web页面的渲染方式,能够实现开发设备对被测设备上的应用程序中的webview的web页面的测试,从而实现了应用程序中的webview的web页面的测试和传统应用程序的web页面的测试的一致性,进一步提高web页面自动化测试的准确率和覆盖率。

第二方面,本申请提供一种web页面自动化测试方法,所述方法包括:

被测设备基于所述被测设备与开发设备之间的数据线与所述开发设备建立通信通道;

所述被测设备通过所述通信通道接收所述开发设备发送的测试指令,所述测试指令指示所述被测设备获取目标web页面的目标数据信息;

所述被测设备执行所述测试指令获取所述目标web页面的目标数据信息。

在一种可能的实施方式中,所述测试指令中包括预设javascript代码,所述预设javascript代码用于指示所述被测设备获取所述目标web页面的目标数据信息。

在一种可能的实施方式中,在所述被测设备执行所述测试指令获取所述目标web页面的目标数据信息之后,所述方法还包括:

所述被测设备输出所述目标web页面的目标数据信息至日志信息,以使所述开发设备通过所述androidlogcat监听所述日志信息中的所述目标web页面的目标数据信息。

在一种可能的实施方式中,在所述被测设备执行所述测试指令获取所述目标web页面的目标数据信息之后,所述方法还包括:

所述被测设备输出所述目标web页面的目标数据信息至所述被测设备上的目标文件,以使所述开发设备通过所述被测设备上的目标文件获取所述目标web页面的目标数据信息。

在一种可能的实施方式中,所述被测设备的测试环境与所述被测设备的运行环境一致,其中,所述被测设备的测试环境指所述被测设备执行所述测试指令时的网络环境,所述被测设备的运行环境指用户使用所述被测设备时的网络环境。

在一种可能的实施方式中,所述目标数据信息包括以下任意一种或者多种:标签元素信息、图片元素信息、文字元素信息、所述目标web页面的标题、所述目标web页面打开过程中的消耗时间或所述目标web页面是否加载完毕。

在一种可能的实施方式中,所述目标web页面为基于被测应用程序中的webview的web页面,所述被测设备通过所述通信通道接收所述开发设备发送的测试指令,包括:

所述被测设备上的被测应用程序通过所述通信通道接收所述开发设备发送的测试指令,并将所述测试指令发送至所述被测应用程序中的webview,所述测试指令指示所述被测应用程序中的webview获取所述目标web页面的目标数据信息;

所述被测设备执行所述测试指令获取所述目标web页面的目标数据信息,包括:

所述被测设备上的被测应用程序中的webview执行所述所述测试指令获取所述目标web页面的目标数据信息。

第三方面,本申请提供一种web页面自动化测试装置,应用于开发设备,所述装置包括:

建立通道模块,用于基于所述开发设备与被测设备之间的数据线与所述被测设备建立通信通道;

发送模块,用于通过所述通信通道发送测试指令至所述被测设备,所述测试指令指示所述被测设备获取目标web页面的目标数据信息;

获取模块,用于获取所述被测设备返回的所述目标web页面的目标数据信息。

第四方面,本申请提供一种web页面自动化测试装置,应用于被测设备,所述装置包括:

建立通道模块,用于基于所述被测设备与开发设备之间的数据线与所述开发设备建立通信通道;

接收模块,用于通过所述通信通道接收所述开发设备发送的测试指令,所述测试指令指示所述被测设备获取目标web页面的目标数据信息;

获取模块,用于执行所述测试指令获取所述目标web页面的目标数据信息。

第五方面,本申请实施例提供一种web页面自动化测试系统,所述系统包括如上述第三方面所述的装置以及如上述第四方面所述的装置。

第六方面,本申请提供一种计算机存储介质,所述计算机介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面或者第一方面的任意具体实现方式中所描述方法。

第七方面,本申请提供一种计算机存储介质,所述计算机介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第二方面或者第二方面的任意具体实现方式中所描述方法。

第八方面,本申请实施例提供一种计算机程序产品,其特征在于,当所述计算机程序产品被计算机读取并执行时,实现如上述第一方面或者第一方面的任意具体实现方式中所描述方法。

第九方面,本申请实施例提供一种计算机程序产品,其特征在于,当所述计算机程序产品被计算机读取并执行时,实现如上述第二方面或者第二方面的任意具体实现方式中所描述方法。

附图说明

为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种web页面自动化测试系统的结构示意图;

图2是本申请实施例提供的一种web页面自动化测试方法的流程示意图;

图3是本申请实施例提供的一种被测应用程序的确认页面的界面示意图;

图4是本申请实施例提供的另一种web页面自动化测试方法的流程示意图;

图5是本申请实施例提供的一种具体实施例的流程示意图;

图6是本申请实施例提供的一种web页面自动化测试装置的结构示意图;

图7是本申请实施例提供的另一种web页面自动化测试装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

目前,在对被测设备中应用程序内web页面进行测试时,技术人员大多通过在网络请求和响应过程中增加代理服务器以建立开发设备和被测设备之间的命令通道的方式,或者,通过使用android官方提供的安卓调试桥(androiddebugbridge,adb)、uiautomator、appium等技术和工具,实现开发设备对被测设备应用程序内web页面的测试。

其中,在通过在网络请求和响应过程中增加代理服务器以建立开发设备和被测设备之间的命令通道的方式实现开发设备对被测设备的测试时,技术人员需要先对被测设备的网络环境进行设置,使开发设备和被测设备处于同一个局域网,代理服务器才能对开发设备发出的测试指令和终端返回的测试结果进行转发。例如,技术人员使用的开发设备为电脑,被测设备为手机,在进行测试前,需要使手机和电脑都连同一个热点,或者,打开电脑上的共享热点,手机连接该共享热点,然后,在手机的wlan设置里,输入电脑的局域网ip和代理服务器的端口号,设置完成后,代理服务器才能对电脑发出的测试指令和手机返回的测试结果进行转发。

可以看出,上述通过在网络请求和响应过程中增加代理服务器以建立开发设备和被测设备之间的命令通道的方式在对被测设备的web页面进行测试之前,需要对被测设备的网络环境进行设置,这会对被测设备中被测应用程序的网络逻辑造成干扰,同时,导致测试过程中测试指令无法覆盖一些只能在真实运行环境中可以执行的特定指令(比如隐藏音乐播放应用程序的播放状态栏、跳转到指定的音乐播放应用程序内页面等),使得执行测试指令后的web页面与真实运行环境中执行特定指令后的web页面产生执行效果上的差异。也就是说,该方法不能保证web页面可以在与真实运行环境一致的测试环境下进行测试,会导致技术人员在测试的过程中难以快速、准确地对出现的问题进行定位,存在着测试覆盖率不足以及测试准确率不高的问题。

通过android官方提供的adb、uiautomator、appium等技术和工具主要实现对被测设备的操作系统自带的传统应用程序(如浏览器应用程序)的web页面的测试,这些技术和工具主要是通过视图层级和视图标签进行视图寻址,查找到被测设备自带的传统应用程序的web页面上的被测元素信息,将被测元素信息以视图的形式显示在开发设备上,技术人员可以查看被测元素信息或者对被测元素进行模拟点击等,从而实现对web页面的测试。该方法适用于对被测设备上传统应用程序的web页面进行测试,但是目前很多应用程序内部也会设置有web页面,这类web页面通常是由应用程序内置的webview实现的。若是将上述技术和工具应用于对应用程序中的webview实现的web页面进行测试,上述技术和工具会受限于webview对web页面的渲染方式,难以通过视图层级和视图标签进行视图寻址查找到web页面上的被测元素信息,也就无法将web页面上的被测元素信息以视图的形式显示在开发设备上。也就是说,上述方法无法保证应用程序中的webview实现的web页面的测试和传统应用程序的web页面的测试的一致性,存在着测试覆盖率不足的问题。

为了解决上述web页面自动化测试方法存在的不能保证web页面可以在与真实运行环境一致的测试环境下进行测试、无法保证应用程序中的webview实现的web页面的测试和传统应用程序的web页面的测试的一致性等问题,本申请提供一种web页面自动化测试方法,该方法无需对被测设备的网络环境进行额外设置,使得web页面在被测试时的测试环境(被测设备执行测试指令时的网络环境),与被测设备在实际运行时的运行环境(用户使用被测设备时的网络环境)是一致的,而且能够保证应用程序中的webview实现的web页面的测试和传统应用程序的web页面的测试的一致性,有效提升测试的覆盖率和准确率。

在介绍本申请提供的web页面自动化测试方法之前,先对本申请提供的web页面自动化测试系统进行详细描述。

请参阅图1,图1是本申请实施例提供的一种web页面自动化测试系统的结构示意图,如图1所示,本申请提供的web页面自动化测试系统,可以包括:通过数据线互连的开发设备100和被测设备200,其中,在开发设备100和被测设备200通过数据线连接之后,开发设备100可以进一步建立与被测设备200之间的通信通道,如,在开发设备100为windows操作系统的服务器,被测设备200为android操作系统的手机时,开发设备100可以建立与被测设备200之间的通信通道adb。

在通信通道建立之后,开发设备100可以通过通信通道发送测试指令至被测设备200对被测设备200的目标web页面进行测试。

在本申请具体的实施例中,上述开发设备100可以是个人电脑(personalcomputer,pc),也可以是服务器、多处理器系统、小型计算机、大型计算机以及包括任一上述系统或设备的分布式计算环境等计算机设备,此处不作具体限定。开发设备100的操作系统可以是windows操作系统、苹果桌面操作系统或者linux操作系统等,此处不作具体限定。

上述被测设备200可以是移动手机、平板电脑、个人数字助理(personaldigitalassistant,pda)、移动互联网设备(mobileinternetdevice,mid)、笔记本电脑、智能穿戴设备(如智能手表、智能手环)等各种电子设备,此处不作具体限定。被测设备200的操作系统可以是ios操作系统或者android操作系统等,此处不作具体限定。

因此,在通过数据线将开发设备与被测设备连接起来时,需要针对不同的开发设备与被测设备,选择合适的数据线。上述连接开发设备100和被测设备200的数据线可以是通用串行总线(universalserialbus,usb)数据线,如type-cusb数据线、micro-usb数据线等,由技术人员根据实际情况确定数据线的类型,此处不作具体限定。

需要说明的是,图1中的开发设备100、被测设备200和数据线的数目仅仅是示意性的,根据实现需要,可以具有任意数目的开发设备100、被测设备200和数据线,另外,本申请提供的web页面自动化测试系统的模块架构并不局限于上述举例。本申请实施例的技术方案可以基于图1所示架构的web页面自动化测试系统或其形变架构来具体实施。

接下来,请参见图2,图2是本申请提供的一种web页面自动化测试方法的流程示意图,如图2所示,该方法可以包括:

s101、开发设备基于开发设备与被测设备之间的数据线与被测设备建立通信通道。

在本申请具体的实施例中,在开发设备建立与被测设备的通信通道之前,需要先使用数据线将开发设备与被测设备连接起来。

以开发设备是windows操作系统的服务器、被测设备是android操作系统的手机、连接开发设备和被测设备的数据线为usb数据线为例,对建立开发设备和被测设备之间的通信通道的过程进行详细介绍。需要说明的是,windows操作系统的服务器与android操作系统的手机之间的通信通道为adb。

第一步、使用数据线将服务器和手机进行连接。

第二步、在手机的系统设置中打开“开发者选项”。

需要说明的是,手机的类型不同,“开发者选项”的命名方式可能有所不同,如命名为“开发者模式”等。

第三步、启用“usb调试”。

第四步、在服务器的adb命令行工具中输入测试指令“adbdevices”验证服务器与手机之间的adb连接是否成功。

通常,服务器与手机的adb连接状态可为下列状态之一:

(1)offline:表示手机未连接到服务器或没有响应,此时可以更新服务器上的adb软件版本或者将手机与数据线断开,再重新连接。

(2)device:表示手机已连接到服务器。需要说明的是,此状态并不表示手机已完全启动并可正常运行,因为存在手机与服务器连接成功时,手机仍在启动状态的情况。

(3)nodevice:表示服务器未识别到手机,此时可以重新启动手机或者查看数据线连接是否正常。

(4)unauthorized:表示手机未打开“开发者选项”或未允许“usb调试”,此时可以将手机打开“开发者选项”并且允许“usb调试”。

在服务器与手机的连接状态为device时,表示服务器与手机的通信通道adb建立成功。

需要说明的是,使用不同类型的开发设备对不同类型的被测设备进行测试时,建立的通信通道可能不同,上述举例中的windows操作系统的服务器、android操作系统的手机以及通信通道adb等,仅仅是作为一种示例,不视为对本申请实施例的限定。

由上述实施例可以看出,在建立开发设备与被测设备之间的通信通道的过程中,开发设备没有修改被测设备的网络环境。

s102、开发设备通过通信通道发送测试指令至被测设备,测试指令指示被测设备获取目标web页面的目标数据信息。

在开发设备与被测设备之间的通信通道建立之后,开发设备可以通过通信通道发送测试指令至被测设备。

需要说明的是,如果与开发设备连接的有多个被测设备,则在开发设备发送测试指令时,需要指定接收测试指令的目标被测设备。

在被测设备执行测试指令获取目标web页面的目标数据信息之前,需要先确定被测应用程序。

在本申请具体的实施例中,在确定被测设备上的被测应用程序时,若被测设备上当前正在运行的应用程序为需要被测的应用程序,可以通过开发设备向被测设备发送测试指令来实现。若被测设备上当前正在运行的应用程序不是需要被测的应用程序,技术人员可以手动的选择需要被测的应用程序,然后,根据技术人员的选择操作将该被选择的应用程序设置为被测应用程序,或者,重新接收开发设备发送的测试指令来重新确定被测应用程序。

具体地,开发设备发送的测试指令可以包括被测应用程序标识,其中,应用程序标识用于唯一标识一个应用程序,被测设备可以根据测试指令中包括的被测应用程序标识确定被测应用程序。通常,技术人员在开发应用程序时,会在应用程序的配置文件中新建或者指定一个活动(activity),并在该activity的intent-filter中指定scheme的统一资源定位符(uniformresourcelocator,url),该指定scheme的url用于唯一标识该应用程序。其中,activity是一个应用程序组件,提供一个具有用户界面的屏幕,用户可以通过该屏幕与应用程序进行交互。

例如,若被测设备的显示屏上当前显示的操作页面是与“音乐播放应用程序”对应的操作页面,则当前在被测设备上运行的应用程序为“音乐播放应用程序”。在测试的过程中,在服务器通过测试指令中包括的音乐播放应用程序标识确定了当前在被测设备的显示界面上运行的应用程序为“音乐播放应用程序”,并展示如图3所示的提示窗口之后,技术人员针对展示的提示窗口输入与按钮“确定”对应的指令,确定“音乐播放应用程序”是当前需要进行测试的被测应用程序;进一步的,若技术人员确定“音乐播放应用程序”并不是其当前需要进行测试的被测应用程序,则针对展示的提示窗口输入与按钮“取消”对应的指令,并且在被测设备上手动的切换至需要测试的应用程序对应的操作页面,以使服务器再次通过测试指令确定被测应用程序。

在被测应用程序确定之后,被测设备可以继续执行测试指令,定位被测应用程序中需要被测的目标web页面,然后获取目标web页面的目标数据信息。

在本申请实施例中,目标web页面可以为被测设备自带的传统应用程序(如浏览器应用程序)的web页面,也可以为被测设备安装的应用程序内的web页面,此处不作具体限定。在实际应用中,被测设备安装的应用程序内的web页面通常是由webview实现的,webview是操作系统客户端内置的能够展示网页的内核浏览器组件。

在目标web页面为基于被测应用程序中的webview的web页面的情况下,开发设备通过通信通道发送测试指令至被测设备的具体过程为:开发设备通过通信通道发送测试指令至被测设备上的被测应用程序,然后由被测应用程序将测试指令转发至被测应用程序中的webview,最终由被测应用程序中的webview执行测试指令获取目标web页面的目标数据信息。

在目标web页面为基于被测应用程序中的webview的web页面的情况下,开发设备获取被测设备返回的目标web页面的目标数据信息的具体过程为:被测应用程序中的webview在获取到目标web页面的目标数据信息之后,将获取到的目标web页面的目标数据信息发送至被测应用程序,最终由被测应用程序将目标web页面的目标数据信息返回至开发设备。

在一种具体的实施方式中,开发设备向被测设备发送的测试指令中包括预设javascript代码,预设javascript代码用于指示被测设备获取目标数据信息。

在本申请实施例中,测试指令中包括的预设javascript代码不仅可以用于指示被测设备获取被测设备自带的传统应用程序的web页面的目标数据信息,而且,预设javascript代码不会受限于webview对web页面的渲染方式,webview可以通过调用loadurl()方法或者addjavascriptinterface()方法等运行预设javascript代码,以获取应用程序中的webview实现的web页面上的目标数据信息,也就是说,预设javascript代码还可以用于指示被测设备获取被测应用程序中的webview的web页面的目标数据信息。在本申请实施例中,预设javascript代码中可以包括目标web页面上的目标元素(例如标签元素、文字元素或者图片的链接等)的关键可寻址信息,然后在被测设备执行测试指令时,会根据预设javascript代码中的目标元素的关键可寻址信息定位到目标元素,然后获取目标元素对应的目标数据信息,并将目标元素的目标数据信息以视图的形式显示在开发设备上,技术人员可以查看到目标数据信息或者对目标元素进行模拟点击等,实现对目标元素的测试。也就是说,预设javascript代码可以用于开发设备通过视图层级和视图标签进行视图寻址,查找到目标web页面上的目标数据信息,并将目标数据信息以视图形式显示在开发设备上,以实现开发设备对被测设备的目标web页面的测试。

更具体地,预设javascript代码中可以包括用于指示被测设备获取目标web页面的目标元素相对被测设备屏幕的位置信息的关键字,也可以包括用于指示被测设备获取目标web页面的标题的关键字,还可以包括用于指示被测设备获取目标web页面打开过程中的消耗时间的关键字等等,用于被测设备执行预设javascript代码时得到不同的目标数据信息。可以理解的,预设javascript代码中包括的关键字并不限于上述所列举的关键字,该关键字可以为用于指示被测设备获取其他数据信息的关键字,预设javascript代码中包括的关键字可以为一个或者多个,此处不作具体限定。

可以理解,测试指令中包括的预设javascript代码不同,被测设备执行测试指令获取到的目标web页面的目标数据信息也不同。在本申请中,被测设备根据测试指令获取的目标web页面的目标数据信息可以包括以下任意一种或者多种:标签元素的数据信息、图片元素的数据信息、文字元素的数据信息、目标web页面的标题、目标web页面打开过程中的消耗时间或目标web页面是否加载完毕。

其中,javascript是一种基于对象(object)和事件驱动(eventdriven)并具有相对安全性的客户端脚本语言,javascript具有以下优点:

(1)javascript减少网络传输

在javascript这样的客户端脚本语言出现之前,传统的数据提交和验证工作均由被测设备的浏览器通过网络传输到开发设备上进行。在传输的数据量很大的情况下,占用的网络和开发设备的资源也比较多。但是使用javascript可以在被测设备的浏览器上直接进行数据提交和验证,无需通过网络传输到开发设备上进行,可以节省网络和开发设备的资源。

(2)javascript方便操纵html对象

javascript可以方便地操纵各种web页面中的对象,技术人员可以使用javascript来控制web页面中各个元素的外观、状态甚至运行方式,javascript还可以根据技术人员的需要“定制”浏览器,从而使测试过程中显示在开发设备上的目标web页面的显示和渲染的效果更加友好,使得技术人员在测试的过程中能准确地获取目标web页面的目标数据信息。

由上述实施例可知,本申请实施例中通过在测试指令中包括预设javascript代码,不仅能够使开发设备通过视图层级和视图标签进行视图寻址,以视图形式实现对被测设备上的传统应用程序的web页面的测试,还不会受限于webview对web页面的渲染方式,以视图形式实现对被测设备上的应用程序中的webview的web页面的测试,从而实现了应用程序中的webview的web页面的测试和传统应用程序的web页面的测试的一致性,进一步提高web页面自动化测试的准确率和覆盖率。

s103、开发设备获取被测设备返回的目标web页面的目标数据信息。

在一种具体的实施方式中,开发设备通过通信通道启动androidlogcat监听被测设备输入至日志信息中的目标web页面的目标数据信息。其中,androidlogcat是android操作系统中的一个命令行工具,可以用于得到被测应用程序的日志信息。

具体地,在被测设备执行测试指令获得目标web页面的目标数据信息之后,将目标web页面的目标数据信息进行序列化,然后被测设备将包括序列化后的目标web页面的目标数据信息在内的被测应用程序的日志信息输出至androidlogcat,开发设备可以通过通信通道启动androidlogcat,并在androidlogcat输入拦截命令,从被测应用程序的日志信息中拦截得到序列化后的目标web页面的目标数据信息。其中,序列化是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。

在另一种具体的实施方式中,开发设备可以通过被测设备上的目标文件获取被测设备输入至目标文件中的目标web页面的目标数据信息。

具体地,在被测设备执行测试指令获得目标web页面的目标数据信息之后,将目标web页面的目标数据信息进行序列化,然后将包括序列化后的目标web页面的目标数据信息在内的被测应用程序的日志信息写入被测设备的目标文件中,开发设备可以轮询读取被测设备上的目标文件获取序列化后的目标web页面的目标数据信息。

由上述实施例可知,本申请提供的web页面自动化测试方法,开发设备与被测设备通过数据线连接,并进一步建立与被测设备之间的通信通道后,开发设备可以通过通信通道发送测试指令至被测设备获取被测设备的web页面的数据信息,上述方法不依靠网络进行命令传输,无需对被测设备的网络环境进行额外设置,因此能够有效避免对被测设备的应用程序的网络逻辑的干扰。同时,可以保证web页面在被测试时的测试环境和在实际运行时的运行环境是一致的,有利于技术人员在测试过程中快速、准确地对出现的问题进行定位,提高测试的覆盖率和准确率。

请参见图4,图4是本申请实施例提供的另一种web页面自动化测试方法的流程示意图。如图4所示,该方法可以包括:

s201、被测设备基于被测设备与开发设备之间的数据线与开发设备建立通信通道。

具体地,被测设备基于被测设备与开发设备之间的数据线与开发设备建立通信通道的过程,与s101中描述的开发设备基于开发设备与被测设备之间的数据线与被测设备建立通信通道的过程相类似,此处不再展开赘述。

s202、被测设备通过通信通道接收开发设备发送的测试指令,测试指令指示被测设备获取目标web页面的目标数据信息。

在被测设备与开发设备之间的通信通道建立之后,被测设备可以通过通信通道接收开发设备发送的测试指令。

在被测设备执行测试指令获取目标web页面的目标数据信息之前,需要先确定被测应用程序。

在本申请具体的实施例中,在确定被测设备上的被测应用程序时,若被测设备上当前正在运行的应用程序为需要被测的应用程序,可以通过开发设备向被测设备发送测试指令来实现。若被测设备上当前正在运行的应用程序不是需要被测的应用程序,技术人员可以手动的选择需要被测的应用程序,然后,根据技术人员的选择操作将该被选择的应用程序设置为被测应用程序,或者,重新接收开发设备发送的测试指令来重新确定被测应用程序。

在确定被测应用程序之后,被测设备可以继续执行测试指令,定位被测应用程序需要被测的目标web页面,然后获取目标web页面的目标数据信息。

在一种具体的实施方式中,开发设备向被测设备发送的测试指令中包括预设javascript代码,预设javascript代码用于指示被测设备获取目标数据信息。

s203、被测设备执行测试指令获取目标web页面的目标数据信息。

在本申请实施例中,被测设备执行测试指令获取的目标web页面的目标数据信息可以包括以下任意一种或者多种:标签元素的数据信息、图片元素的数据信息、文字元素的数据信息、目标web页面的标题、目标web页面打开过程中的消耗时间或目标web页面是否加载完毕。

在被测设备执行测试指令获取目标web页面的目标数据信息之后,所述被测设备需要将目标web页面的目标数据信息发送至开发设备,以使开发设备获得目标web页面的目标数据信息。

在一种具体的实施方式中,被测设备输出目标web页面的目标数据信息至日志信息,以使开发设备通过androidlogcat监听被测设备输出至日志信息中的目标web页面的目标数据信息。

具体地,在被测设备执行测试指令获得目标web页面的目标数据信息之后,将目标web页面的目标数据信息进行序列化,然后被测设备将包括序列化后的目标web页面的目标数据信息在内的被测应用程序的日志信息输出至androidlogcat,开发设备可以通过通信通道启动androidlogcat,并在androidlogcat输入拦截命令,从被测应用程序的日志信息中拦截得到序列化后的目标web页面的目标数据信息。

在另一种具体的实施方式中,在被测设备执行测试指令获取目标web页面的目标数据信息之后,被测设备将目标web页面的目标数据信息写入被测设备的目标文件中,以使开发设备通过被测设备上的目标文件获取目标web页面的目标数据信息。

具体地,在被测设备执行测试指令获得目标web页面的目标数据信息之后,将目标web页面的目标数据信息进行序列化,然后将包括序列化后的目标web页面的目标数据信息在内的被测应用程序的日志信息写入被测设备的目标文件中,开发设备可以轮询读取被测设备上的目标文件获取序列化后的目标web页面的目标数据信息。

为了便于更好地理解本申请实施例,下面以开发设备为windows操作系统的服务器、被测设备为android操作系统的手机、连接服务器和手机的数据线为usb数据线、目标web页面为社交应用程序中的webview实现的web页面1、目标数据信息为该页面1的“下一页”控件相对手机屏幕的位置信息为例,对本申请实施例提供的web页面自动化测试方法进行更详细地描述。

如图5所示,图5所示为本申请实施例提供的一种具体实施例的流程示意图。

s301、服务器基于服务器与手机之间的数据线与手机建立通信通道。

windows操作系统的服务器与被测设备为android操作系统的手机之间建立的通信通道为adb,adb的建立过程在s101中已经描述,此处不再展开赘述。

s302、服务器通过通信通道发送测试指令至手机,确定手机上的社交应用程序为被测应用程序。

其中,测试指令中可以包括社交应用程序标识,用于手机根据测试指令中的社交应用程序标识确定社交应用程序为被测应用程序,并将接收到的测试指令传递给社交应用程序。

s303、社交应用程序接收服务器发送的测试指令,将测试指令发送至社交应用程序中的webview。

s304、webview根据测试指令获取页面1的“下一页”控件相对页面1的位置信息。

其中,测试指令中还可以包括预设javascript代码,该预设javascript代码用于指示手机获取页面1的“下一页”控件相对手机屏幕的位置信息。

具体地,预设javascript代码中可以包括页面1的url和“下一页”控件的标识信息等,用于webview根据测试指令中的页面1的url定位到页面1,根据“下一页”控件的标识信息定位到页面1上的“下一页”控件,然后获取“下一页”控件的完整控件信息。可以理解,“下一页”控件的完整控件信息中包括该控件的大小信息、颜色信息和相对页面1的位置信息等。

s305、webview将页面1的“下一页”控件相对页面1的位置信息发送至社交应用程序。

具体地,webview将获取的“下一页”控件相对页面1的位置信息进行序列化,然后将序列化后的“下一页”控件相对页面1的位置信息输出到日志信息。

在实际应用中,webview还可以通过loadurl()方法或者通过addjavascriptinterface()方法等方法实现webview将页面1的“下一页”控件相对页面1的位置信息发送至社交应用程序。

s306、社交应用程序接收“下一页”控件相对页面1的位置信息,并根据页面1的“下一页”控件相对页面1的位置信息和页面1相对手机屏幕的位置信息,计算得到“下一页”控件相对手机屏幕的位置信息。

具体地,社交应用程序拦截日志信息,从日志信息中获取序列化后的“下一页”控件相对页面1的位置信息,然后根据序列化后的页面1的“下一页”控件相对页面1的位置信息和页面1相对手机屏幕的位置信息,计算得到“下一页”控件相对手机屏幕的位置信息,并对“下一页”控件相对手机屏幕的位置信息进行序列化。

s307、社交应用程序将页面1的“下一页”控件相对手机屏幕的位置信息发送至服务器。

具体地,社交应用程序将包括序列化后的“下一页”控件相对手机屏幕的位置信息在内的社交应用程序的日志信息输出至androidlogcat,服务器可以通过通信通道启动androidlogcat监听日志信息中的“下一页”控件相对手机屏幕的位置信息。

在实际应用中,被测应用程序可以是被测设备上安装的各种应用程序,也可以是根据测试指令中的下载链接或安装包下载安装的被测应用程序,例如文字处理应用程序、照片管理应用程序、视频播放应用程序、数字音乐播放器应用程序、游戏应用程序、电话应用程序等等,此处不作具体限定。webview可以为被测应用程序中的web页面的核心内容载体,例如,社交应用程序的公众号文章页面和音乐播放应用程序中的数字专辑中心页面等;webview也可以为常驻被测应用程序中的web页面的一部分,例如,视频播放应用程序中的视频播放页面的视频详细信息区域;webview还可以为被测应用程序中的web页面的非常驻浮层,例如,视频直播应用程序中的直播间主播排行榜浮层,此处不作具体限定。

开发设备还可以对被测设备的目标web页面进行重复多次测试,以提高测试的鲁棒性。该过程可以为:对于每个测试指令,开发设备或被测设备可以设置对该测试指令的预设执行次数,并进行预设执行次数的重试。

进一步地,开发设备还可以存储每次测试的目标数据信息,以便进行对比,提高测试的准确率。

具体应用中,还可以将上述测试指令部分或者全部封装成类,使上述指令封装成的类与其他类之间的相互影响减少到最低限度,进而增强数据的安全性和简化程序的编写工作。还可以将上述被测应用程序、被测应用程序中的webview以及测试指令进行全部或者部分封装形成一个整体,实现web页面自动化测试工具(如adb)、配置(如被测应用程序的配置)和测试流程的一致性。在实际应用中,技术人员可以应用上述通过封装得到的整体对被测设备上的被测应用程序进行日常测试,保障被测应用程序的功能稳定,节省测试所耗费的人力和时间等,提升测试的效率和质量。

上文图2实施例详细阐述了本申请实施例提供的一种web页面自动化测试方法,基于相同的发明构思,下面继续介绍本申请实施例提供的一种web页面自动化测试装置,该web页面自动化测试装置可以应用于开发设备。

参见图6,图6是本申请实施例提供的一种web页面自动化测试装置的结构示意图,如图6所示,该装置110可以包括:

建立通道模块111,用于基于开发设备与被测设备之间的数据线与被测设备建立通信通道;

发送模块112,用于通过通信通道发送测试指令至被测设备,测试指令指示被测设备获取目标web页面的目标数据信息;

获取模块113,用于获取被测设备返回的目标web页面的目标数据信息。

上述web页面的自动化测试装置110的各功能模块可用于实现图2实施例所描述的方法,详细内容可参考图2实施例相关内容中的描述,为了说明书的简洁,这里不再赘述。

应当理解,web页面自动化测试装置110仅为本申请实施例提供的一个例子,并且,web页面自动化测试装置110可具有比图6示出的部件更多或更少的部件,可以组合两个或更多个部件,或者可具有部件的不同配置实现。

上文图4实施例详细阐述了本申请实施例提供的另一种web页面自动化测试方法,基于相同的发明构思,下面继续介绍本申请实施例提供的另一种web页面自动化测试装置,该web页面自动化测试装置可以应用于被测设备。

参见图7,图7是本申请实施例提供的一种web页面自动化测试装置的结构示意图,如图7所示,该装置210可以包括:

建立通道模块211,用于基于被测设备与开发设备之间的数据线与开发设备建立通信通道;

接收模块222,用于通过通信通道接收开发设备发送的测试指令,测试指令指示被测设备获取目标web页面的目标数据信息;

获取模块223,用于执行测试指令获取目标web页面的目标数据信息。

上述web页面自动化测试装置210的各功能模块可用于实现图4实施例所描述的方法,详细内容可参考图4实施例相关内容中的描述,为了说明书的简洁,这里不再赘述。

应当理解,web页面自动化测试装置210仅为本申请实施例提供的一个例子,并且,web页面自动化测试装置210可具有比图7示出的部件更多或更少的部件,可以组合两个或更多个部件,或者可具有部件的不同配置实现。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,计算机程序被硬件(例如处理器等)执行,以实现上述方法实施例中记载的web页面自动化测试方法的部分或者全部步骤。计算机存储介质的处理器在执行上述方法步骤的具体实现可参照上述方法实施例的具体操作,此处不再赘述。

本申请实施例还提供一种计算机程序产品,当计算机程序产品被计算机读取并执行时,以实现上述方法实施例中记载的web页面自动化测试方法的部分或者全部步骤。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1