一种网页测试的处理方法、设备及系统与流程

文档序号:15736715发布日期:2018-10-23 21:36阅读:138来源:国知局
本发明涉及网页
技术领域
:,尤其涉及一种网页测试的处理方法、设备及系统。
背景技术
::随着网页技术的不断发展,越来越多的网页被设计出来,为了保障网页的正常运行和对网页进行优化,开发人员需要对这些网页进行自动化测试。自动化测试是指把以人为驱动力的测试过程转变为机器自动执行的一个过程,通常,在开发人员设计了测试用例之后,根据该测试用例中描述的规程一步步的执行测试,得到实际的结果与希望的结果的对比。现有技术中,在执行自动化测试的过程中,都需要对操作的网页中的页面控件进行查找定位,才能根据找到的页面控件构建网页自动化测试用例。通常,开发人员需要手动对页面控件节点进行查找,以根据查找的结果进行网页的自动化测试,这给开发人员带来了巨大的工作量,且可能会由于人为因素造成一些页面控件节点的错找、漏找等情况,降低了测试效率。技术实现要素:本申请实施例所要解决的技术问题在于,提供一种网页测试的处理方法、设备及系统,可以提高网页测试的查找效率。第一方面,本申请实施例提供了一种网页测试的处理方法、设备及系统,该方法中,终端首先获取当前网页的页面源文件,然后根据测试锚点插入规则确定出该页面源文件中需要插入测试锚点的节点位置,并将生成的测试锚点插入到该节点位置处,最后生成带有该测试锚点的待测页面源文件。可见,通过实施第一方面所提供的方法,可以通过在页面源文件中增加测试锚点,将该测试锚点作为控件查找依据,提高自动化测试的查找效率。作为一种可选的实施方式,该测试锚点插入规则具体可以是在该页面源文件中的基础控件节点和/或封装控件节点插入测试锚点,其中,该封装控件节点中至少有一个基础控件节点;该根据测试锚点插入规则确定出该页面源文件中需要插入测试锚点的节点位置,具体可以是从该页面源文件中确定出基础控件节点和/或封装控件节点,并把该基础控件节点和/或封装控件节点的位置作为需要插入测试锚点的节点位置。可见,通过实施这种可选的实施方式,终端可以在页面源文件中的基础控件节点和/或封装控件节点插入测试锚点,并基于该测试锚点查找到控件节点的具体位置,提高了控件的查找效率。作为一种可选的实施方式,该终端还可以从待测网页源文件中解析出需要进行测试的控件,根据该控件的类型选择并绑定该控件的测试锚点,同时记录绑定的测试锚点与该控件的绑定关系,然后生成包含有该绑定关系、该控件的类型、以及与该控件绑定的测试锚点的页面对象。可见,通过实施这种可选的实施方式,可以基于该测试锚点构建页面对象,开发人员可以通过调用该页面对象来编排自动化测试的测试步骤,提高了自动化测试的构建效率。作为一种可选的实施方式,该终端从待测网页源文件中解析出需要进行测试的控件,可以是首先获取各个控件的优先级,然后按照优先级对该待测网页中确定出需要进行测试的控件。作为一种可选的实施方式,该终端根据控件的类型选择需要绑定的控件的测试锚点,具体可以是优先选择该控件自身节点所在位置的测试锚点进行绑定。可见,通过实施这种可选的实施方式,可以通过控件自身节点所在位置的测试锚点,快速确定该控件的位置信息以及其他信息,提高了在构建自动化测试用例的过程中对控件的查找效率。作为一种可选的实施方式,该终端优先选择该控件自身节点所在位置的测试锚点进行绑定,具体可以是当该控件的类型为封装控件时,该终端优先选择该控件自身节点所在位置的测试锚点进行绑定,在该控件自身节点所在位置不存在测试锚点时,该终端可以选择该控件中任意一个子孙节点所在位置的测试锚点进行绑定;当该控件的类型为基础控件时,该终端可以直接选择该控件自身节点所在位置的测试锚点进行绑定。可见,通过实施这种可选的实施方式,可以根据控件类型的不同,选择不同的优先绑定控件自身节点所在位置的测试锚点的方法,使页面对象的构建更加简便。作为一种可选的实施方式,该终端在生成测试锚点时,可以首先检测节点位置上的基础控件节点和/或封装控件节点是否具有标识ID属性,如果不具有该ID属性,该终端就可以自动编码随机生成一个锚点属性值和锚点属性名,并生成包含该锚点属性值和该锚点属性名的测试锚点;如果具有该ID属性,该终端就可以将锚点属性值设置为该ID属性,同时再生成一个锚点属性名,并生成包含该锚点属性值和该锚点属性名的测试锚点。其中,该锚点属性值在待测页面内保持唯一。可见,通过实施这种可行的实施方式,可以在控件节点具有ID属性时,将锚点属性值设置为ID属性,既保持了锚点属性值在待测页面的唯一性,也提高了开发人员在通过测试锚点对控件进行定位时的准确度。第二方面,提供了一种测试锚点装置和一种页面对象装置,该测试锚点装置和该页面对象装置具有实现上述第一方面或第一方面可能的实现方式中行为的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。该模块可以是软件和/或硬件。基于同一发明构思,由于该终端解决问题的原理以及有益效果可以参见上述第一方面和第一方面的各可能的方法实施方式以及所带来的有益效果,因此该终端的实施可以参见上述第一方面和第一方面的各可能的方法实施方式,重复之处不再赘述。第三方面,提供了一种网页测试系统,该系统包括:上述测试锚点装置以及上述页面对象装置。该系统解决问题的实施方式可以参见上述第一方面和第一方面的各可能的方法的实施方式,重复之处不再赘述。第四方面,提供了一种终端,该终端包括:存储器,用于存储一个或多个程序;处理器,用于调用存储在该存储器中的程序以实现上述第一方面的方法设计中的方案,该终端解决问题的实施方式以及有益效果可以参见上述第一方面和第一方面的各可能的方法的实施方式以及有益效果,重复之处不再赘述。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本申请实施例提供的一种增加测试锚点的示意图;图2是本申请实施例提供的一种生成页面对象的示意图;图3是本申请实施例提供的一种终端的结构示意图;图4是本申请实施例提供的一种网页测试的处理方法的流程示意图;图5是本申请实施例提供的另一种网页测试的处理方法的流程示意图;图6是本申请实施例提供的又一种网页测试的处理方法的流程示意图;图7是本申请实施例提供的一种测试锚点装置的结构示意图;图8是本申请实施例提供的一种页面对象装置的结构示意图;图9是本申请实施例提供的一种网页测试系统的结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例进行说明。本申请实施例提供了一种网页测试的处理方法、设备及系统,可以提高网页测试的查找效率。以下分别进行详细说明。为了更好理解本申请实施例提供的一种网页测试的处理方法、设备及系统,下面先描述本申请实施例的处理情景。请参阅图1,是本申请提供的一种增加测试锚点的示意图。其中,规则文件101和页面源文件102作为测试锚点装置103的输入,由测试锚点装置103根据规则文件101在页面源文件102中插入测试锚点,从而输出包含测试锚点的待测试页面源文件104。其中,该测试锚点装置103可以由计算机等等可以处理页面源文件的终端来实现。由于开发人员无论采用哪一种自动化测试框架,都需要通过终端对操作的网页的页面源文件中的控件进行查找定位,然后可以对该控件进行操作(例如单击、双击、输入等等),一般情况下,对控件的查找方式可以是标识ID查找、名称(Name)查找、Css选择器(CssSelector)查找、以及标准通用标记语言路径(xpath)查找等等。其中,最有效的查找方式是ID查找和Name查找,其次是使用xpath查找。当开发人员想要使用ID查找或Name查找的方式时,该查找的控件就必须具有ID属性或Name属性,这就需要开发人员在脚本开发时,将所有控件都增加ID属性或者Name属性,这给开发人员带来了巨大的额外工作量,而且为了考虑动态页面和自动处理,ID属性或Name属性必须也是动态参数无法做到固定。其中,当页面源文件的控件缺少ID属性或Name属性时,一般可以使用xpath作为控件元素的查找方式,然而,一旦网页的页面源文件被修改,修改前构建的xpath容易失效,导致自动化用例执行失败或者不稳定,测试效率低下,因此,上述查找方式存在工作量巨大,查找易失效和测试效率低下的问题。通过终端在页面源文件中自动增加测试锚点,减轻了开发人员的工作量,且该测试锚点专用于自动化测试,不会改变页面源文件中的结构和状态,该测试锚点因此不易失效,在开发人员构建自动化用例时,可以提高控件查找的效率。在图1中,规则文件101是定义测试锚点插入规则的文件。该规则文件101中可以描述插入测试锚点的位置。例如,规则文件101可以覆盖所有网页的页面源文件102中可能出现的Html基础控件节点,包括:input,select,textarea,table,label,li,span,img,a等标签节点。规则文件101中覆盖的节点则为需要插入测试锚点的节点。页面源文件102可以是网页(Website,WEB)前台的页面源文件,例如.html和.jsp和.uslx等文件。具体的,该测试锚点装置103的处理过程可以是首先基于规则文件101中的测试锚点插入规则查找页面源文件102中所有需要插入测试锚点的节点位置,然后进行测试锚点的增加。其中,测试锚点可以包括锚点属性名及锚点属性值。该测试锚点装置103然后将该生成的测试锚点插入到查找到的节点位置中。其中,锚点属性值可以优先选取该节点位置所在节点的ID属性,如果该ID属性不存在则可以通过自动编码产生一个锚点属性值,以保证生成的锚点属性值在整个待测页面源文件104中唯一。锚点属性名可以用于标识插入的测试锚点为WEB自动化测试专用的属性,测试锚点装置103在生成测试锚点时,可以将所有测试锚点的锚点属性名都设置为相同的名称,例如该测试锚点的锚点属性名可以都为x-autoid。进一步的,当该待测页面源文件104中新增了控件时,该测试锚点装置103可以对该待测页面源文件104进行重复处理,这时,已有测试锚点的节点位置不会再插入新的测试锚点,该测试锚点装置103可以只对未插入测试锚点的节点位置插入新的测试锚点,并在插入测试锚点全部完成后,输出最新的待测页面源文件。在开发人员构建自动化测试用例时,可以按照操作顺序编排所有代码步骤,然后获取查找的控件的测试锚点作为控件的查找基础,然后将该测试锚点拼装成xpath查找方式或CssSelector查找方式,以定位该测试锚点对应的控件。举例来说,用户名输入框控件的锚点属性名为x-autoid,锚点属性值为logintext,开发人员可以将该锚点属性名x-autoid和该锚点属性值logintext拼装成xpath查找方式来获取用户名输入框控件。进一步的,请参阅图2,是本申请实施例提供的一种生成页面对象的示意图。该图2是基于图1的基础上,基于生成的测试锚点进一步生成页面对象的处理过程。其中,该生成页面对象的实施主体页面对象装置203也可以由计算机等可以处理页面源文件的终端来实现。终端可以采用人工操作页面+录制的方式,自动抓取所操作控件的ID属性、Name属性,如果没有ID属性或Name属性的控件,则可以自动拼接成xpath,然后基于录制的页面操作自动生成页面对象。在开发人员构建自动化测试用例时,可以直接调用页面对象来编排测试步骤。采用录制的方式生成页面对象可以达到封装重用的目的,较直接使用ID或Name或xpath进行查找,提高了自动化用例的查找效率,但由于控件存在动态ID或者自动拼接的xpath,通过录制而自动获取的控件的ID、Name或xpath的准确性较低。在图2中,通过页面对象装置203基于添加的测试锚点,自动识别出Web页面上所有的输入项,根据识别出的输入项,自动生成页面对象,页面对象包含当前页面上所有Web控件的属性成员,以及成员对应的操作方法(inputXXX、clickXXX),然后,自动化用例开发人员应用页面对象来构建WebUI的自动化用例,可以提高在页面对象中定位控件的准确性。在图2中,终端首先获取控件定义文件201和待测页面源文件202,该控件定义文件201中可以包含对html基础控件的定义和对产品封装Web控件的定义。其中,该html基础控件可以是指包含有input,select,textarea,table,label,li,span,img,a等节点的控件,该产品封装Web控件可以是来源于用户界面开发的设计文档中对产品页面控件的定义描述,例如使用Class类型进行控件的定义,CSS格式文件进行控件的渲染,具体的,该终端可以在产品封装Web控件中定义Class=“Droplist”为下拉框、Class=“oc-date”为按钮等。该产品封装Web控件可以由html基础控件组合而成,并加上CSSClass进行渲染展示。由于产品封装Web控件是基于html基础控件组合而成的,而且基于测试锚点插入规则可以将页面上测试锚点覆盖所有的html基础控件,所以每个封装的Web控件至少有一个html基础控件及一个测试锚点,封装Web控件的位置可以由其任意一个Web控件中的html基础控件的测试锚点来唯一确认。进一步的,该页面对象装置203可以根据该控件定义文件201对该待测页面源文件202进行解析,根据控件定义文件201中控件的优先级识别出该待测页面源文件202中可以作为独立测试对象的测试控件,然后自动识别出页面上所有的测试控件名称(即Name属性),测试控件类型(WebControlType),测试控件对应的测试锚点以及测试控件和测试锚点的绑定关系。紧接着该页面对象装置203可以基于上述识别的所有识别项生成页面对象204,该页面对象204中可以包含所有的识别项以及各个Web控件对应的操作方法(例如inputXXX、clickXXX等)。开发人员可以通过直接调用页面对象204并基于自动化用例测试框架进行手工编码来构建自动化测试用例。举例来说,该页面对象204为名称为XXXLoginPageObject,开发人员首先登录该XXXLoginPageObject,然后输入用户名和密码,最后点击登录按钮,就可以开发出登录页面的自动化测试用例。请参阅图3,是本申请实施例提供的一种终端的结构示意图。本实施例中所描述的终端,包括:用户接口301,显示屏302,处理器303,通信接口304,存储器305,上述用户接口301,显示屏302,处理器303,通信接口304以及存储器305可以通过总线连接,也可以以其他方式连接。处理器303可以是中央处理器(英文:centralprocessingunit,缩写:CPU),网络处理器(英文:networkprocessor,缩写:NP)或者CPU和NP的组合。处理器303也可以是多核CPU或多核NP中用于实现通信标识绑定的核。上述处理器303可以是硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specificintegratedcircuit,缩写:ASIC),可编程逻辑器件(英文:programmablelogicdevice,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complexprogrammablelogicdevice,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmablegatearray,缩写:FPGA),通用阵列逻辑(英文:genericarraylogic,缩写:GAL)或其任意组合。通信接口304可用于收发信息或信令的交互,以及信号的接收和发送,特别地,通信接口304可以通过无线通信或者优先通信与网络和其他设备进行通信。上述无线通信可以使用任一通信标准或协议,包括但不限于无线保真技术(WIrelessFIdelity,WiFi),GSM(GlobalSystemofMobilecommunication,全球移动通讯系统)、GPRS(GeneralPacketRadioService,通用分组无线服务)、CDMA(CodeDivisionMultipleAccess,码分多址)、WCDMA(WidebandCodeDivisionMultipleAccess,宽带码分多址)、LTE(LongTermEvolution,长期演进)、电子邮件、SMS(ShortMessagingService,短消息服务)等。上述优先通信包括但不限于优先宽带、光纤等。用户接口931可用于接收输入的数字或字符信息,以及产生与该终端的用户设置以及功能控制有关的键信号输入。具体地,上述用户接口301可包括物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆以及其他输入设备。显示屏302可用于显示由用户输入的信息或提供给用户的信息以及该终端的各种菜单。显示屏302可以采用LCD(LiquidCrystalDisplay,液晶显示器)、OLED(OrganicLight-EmittingDiode,有机发光二极管)等形式来配置。触控面板可覆盖显示屏902,当触控面板检测到在其上或附近的触摸操作后,传送给处理器303以确定触摸事件的类型,随后处理器303根据触摸事件的类型在显示屏302上提供相应的视觉输出,终端可以将触控面板与显示屏302集成而实现终端的输入和输出功能。上述存储器305可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的存储程序(比如文字存储功能、图象播放功能等);存储数据区可存储根据终端的使用所创建的数据(比如音频数据、文字数据)等,并可以包括网络通信模块、用户接口模块,页面对象生成模块,锚点生成模块等。其中,该网络通信模块可以用于存储网络通信程序,该通信接口304可以通过调用该网络通信模块的网络通信程序实现对外或对内通信的功能。该用户接口模块可以用于存储实现用户对终端的触控、按压等人机交互程序,该用户接口301可以通过调用该用户接口模块的人机交互程序实现用户信号的输入功能。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。上述存储器305还用于存储程序指令。上述处理器303可以调用上述存储器305存储的程序指令,实现如本申请实施例所示的网页测试的处理方法。具体的,上述处理器303调用存储在上述存储器305存储的程序指令执行以下步骤:获取网页的页面源文件;根据测试锚点插入规则确定上述页面源文件中需要插入测试锚点的节点位置;生成测试锚点,并将上述测试锚点插入到对应的节点位置处,其中,上述测试锚点表示在自动化测试中用于查找控件的属性;生成包含上述测试锚点的待测页面源文件。本申请实施例中处理器执行的方法均从处理器的角度来描述,可以理解的是,本申请实施例中处理器要执行上述方法需要其他硬件结构的配合。例如,上述终端与其他设备或服务器的交互,如获取网页的页面源文件和测试锚点插入规则等,均由上述处理器303控制上述通信接口304来接收和发送相关信令,上述生成的测试锚点以及待测页面源文件,均可以由上述处理器303控制上述存储器305进行存储,等。本申请实施例对具体的实现过程不作详细描述和限制。可替换的,上述测试锚点插入规则包括:在上述页面源文件的基础控件节点和/或封装控件节点插入测试锚点;上述封装控件节点由至少一个基础控件节点组成。可替换的,上述处理器303,具体用于从上述页面源文件中确定出基础控件节点和/或封装控件节点,以上述基础控件节点和/或封装控件节点所在的位置为插入测试锚点的节点位置。上述处理器303,还用于从上述待测网页源文件中解析出作为独立测试对象的控件,并根据上述控件的类型选择绑定上述控件的测试锚点,生成上述控件与选择出的上述测试锚点的绑定关系,并生成页面对象。其中,上述页面对象包括上述绑定关系、上述控件的类型、以及与上述控件绑定的测试锚点的任意一种或多种。可替换的,上述处理器303,具体用于获取预先设置的不同类型的控件的优先级,按照上述优先级从上述待测网页源文件中解析出作为独立测试对象的控件。可替换的,上述处理器303,具体用于优先选择上述控件自身节点所在位置的测试锚点进行绑定。可替换的,上述处理器303,具体用于若上述控件的类型为封装控件,则优先选择上述控件自身节点所在位置的测试锚点进行绑定,在上述控件自身节点所在位置不存在测试锚点时,选择上述控件的任意一个子孙节点所在位置的测试锚点进行绑定,以及若上述控件的类型为基础控件,则选择上述控件自身节点所在位置的测试锚点进行绑定。可替换的,上述处理器303,具体用于检测上述节点位置上的基础控件节点和/或封装控件节点是否具有标识ID属性;若检测结果为上述节点位置上的基础控件节点和/或封装控件节点不具有ID属性,则根据自动编码生成锚点属性值,并生成锚点属性名,并生成包括上述锚点属性值和上述锚点属性名的测试锚点;若检测结果为上述节点位置上的基础控件节点和/或封装控件节点具有ID属性,则设置在上述节点位置上的锚点属性值为上述ID属性,并生成锚点属性名,并生成包括上述锚点属性值和上述锚点属性名的测试锚点;其中,上述锚点属性值用于标识上述测试锚点在上述待测网页源文件中具有唯一性。基于同一发明构思,本申请实施例中提供的终端解决问题的原理与本发明方法实施例相似,因此该终端的实施可以参见以下方法的实施。请参阅图4,是一种网页测试的处理方法的流程示意图。如图4所示的网页测试的处理方法,包括以下几个步骤:S401、终端获取网页的页面源文件。需要说明的是,该网页的页面源文件也可以是网页源代码,是指通过编程语言语法规则让图片、文字、音视频等内容呈现在浏览器上的代码。一般来说,该页面源文件可以是基于开发层面,在开发人员需要制作网页或者对网页进行处理的时候需要获取的文件。其中,该网页可以是搜索网页、购物网页、视频网页、音频网页或者游戏网页等等,在此不作限制。具体实现中,该终端在获取该网页的页面源文件时,具体可以是通过打开该网页的浏览器点击“查看源文件”的选项来直接查看该页面源文件,也可以是在该浏览器中使用快捷键(例如Ctrl+U)的方式来进行查看该页面源文件等。S402、终端根据测试锚点插入规则确定页面源文件中需要插入测试锚点的节点位置。需要说明的是,该测试锚点插入规则可以是指规定该页面源文件中需要插入测试锚点的节点位置的规则。该测试锚点插入规则可以是利用CSS选择器(CSSSelector)这种查找方式来覆盖页面中所有html基础控件节点,例如input,select,texarea,table,label,li,span,img,a等标签节点。或者该测试锚点插入规则还可以是其他规则,终端可以根据该测试锚点插入规则找到该页面源文件中需要插入测试锚点的节点位置。具体实现中,该测试锚点插入规则可以存储在规则文件中,终端通过解析该规则文件以得到该测试锚点插入规则。其中,开发人员可以在规则文件中对该测试锚点插入规则进行修改,当该测试锚点插入规则被修改时,终端就可以修改后的测试锚点插入规则确定该页面源文件中需要插入测试锚点的节点位置。其中,该节点位置可以是页面源文件中基础控件节点或封装控件节点所在的位置,或者页面源文件中其他节点所在的位置。S403、终端生成测试锚点,并将测试锚点插入到对应的节点位置处。其中,该测试锚点表示在自动化测试中用于查找控件的属性。开发人员可以不再使用网页中控件的ID或Name属性作为自动化测试时的查找依据,而是通过自动增加测试锚点的方式作为控件查找依据。该测试锚点可以用于自动化测试,但不会改变页面源文件的任何结构,也可以不对控件的属性值和其他值进行改变。需要说明的是,该生成的测试锚点包括锚点属性值以及锚点属性名,该锚点属性值可以用于保证该测试锚点在页面具有唯一性,该锚点属性名可以用于标识该测试锚点为用于自动化测试的专用属性。具体实现中,该终端可以将该测试锚点插入到根据测试锚点插入规则找到的每一个节点位置处,以保证该节点位置处均存在一个测试锚点,并且,不同的节点位置处插入的测试锚点均不相同,以保证在开发人员构建自动化测试用例时,可以提高查找并定位节点的准确度。在一些可行的实施方式中,当该页面源文件中新增了控件时,终端会对该页面文件进行重复处理。该终端在进行重复处理时,可以对已增加测试锚点的节点位置不再进行插入测试锚点的操作,而是根据该测试锚点插入规则确定未插入测试锚点的位置,并生成测试锚点插入到该未插入测试锚点的位置处。S404、终端生成包含该测试锚点的待测页面源文件。需要说明的是,该待测源文件中除新增了测试锚点之外,结构和状态可以不受到影响,当用户打开该待测页面时,该待测页面的内容和状态可以均不发生改变。具体实现中,开发人员在进行构建自动化测试用例时,可以通过查找该待测页面源文件中的测试锚点查找到该测试锚点对应的节点。具体实现中,该终端还可以对该待测页面源文件进行进一步处理,生成包括有测试锚点和控件的绑定关系,控件的类型以及绑定的测试锚点本身的页面对象。开发人员可以通过调用该页面对象构建自动化测试用例。在一些可行的实施方式中,基于该测试锚点还可以提前识别和评估该待测页面文件的修改对构建自动化测试用例的影响。例如,终端记录了一个测试锚点A,后来在再次扫描该待测页面源文件时,发现该测试锚点A丢失,就可以说明该待测页面源文件被修改或者构建自动化用例不稳定,其中,该终端可以通过该测试锚点A找到并修复丢失的那部分文件,保证了该待测页面源文件的完整性。本申请实施例中,该终端首先获取当前网页的页面源文件,然后根据测试锚点插入规则确定出该页面源文件中需要插入测试锚点的节点位置,并将生成的测试锚点插入到该节点位置处,最后生成带有该测试锚点的待测页面源文件,可以通过在页面源文件中增加测试锚点,将该测试锚点作为控件查找依据,提高自动化测试的查找效率。请参阅图5,是本申请实施例在图1所示的增加测试锚点的示意图的基础上提供的另一种网页测试的处理方法的流程示意图。本实施例中所描述的网页测试的处理方法,包括以下步骤:S501、终端获取网页的页面源文件。S502、终端从页面源文件中确定出基础控件节点和/或封装控件节点,以基础控件节点和/或封装控件节点所在的位置为插入测试锚点的节点位置。需要说明的是,该终端从页面源文件中确定出基础控件节点和/或封装控件节点是基于测试锚点插入规则进行执行的,该测试锚点插入规则可以是在该页面源文件的基础控件节点和/或封装控件节点插入测试锚点。其中,该封装控件节点由至少一个基础控件节点组成。需要说明的是,该基础控件节点可以是该页面源文件中的html基础控件,该html基础控件可以包括但不限于以下节点:input,select,textarea,table,label,li,span,img,a。该封装控件节点可以由至少一个基础控件节点组成。在一些可行的实施方式中,如果该测试锚点插入规则是在该页面源文件中的基础控件节点插入测试锚点,那么该终端可以根据该测试锚点插入规则将该基础控件节点所在的位置确定出来,并将该位置作为插入测试锚点的节点位置,可以保证页面源文件中每一个基础控件节点都会插入测试锚点,提高了查找基础控件节点的准确度。在一些可行的实施方式中,如果该测试锚点插入规则是在该页面源文件中的基础控件节点和封装控件节点插入测试锚点,那么该终端可以首先判断该封装控件节点的优先级高还是基础控件节点的优先级高,若该封装控件节点的优先级高,那么该终端可以将该封装控件节点所在的位置作为插入测试锚点的优先节点位置,组成该封装控件节点的基础控件节点位置就可以不被终端确定为该插入测试锚点的节点位置,然后,该终端还可以将除了组成该封装控件节点的基础控件节点以外的基础控件节点作为插入测试锚点的次要节点位置。该终端可以在该有效节点位置和该次要节点位置均插入测试锚点。S503、终端检测节点位置上的基础控件节点和/或封装控件节点是否具有标识ID属性。需要说明的是,该标识ID属性为基础控件节点和/或封装控件节点自有的节点属性,开发人员可以通过该ID属性查找到该基础控件节点和/或封装控件节点的准确位置。具体实现中,该终端在生成测试锚点之前,首先检测该节点位置上的基础控件节点和/或封装控件节点是否与该ID属性。S504、终端若检测结果为节点位置上的基础控件节点和/或封装控件节点具有ID属性,则设置在节点位置上的锚点属性值为ID属性,并生成锚点属性名。具体实现中,该终端在检测到该基础控件节点和/或封装控件节点具有ID属性时,就可以将该节点位置上的锚点属性值设置为同该ID属性相同,并生成一个锚点属性名。这样可以增加终端设置锚点属性值的方便度,并且也保证了该锚点属性值在该页面源文件中具有唯一性。其中,该锚点属性名可以是所有生成的测试锚点均相同,例如终端均设置测试锚点的锚点属性名为x-autoid,该锚点属性名可以用于标识该测试锚点为自动化测试的专用属性。当然,该锚点属性名也可以不相同,在此不作限制。可替换的,如果该终端在检测到该基础控件节点和/或封装控件节点不具有ID属性时,则可以根据自动编码生成锚点属性值,并生成锚点属性名。需要说明的是,该自动编码可以是终端随机生成的一种编码,用于保证生成的锚点属性值在页面源文件中保持唯一性。其中,该自动编码的种类与该自动编码的编码方法在此不作限制。S505、终端生成包括锚点属性值和锚点属性名的测试锚点,并将测试锚点插入到对应的节点位置处。需要说明的是,该测试锚点用于表示在自动化测试中用于查找控件的属性。具体实现中,终端还可以在生成了该测试锚点之后,将包括该锚点属性值和该锚点属性名的测试锚点插入到该节点位置中。终端便可通过该测试锚点定位到该节点位置所在的控件。其中,该控件可以是基础控件,也可以是封装控件,或者还可以是其他类型的控件,在此不作限制。S206、终端生成包含测试锚点的待测页面源文件。需要说明的是,该包含测试锚点的待测页面源文件可以不因为增加了该测试锚点而改变了其本身的属性值和状态值,例如,页面中的动态效果不会发生改变,页面中的控件位置不会发生改变,页面中的视频、文字、音频等信息不会发生改变等等。在一些可行的实施方式中,开发人员在构建自动化测试用例时,可以按照操作顺序编排所有代码步骤,然后获取查找的控件中的测试锚点作为控件的查找基础,然后将该测试锚点拼装成xpath查找方式或CssSelector查找方式,以定位该测试锚点对应的控件。举例来说,用户名输入框控件的锚点属性名为x-autoid,锚点属性值为logintext,开发人员可以将该锚点属性名x-autoid和该锚点属性值logintext拼装成xpath查找方式来获取用户名输入框控件。又举例来说,密码输入框控件的锚点属性名为x-autoid,锚点属性值为passwordtext,开发人员可以将该锚点属性名x-autoid和该锚点属性值passwordtext拼装成CssSelector查找方式来获取密码输入框控件。本申请实施例中,终端首先获取网页的页面源文件,然后根据测试锚点插入规则确定出页面源文件中基础控件节点和/或封装控件节点所在的位置为插入测试锚点的节点位置,在该节点位置上的节点具有ID属性时,将测试锚点的锚点属性值设置为该ID属性,同时生成测试锚点的锚点属性名,最后生成包含有该锚点属性值和锚点属性名的测试锚点的待测页面源文件,可以通过在基础控件节点和/或封装控件节点的节点位置插入测试锚点,保证了页面源文件中每一个基础控件节点和/或封装控件节点都具有至少一个测试锚点,使该测试锚点的覆盖范围更广,并且将该测试锚点的锚点属性值设置该节点的ID属性,可以增加终端设置锚点属性值的方便度,并且也保证了该锚点属性值在该页面源文件中具有唯一性,和便于查找该测试锚点所在的控件,提高了构建自动化用例时的查找效率。请参阅图6,是本申请实施例在图1所示的增加测试锚点的示意图和图2所示的生成页面对象的示意图的基础上提供的又一种网页测试的处理方法的流程示意图,包括以下步骤:S601、终端获取网页的页面源文件。S602、终端根据测试锚点插入规则确定页面源文件中需要插入测试锚点的节点位置。可替换的,该测试锚点插入规则可以是在该页面源文件的基础控件节点和/或封装控件节点插入测试锚点。其中,该封装控件节点可以由至少一个基础控件节点组成。可替换的,终端根据该测试锚点插入规则确定页面源文件中需要插入测试锚点的节点位置可以是从该页面源文件中确定出基础控件节点和/或封装控件节点,以该基础控件节点和/或封装控件节点所在的位置为插入测试锚点的节点位置。S603、终端生成测试锚点,并将测试锚点插入到对应的节点位置处。其中,该测试锚点表示在自动化测试中用于查找控件的属性。并且,该测试锚点可以包括锚点属性值和锚点属性名,该锚点属性值用于标识该测试锚点在该待测网页源文件中具有唯一性。S604、终端生成包含测试锚点的待测页面源文件。S605、终端从待测网页源文件中解析出作为独立测试对象的控件。需要说明的是,该独立测试对象的控件是指生成页面对象必须的控件。由于该待测页面源文件中包含有任意多个控件,其中有些控件不是生成页面对象必须的控件,例如公共对象的控件等等,因此该终端需要从该待测网页源文件中解析出该作为独立测试对象的控件。可替换的,该终端可以获取预先设置的不同类型的控件的优先级,按照该优先级从该待测网页源文件中解析出作为独立测试对象的控件。需要说明的是,该优先级可以是终端默认的优先级,也可以是用户预先设置的优先级。一般情况下,终端可以将该优先级存储成一个优先级文件,该优先级文件中从上到下,控件的优先级依次降低。举例来说,终端可以在该优先级文件中默认该封装控件的优先级高于该基础控件的优先级。进一步的,该终端解析出该作为独立测试对象的控件之后,还可以根据该控件的类型选择绑定该控件的测试锚点。需要说明的是,该控件的类型可以是基础类型,也可以是封装类型,还可以是其他类型。该控件的测试锚点可以是指位于该控件中任意一个节点位置上的测试锚点。S606、终端若控件的类型为封装控件,则优先选择控件自身节点所在位置的测试锚点进行绑定,在控件自身节点所在位置不存在测试锚点时,选择控件的任意一个子孙节点所在位置的测试锚点进行绑定。可替换的,若该控件的类型为基础控件,则终端可以选择该控件自身节点所在位置的测试锚点进行绑定。具体实现中,该终端可以首先根据优先级定位类型为封装控件的控件,然后检测该封装控件自身节点所在的位置上是否存在测试锚点,如果有测试锚点,则将该测试锚点进行绑定,如果没有测试锚点,则可以再获取该封装控件中任意一个子孙节点所在位置的测试锚点,并将该子孙节点所在位置的测试锚点与该封装控件进行绑定。需要说明的是,该子孙节点可以是基础控件节点。由于该封装控件可以由多个基础控件组成,根据该测试锚点插入规则可以将每一个基础控件节点都插入测试锚点,因此,封装控件中任意一个基础控件节点都可以对应着一个测试锚点,通过该基础控件节点对应的测试锚点可以反向查找并定位出该封装控件。在一些可行的实施方式中,该终端可以优先选取该封装控件中第一个子孙节点所在位置的测试锚点进行绑定。当然,该终端也可以是选取该封装控件中其他子孙节点所在位置的测试锚点进行绑定,在此不作限制。进一步的,终端可以将该封装控件和该选择出的测试锚点进行绑定之后,再根据优先级定位出类型为基础控件的控件,该基础控件中可以包括基础节点,该基础节点可以对应着一个对应的测试锚点,该终端可以选择该对应的测试锚点,然后再将该对应的测试锚点与该基础控件进行绑定。S607、终端生成控件与选择出的测试锚点的绑定关系。需要说明的是,该绑定关系作为控件和选择出的测试锚点的对应关系,可以用于根据该选择出的测试锚点查找并定位该控件。S608、终端生成页面对象。其中,该页面对象可以包括记录的测试锚点与该控件的绑定关系、该控件的类型、以及与该控件绑定的测试锚点,还可以包括该控件对应的操作方法(例如inputXXX、clickXXX等)。具体实现中,该终端可以将该生成的页面对象保存在终端的存储模块中,当开发人员需要构建自动化用例时,便可通过该存储模块进行页面对象的调用。开发人员在开发自动化测试用例时,可以不需要再查找控件的ID或者使用其他查找方式,而是可以直接调用该页面对象,并基于自动化用例测试框架进行手工编码来构建自动化测试用例。举例来说,该页面对象名称为XXXLoginPageObject,开发人员首先登录该XXXLoginPageObject,然后输入用户名和密码,最后点击登录按钮,就可以开发出登录页面的自动化测试用例。本申请实施例中,该终端首先获取当前网页的页面源文件,然后根据测试锚点插入规则确定出该页面源文件中需要插入测试锚点的节点位置,并将生成的测试锚点插入到该节点位置处,并生成带有该测试锚点的待测页面源文件,然后从待测页面源文件中解析出作为独立测试对象的控件,并优先选择该控件自身节点所在位置的测试锚点与该控件进行绑定,记录该绑定关系,并生成页面对象,可以通过在页面源文件中增加测试锚点,并基于该测试锚点构建页面对象,开发人员可以通过调用该页面对象来编排自动化测试的测试步骤,提高了自动化测试的构建效率。上述详细阐述了本申请实施例的方法,下面为了便于更好地实施本申请实施例的上述方案,相应地,下面还提供用于配合实施上述方案的设备及系统。请参阅图7,为本申请实施例提供的一种测试锚点装置的结构示意图。本实施例中所描述的网页测试装置,包括:获取模块701,确定模块702,生成模块703。具体的,获取模块701,用于获取网页的页面源文件。确定模块702,用于根据测试锚点插入规则确定该页面源文件中需要插入测试锚点的节点位置。生成模块703,用于生成测试锚点,并将该测试锚点插入到对应的节点位置处,生成包含该测试锚点的待测页面源文件。其中,该测试锚点表示在网页自动化测试中用于查找控件的属性。可选的,该测试锚点装置可通过上述模块实现上述图4及图5对应实施例中的网页测试的处理方法中终端执行的相应步骤。应理解,本申请实施例是对应方法实施例的装置实施例,对方法实施例的描述,也适用于本申请实施例。本申请实施例中,可以通过在页面源文件中增加测试锚点,将该测试锚点作为控件查找依据,提高自动化测试的查找效率。并且,将该测试锚点的锚点属性值设置该节点的ID属性,可以增加设置锚点属性值的方便度,保证了该锚点属性值在该页面源文件中具有唯一性。请参阅图8,为本申请实施例提供的一种页面对象装置的结构示意图。本实施例中所描述的页面对象装置,包括:解析模块801,生成模块802。具体的,解析模块801,用于从待测网页源文件中解析出作为独立测试对象的控件。生成模块802,用于根据该控件的类型选择绑定该控件的测试锚点,生成该控件与选择出的测试锚点的绑定关系,并生成页面对象。其中,该页面对象包括该绑定关系、该控件的类型、以及与该控件绑定的测试锚点的任意一种或多种。其中,该测试锚点用于表示在待测网页源文件中查找作为独立测试对象的控件的属性。可选的,该页面对象装置可通过上述模块实现上述图6对应实施例中的网页测试的处理方法中终端执行的相应步骤。应理解,本申请实施例是对应方法实施例的装置实施例,对方法实施例的描述,也适用于本申请实施例。本申请实施例中,可以基于测试锚点构建页面对象,开发人员可以通过调用该页面对象来编排自动化测试的测试步骤,提高了自动化测试的构建效率。请参见图9,是本申请实施例提供的一种网页测试系统的结构示意图。本实施例中所描述的网页测试系统,包括:测试锚点装置901,页面对象装置902。其中,该测试锚点装置901的结构可参见如图7所示的测试锚点装置的具体结构,且该测试锚点装置901可用于执行实现上述图4及图5对应实施例中的网页测试的处理方法中终端执行的相应步骤;该页面对象装置902的结构可参见如图8所示的测试锚点装置的具体结构,且该页面对象装置902可用于执行实现上述图6对应实施例中的网页测试的处理方法中终端执行的相应步骤,在此不作赘述。本申请实施例中,可以通过将该测试锚点作为控件查找依据,提高自动化测试的查找效率,并基于测试锚点构建页面对象,开发人员可以通过调用该页面对象来编排自动化测试的测试步骤,提高了自动化测试的构建效率。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1