一种生成测试脚本的方法及系统的制作方法

文档序号:6511141阅读:256来源:国知局
一种生成测试脚本的方法及系统的制作方法
【专利摘要】本申请公开了一种生成测试脚本的方法及系统,在数据库中对页面元素的信息进行统一管理,通过调用数据库中的页面元素的信息来生成测试脚本,即使页面元素的路径信息发生变化,只需要更新数据库的内容即可,而无需对生成的测试脚本中的代码做修改;另外,数据库中存储的页面元素的路径信息分别指向了页面元素应用在主干代码和/或分支代码时的元素对象,因此,无论被测页面是主干代码生成的页面还是分支代码生成的页面,在生成测试脚本时,可根据实际的测试环境调用匹配的页面元素的路径信息,大大简化了测试脚本的生成与维护过程。
【专利说明】一种生成测试脚本的方法及系统

【技术领域】
[0001]本申请涉及计算机【技术领域】,尤其涉及一种生成测试脚本的方法及系统。

【背景技术】
[0002]应用软件开发过程中部署的代码称之为分支代码,分支代码上线应用到真实环境所部署的代码称之为主干代码,分支代码或主干代码在后台运行时,将在前台生成相应的页面,为了对分支代码或主干代码进行功能测试,可将分支代码或主干代码所生成的页面做为测试对象,生成测试脚本对页面进行功能测试。
[0003]在生成测试脚本时,需要获知页面中各页面元素在页面中的路径信息,以使得生成的测试脚本能够根据路径信息,对该路径信息对应的页面元素进行功能测试。所述页面元素包括页面中的控件、表单、列表等。
[0004]目前,生成测试脚本时,可通过注解的形式将页面元素的路径信息写入测试脚本内的指定对象(如Java对象)中,当有页面元素的路径信息变更时,可以在测试脚本的指定对象中修改该页面元素的路径信息。
[0005]通过上述将页面元素的路径信息写入测试脚本的指定对象中的方案,能够做到对页面元素的统一管理,但是,由于其方案的实质仍是手动将页面元素的路径信息写在测试脚本的代码中,因此,当有页面元素的路径信息变更时,还是需要手动修改测试脚本中的代码,特别是当有大量的页面元素有路径信息变更时,对测试脚本中代码的修改会比较复杂,同时也不利于对页面元素的维护、管理;另外,如果在分支代码中修改了页面元素的路径信息,而该分支代码还未上线成为主干代码时,需要分别维护两个测试脚本,其中一个测试脚本用于对修改了页面元素路径信息的分支代码进行测试,另一个测试脚本用于对当前的主干代码进行测试,在分支代码上线与主干代码合并后,再更新测试脚本,使得整个测试脚本的生成与维护过程非常复杂。


【发明内容】

[0006]本申请实施例提供了一种生成测试脚本的方法及系统,用以解决现有技术中存在的生成与维护测试脚本过程复杂的问题。
[0007]一种生成测试脚本的方法,所述方法包括:
[0008]向数据库发起信息调用请求,所述信息调用请求中携带被测页面的地址信息和测试环境信息,所述测试环境信息表示所述被测页面是主干代码生成的页面还是分支代码生成的页面;
[0009]接收所述数据库返回的所述被测页面中各页面元素的信息,其中,所述页面元素的信息是所述数据库根据本地存储的页面信息,确定接收到的所述地址信息所在的页面信息,所述页面信息中包含页面的地址信息和该页面中各页面元素的信息,从确定的所述页面信息包含的页面元素的信息中查询出与接收到的所述测试环境信息匹配的各页面元素的路径信息后,将所述路径信息和确定的所述页面信息中各页面元素的其他信息返回的;
[0010]根据接收到的所述被测页面中各页面元素的信息生成对所述被测页面进行测试的测试脚本。
[0011]在本申请实施例中,即使页面元素的路径信息发生变化,只需要更新数据库的内容即可,而无需对生成的测试脚本中的代码做修改;另外,无论被测页面是主干代码生成的页面还是分支代码生成的页面,在生成测试脚本时,可根据实际的测试环境调用匹配的页面元素的路径信息,大大简化了测试脚本的生成与维护过程。
[0012]可选地,所述页面元素的信息中包括:
[0013]各页面元素的标识;
[0014]各页面元素是应用在主干代码的信息和/或应用在分支代码的信息;
[0015]各页面元素的路径信息,所述路径信息包括:当页面元素应用在主干代码时该页面元素的路径信息、当页面元素应用在分支代码时该页面元素的路径信息。
[0016]在本申请实施例中,页面元素的信息包含的内容从不同方面来反映所述页面元素的功能。
[0017]可选地,所述数据库从确定的所述页面信息包含的页面元素的信息中查询出与接收到的所述测试环境信息匹配的各页面元素的路径信息,具体包括:
[0018]所述数据库在确定接收到的所述测试环境信息表示所述被测页面是主干代码生成的页面时,从页面元素的路径信息中查询出各页面元素应用在主干代码时该页面元素的路径信息;
[0019]所述数据库在确定接收到的所述测试环境信息表示所述被测页面是分支代码生成的页面时,从页面元素的路径信息中查询出各页面元素应用在分支代码时该页面元素的路径信息。
[0020]在本申请实施例中,根据被测页面的环境选择适配的页面元素的路径信息,使得生成的一套测试脚本可分别应用于主干环境和分支环境。
[0021]可选地,所述根据接收到的所述被测页面中各页面元素的信息生成测试脚本,具体包括:
[0022]将接收到的所述页面元素的标识与该页面元素的路径信息进行绑定;
[0023]利用页面元素的路径信息获取绑定的页面元素标识所对应的页面元素的内容来生成所述测试脚本。
[0024]在本申请实施例中,在初始化时就将所有页面元素的标识与路径信息做绑定,使得最终生成的测试脚本可以对被测页面的所有功能做测试。
[0025]可选地,所述页面元素的信息中还包括:
[0026]所述页面元素的路径信息的定位方式以及该定位方式所适用的设备类型;
[0027]所述数据库返回的所述被测页面中各页面元素的信息之前,所述方法还包括:
[0028]所述数据库根据发起所述信息调用请求的设备的设备类型,确定该设备适用所述页面元素的路径信息的定位方式。
[0029]在本申请实施例中,确定发起信息调用请求的设备与所述页面元素的路径信息的定位方式适配时,可确保返回的页面元素的信息可被所述设备正确识别。
[0030]一种生成测试脚本的系统,所述系统包括UI框架和数据库,其中:
[0031]所述Π框架,用于向数据库发起信息调用请求,所述信息调用请求中携带被测页面的地址信息和测试环境信息,所述测试环境信息表示所述被测页面是主干代码生成的页面还是分支代码生成的页面,以及接收所述数据库返回的所述被测页面中各页面元素的信息,并根据接收到的所述被测页面中各页面元素的信息生成对所述被测页面进行测试的测试脚本;
[0032]所述数据库,用于根据本地存储的页面信息,确定接收到的所述地址信息所在的页面信息,所述页面信息中包含页面的地址信息和该页面中各页面元素的信息,从确定的所述页面信息包含的页面元素的信息中查询出与接收到的所述测试环境信息匹配的各页面元素的路径信息后,将所述路径信息和确定的所述页面信息中各页面元素的其他信息返回给所述Π框架。
[0033]在本申请实施例中,即使页面元素的路径信息发生变化,只需要更新数据库的内容即可,而无需对生成的测试脚本中的代码做修改;另外,无论被测页面是主干代码生成的页面还是分支代码生成的页面,在生成测试脚本时,可根据实际的测试环境调用匹配的页面元素的路径信息,大大简化了测试脚本的生成与维护过程。
[0034]可选地,所述页面元素的信息中包括:
[0035]各页面元素的标识;
[0036]各页面元素是应用在主干代码的信息和/或应用在分支代码的信息;
[0037]各页面元素的路径信息,所述路径信息包括:当页面元素应用在主干代码时该页面元素的路径信息、当页面元素应用在分支代码时该页面元素的路径信息。
[0038]在本申请实施例中,页面元素的信息包含的内容从不同方面来反映所述页面元素的功能。
[0039]可选地,所述数据库,具体用于在确定接收到的所述测试环境信息表示所述被测页面是主干代码生成的页面时,从页面元素的路径信息中查询出各页面元素应用在主干代码时该页面元素的路径信息;在确定接收到的所述测试环境信息表示所述被测页面是分支代码生成的页面时,从页面元素的路径信息中查询出各页面元素应用在分支代码时该页面元素的路径信息。
[0040]在本申请实施例中,根据被测页面的环境选择适配的页面元素的路径信息,使得生成的一套测试脚本可分别应用于主干环境和分支环境。
[0041]可选地,所述Π框架,具体用于将接收到的所述页面元素的标识与该页面元素的路径信息进行绑定,利用页面元素的路径信息获取绑定的页面元素标识所对应的页面元素的内容来生成所述测试脚本。
[0042]在本申请实施例中,在初始化时就将所有页面元素的标识与路径信息做绑定,使得最终生成的测试脚本可以对被测页面的所有功能做测试。
[0043]可选地,所述页面元素的信息中还包括:
[0044]所述页面元素的路径信息的定位方式以及该定位方式所适用的设备类型;
[0045]所述数据库,还用于根据所述Π框架的设备类型,确定该Π框架适用所述页面元素的路径信息的定位方式。
[0046]在本申请实施例中,确定发起信息调用请求的设备与所述页面元素的路径信息的定位方式适配时,可确保返回的页面元素的信息可被所述设备正确识别。

【专利附图】

【附图说明】
[0047]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0048]图1为本申请实施例一中的方法步骤示意图;
[0049]图2为本申请实施例二中的系统结构示意图。

【具体实施方式】
[0050]为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
[0051]本申请实施例提出一种新的生成测试脚本的方案,在生成测试脚本前,先将页面的页面信息存储在数据库中,每个页面信息中包含一个页面的地址信息和该页面中各页面元素的信息,所述页面元素的信息中又包含页面元素应用在主干代码和/或分支代码时的路径信息;之后,在为被测页面生成测试脚本时,可直接向数据库请求调用针对所述被测页面存储的页面元素的信息,然后数据库以被测页面是主干代码生成的页面还是分支代码生成的页面为依据,从所述页面元素的信息中查询出匹配的路径信息后,返回查询出的页面元素的路径信息,同时返回的还有页面元素的其他信息;根据数据库返回的页面元素的信息可直接生成对所述被测页面进行测试的测试脚本。
[0052]通过本申请实施例的方案,可以在数据库中对页面元素的信息进行统一管理,实际上也就是对元素对象(由页面元素的路径信息所指向的页面元素的具体内容)的统一管理,即使页面元素的路径信息发生变化,只需要更新数据库的内容即可,而无需对生成的测试脚本中的代码做修改;另外,数据库中存储的页面元素的路径信息分别指向了页面元素应用在主干代码和/或分支代码时的元素对象,因此,无论被测页面是主干代码生成的页面还是分支代码生成的页面,在生成测试脚本时,可根据实际的测试环境调用匹配的页面元素的路径信息,大大简化了测试脚本的生成与维护过程。
[0053]下面通过具体实施例对本申请方案进行详细说明,当然,本申请并不限于以下实施例。
[0054]实施例一:
[0055]如图1所示,为本申请实施例一中生成测试脚本的方法步骤示意图,所述方法包括以下内容:
[0056]步骤101:在数据库中存储页面的页面信息,所述页面信息中包含页面的地址信息和该页面中各页面元素的信息。
[0057]本步骤101并不是每次生成测试脚本时都要执行的步骤,即在数据库中存储页面信息的过程并不需要在每次生成测试脚本时执行,可以在生成测试脚本前预先在数据库中存储页面信息,后续可不断地为存储的页面信息进行管理、维护,如增加新的页面信息、删除已存储的页面信息或对已存储的页面信息中的内容进行更新。
[0058]在数据库中可分别针对每个页面分别存储相应的页面信息,为方便对数据库中存储的页面信息进行维护(如添加、删除、修改等)以及对页面信息中的内容查询和调用,可选地,可以以列表形式在数据库中存储页面信息。例如,页面的地址信息可以唯一标识一个页面,在为该页面生成列表形式的页面信息时,可以以页面的地址信息作为列表名称,使得在对数据库中的页面信息进行调用时,可以以页面地址为索引,快速查询出相应页面的页面信息。
[0059]需要说明的是,本实施例一也不限于其他针对数据库的存储方式,本实施例一并不对数据库的类型和数据库中页面信息的存储形式做限定。
[0060]所述页面的地址信息是能够唯一标识一个页面的信息,包括但不限于URL(Uniform Resource Locator,统一资源定位符)或是域名+相对路径信息。
[0061]可选地,所述页面信息中还可以包含针对页面的描述信息,所述描述信息并不用于后续的脚本生成过程,而是方便管理员对数据库中存储的页面信息进行直观的识别。例如,针对某一购物网站首页在数据库中存储相应的页面信息时,所述描述信息可以为“XX购物网站首页”;再例如,针对搜索网站首页在数据库中存储相应的页面信息时,所述描述信息可以为“YY搜索网站首页”。
[0062]针对页面中任一页面元素存储在页面信息中内容,包括但不限于:
[0063]1)、页面元素的标识(Key ),可唯一标识该页面元素。
[0064]2)、页面元素是应用在主干代码的信息和/或应用在分支代码的信息。
[0065]由于主干代码生成的页面和分支代码生成的页面具有相同的地址信息,因此,主干代码和分支代码分别生成的页面在数据库中是同一页面信息。实际上,如果分支代码中的内容没有更新,则主干代码和分支代码生成相同的页面。即使分支代码内容有更新,考虑到更新后的分支代码的性能与主干代码的性能不会差别太大,因此,更新后的分支代码生成的页面与主干代码生成的页面相比,大部分页面元素是相同,但还是会存在一些不同的页面元素,对于相同的页面元素,可以应用在主干代码也可以应用在分支代码,而不同的页面元素仍具有相同的Key,但其内容不同,需分别记录其应用在主干代码还是应用在分支代码的信息,以便于在后续生成测试脚本时,选择与被测页面处于相同环境的页面元素,例如,若被测页面是主干代码生成的页面,则选择应用在主干代码中的页面元素的信息,若被测页面是分支代码生成的页面,则选择应用在分支代码中的页面元素的信息。
[0066]3)、页面元素的路径信息,由于页面元素可能应用在主干代码,也可能应用在分支代码,因此,所述路径信息包括:当页面元素应用在主干代码时该页面元素的路径信息(用于指代页面元素应用在主干代码时页面元素的内容)、当页面元素应用在分支代码时该页面元素的路径信息(用于指代页面元素应用在主干代码时页面元素的内容)。
[0067]4)、页面元素的路径信息的定位方式,在本实施例一的方案中,可以以CSS(Cascading Style Sheet,级联样式表)来确定页面元素的路径信息,几乎所有类型的Π框架都支持CSS,因此,以CSS确定的路径信息也可被所有类型的UI框架所识别。当然,本申请实施例一也不限于其他的定位方式,如id定位方式或name定位方式。
[0068]本申请实施例所涉及的Π框架是指应用在系统开发过程中的人机交互界面,通过Π框架所提供的导航(portal页面、树结构导航、多级菜单导航等)来进行系统开发。
[0069]5 )、定位方式所适用的设备类型。根据页面元素的路径进行的定位方式,记录所适用的设备类型,这里的设备可以是指Π框架。
[0070] 6)、页面兀素是 web element (web 对象)类型还是 web element list (web 对象列表)类型。若页面元素是web element类型,则后续在生成测试脚本时可直接获取元素对象;若页面元素是web element list类型,表示该页面元素有与自身关联的其他页面元素,例如,一个web element list类型的页面元素是下拉表单,该页面元素有关联的表单中具体内容的其他页面元素。
[0071 ] 7 )、页面元素的其他描述信息。
[0072]在数据库中存储各页面的页面信息后,为了生成测试脚本,可以对数据库中存储的信息进行调用,因此,数据库对外提供调用接口,如Dubbo接口(可提供高性能和透明化的远程服务调用)、http接口等。
[0073]步骤102:向数据库发起信息调用请求,所述信息调用请求中携带被测页面的地址信息和测试环境信息,所述测试环境信息表示所述被测页面是主干代码生成的页面还是分支代码生成的页面。
[0074]在本步骤102中,在需要生成用于对被测页面进行测试的脚本时,可以通过Π框架调用数据库中的接口,向数据库发起所述信息调用请求,要求数据库返回所述被测页面中各页面元素的信息,用以生成测试脚本。
[0075]步骤103:接收所述数据库返回的所述被测页面中各页面元素的信息。
[0076]在本步骤103中,当数据库通过接收接收到所述信息调用请求时,将根据其中携带的被测页面的地址信息和测试环境信息,从本地存储的页面信息中选择合适的页面元素信息并返回,具体过程为:
[0077]第一步:数据库识别出信息调用请求中携带的被测页面的地址信息,并以此为索弓丨,从本地存储的页面信息中,确定出针对所述被测页面的页面信息,即所述被测页面的地址信息所在的页面信息为所述被测页面的页面信息。
[0078]第二步:数据库从确定出的所述被测页面的页面信息中获取被测页面中各页面元素的信息。
[0079]由于页面信息中包含了页面的地址信息和页面元素的信息(包括但不限于步骤101中所涉及的7类页面元素的信息),因此,数据库在确定出被测页面的页面信息中,可直接从中获取被测页面中各页面元素的信息。
[0080]第三步:数据库根据页面元素的路径信息定位方式和所适用的设备类型,判断发起所述信息调用请求的设备是否适用所述定位方式,若适用,则执行下一步;否则,直接返回拒绝响应消息,可以在该拒绝响应消息中携带拒绝理由是Π框架类型不适配。
[0081]这里的设备可以是指发起所述信息调用请求的UI框架。
[0082]第四步:数据库从获取的页面元素的信息中查询出与信息调用请求中携带的测试环境信息匹配的各页面元素的路径信息。
[0083]由于一个页面元素应用于主干代码的内容和应用在分支代码中的内容可能不同,因此,需要对同一页面元素应用在不同环境中的内容加以区分。
[0084]具体地,数据库确定出页面元素的路径信息,所述路径信息包括当页面元素应用在主干代码时该页面元素的路径信息、当页面元素应用在分支代码时该页面元素的路径信息。若数据库根据所述测试环境信息确定所述被测页面是主干代码生成的页面,则从页面元素的路径信息中查询出应用在主干代码时的路径信息;若数据库根据所述测试环境信息确定所述被测页面是分支代码生成的页面,则从页面元素的路径信息中查询出应用在分支代码时的路径信息。
[0085]第五步,数据库将查询出的各页面元素的路径信息和页面元素的其他信息一并返回给Π框架。
[0086]步骤104:根据接收到的所述被测页面中各页面元素的信息生成对所述被测页面进行测试的测试脚本。
[0087]本步骤104的具体实现方式为:
[0088]首先,可通过诸如JDK (Java Development Kit)的动态代理方式,将接收到的所述页面元素的标识与该页面元素的路径信息进行绑定。
[0089]由于在页面初始化时,某些动态生成的页面元素在页面上还不存在,例如,对于需要点击页面中的按键才在页面中出现的菜单这一页面元素而言,在初始时页面中是不存在的,但是数据库返回的页面元素的信息中包含了这一类页面元素的信息,因此,在初始化时就将所有页面元素的标识与路径信息做绑定,使得最终生成的测试脚本可以对被测页面的所有功能做测试。
[0090]然后,将具有绑定关系的页面元素的标识和路径信息存成Map对象形式,每一个Map对象中存有一个页面元素的标识和路径信息的绑定关系,其中:Map对象中的Key为页面元素的标识,Map对象中的Value为路径信息所指代的页面元素的内容,即元素对象。
[0091]最后,利用所述Map对象查找出生成测试脚本所需的元素对象,并生成测试脚本。
[0092]由于脚本的生成过程中需产生不少重复度较高的代码,通过本申请实施例一的方法获取了生成测试脚本所需的页面元素的信息后,可通过自动生成的方式直接生成测试脚本,在测试脚本生成后,用户在所述测试脚本中写入具体的测试参数即可,如每分钟运行次数等。
[0093]实施例二:
[0094]本申请实施例二描述了一种与实施例一属于统一发明构思下的生成测试脚本的系统,如图2所示,所述系统包括Π框架11和数据库12,其中:
[0095]所述Π框架11用于向数据库12发起信息调用请求,所述信息调用请求中携带被测页面的地址信息和测试环境信息,所述测试环境信息表示所述被测页面是主干代码生成的页面还是分支代码生成的页面,以及接收所述数据库12返回的所述被测页面中各页面元素的信息,并根据接收到的所述被测页面中各页面元素的信息生成对所述被测页面进行测试的测试脚本;
[0096]所述数据库12用于根据本地存储的页面信息,确定接收到的所述地址信息所在的页面信息,所述页面信息中包含页面的地址信息和该页面中各页面元素的信息,从确定的所述页面信息包含的页面元素的信息中查询出与接收到的所述测试环境信息匹配的各页面元素的路径信息后,将所述路径信息和确定的所述页面信息中各页面元素的其他信息返回给所述π框架11。
[0097]可选地,所述页面元素的信息中包括:
[0098]I)、页面元素的标识,可唯一标识该页面元素。
[0099]2)、页面元素是应用在主干代码的信息和/或应用在分支代码的信息。
[0100]3)、页面元素的路径信息,所述路径信息包括:当页面元素应用在主干代码时该页面元素的路径信息、当页面元素应用在分支代码时该页面元素的路径信息。
[0101]4)、页面元素的路径信息的定位方式。
[0102]5 )、定位方式所适用的设备类型。
[0103]6)、页面兀素是 web element 类型还是 web element list 类型。
[0104]7 )、页面元素的其他描述信息。
[0105]可选地,所述数据库12具体用于在确定接收到的所述测试环境信息表示所述被测页面是主干代码生成的页面时,从页面元素的路径信息中查询出各页面元素应用在主干代码时该页面元素的路径信息;在确定接收到的所述测试环境信息表示所述被测页面是分支代码生成的页面时,从页面元素的路径信息中查询出各页面元素应用在分支代码时该页面元素的路径信息。
[0106]可选地,所述Π框架11具体用于将接收到的所述页面元素的标识与该页面元素的路径信息进行绑定,利用页面元素的路径信息获取绑定的页面元素标识所对应的页面元素的内容来生成所述测试脚本。
[0107]可选地,所述数据库12还用于根据所述UI框架的设备类型,确定该UI框架适用所述页面元素的路径信息的定位方式。
[0108]通过本申请实施例的方案,在数据库中统一维护页面元素的路径信息,在每次生成测试脚本时,进而直接调用数据库中的信息,不论页面元素的路径信息如何变化,只要更新数据库中维护的路径信息即可,而无需修改测试脚本中的代码;同时,在数据库中维护的路径信息区分了页面元素应用在主干代码和分支代码中的内容,生成一套测试脚本,在测试脚本在对主干环境进行测试时使用页面元素在主干代码环境中的路径信息,在该测试脚本对分支环境进行测试时使用页面元素在分支代码环境中的路径信息,实现了一套脚本在主干和分支环境中的运行,简化了测试脚本的生成与维护过程;另外,对于重复度较高的脚本代码支持自动生成,提高了生成测试脚本的效率。
[0109]本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0110]本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0111]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0112]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0113]在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPR0M)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
[0114]尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
[0115]显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
【权利要求】
1.一种生成测试脚本的方法,其特征在于,所述方法包括: 向数据库发起信息调用请求,所述信息调用请求中携带被测页面的地址信息和测试环境信息,所述测试环境信息表示所述被测页面是主干代码生成的页面还是分支代码生成的页面; 接收所述数据库返回的所述被测页面中各页面元素的信息,其中,所述页面元素的信息是所述数据库根据本地存储的页面信息,确定接收到的所述地址信息所在的页面信息,所述页面信息中包含页面的地址信息和该页面中各页面元素的信息,从确定的所述页面信息包含的页面元素的信息中查询出与接收到的所述测试环境信息匹配的各页面元素的路径信息后,将所述路径信息和确定的所述页面信息中各页面元素的其他信息返回的; 根据接收到的所述被测页面中各页面元素的信息生成对所述被测页面进行测试的测试脚本。
2.如权利要求1所述的方法,其特征在于,所述页面元素的信息中包括: 各页面元素的标识; 各页面元素是应用在主干代码的信息和/或应用在分支代码的信息; 各页面元素的路径信息,所述路径信息包括:当页面元素应用在主干代码时该页面元素的路径信息、当页面元素应用在分支代码时该页面元素的路径信息。
3.如权利要求2所述的方法,其特征在于,所述数据库从确定的所述页面信息包含的页面元素的信息中查询出与接收到的所述测试环境信息匹配的各页面元素的路径信息,具体包括: 所述数据库在确定接收到的所述测试环境信息表示所述被测页面是主干代码生成的页面时,从页面元素的路径信息中查询出各页面元素应用在主干代码时该页面元素的路径信息; 所述数据库在确定接收到的所述测试环境信息表示所述被测页面是分支代码生成的页面时,从页面元素的路径信息中查询出各页面元素应用在分支代码时该页面元素的路径信息。
4.如权利要求2所述的方法,其特征在于,所述根据接收到的所述被测页面中各页面元素的信息生成测试脚本,具体包括: 将接收到的所述页面元素的标识与该页面元素的路径信息进行绑定; 利用页面元素的路径信息获取绑定的页面元素标识所对应的页面元素的内容来生成所述测试脚本。
5.如权利要求1?4任一所述的方法,其特征在于,所述页面元素的信息中还包括: 所述页面元素的路径信息的定位方式以及该定位方式所适用的设备类型; 所述数据库返回的所述被测页面中各页面元素的信息之前,所述方法还包括: 所述数据库根据发起所述信息调用请求的设备的设备类型,确定该设备适用所述页面元素的路径信息的定位方式。
6.一种生成测试脚本的系统,其特征在于,所述系统包括Π框架和数据库,其中: 所述Π框架,用于向数据库发起信息调用请求,所述信息调用请求中携带被测页面的地址信息和测试环境信息,所述测试环境信息表示所述被测页面是主干代码生成的页面还是分支代码生成的页面,以及接收所述数据库返回的所述被测页面中各页面元素的信息,并根据接收到的所述被测页面中各页面元素的信息生成对所述被测页面进行测试的测试脚本; 所述数据库,用于根据本地存储的页面信息,确定接收到的所述地址信息所在的页面信息,所述页面信息中包含页面的地址信息和该页面中各页面元素的信息,从确定的所述页面信息包含的页面元素的信息中查询出与接收到的所述测试环境信息匹配的各页面元素的路径信息后,将所述路径信息和确定的所述页面信息中各页面元素的其他信息返回给所述Π框架。
7.如权利要求6所述的系统,其特征在于,所述页面元素的信息中包括: 各页面元素的标识; 各页面元素是应用在主干代码的信息和/或应用在分支代码的信息; 各页面元素的路径信息,所述路径信息包括:当页面元素应用在主干代码时该页面元素的路径信息、当页面元素应用在分支代码时该页面元素的路径信息。
8.如权利要求7所述的系统,其特征在于, 所述数据库,具体用于在确定接收到的所述测试环境信息表示所述被测页面是主干代码生成的页面时,从页面元素的路径信息中查询出各页面元素应用在主干代码时该页面元素的路径信息;在确定接收到的所述测试环境信息表示所述被测页面是分支代码生成的页面时,从页面元素的路径信息中查询出各页面元素应用在分支代码时该页面元素的路径信肩、O
9.如权利要求7所述的系统,其特征在于, 所述Π框架,具体用于将接收到的所述页面元素的标识与该页面元素的路径信息进行绑定,利用页面元素的路径信息获取绑定的页面元素标识所对应的页面元素的内容来生成所述测试脚本。
10.如权利要求6?9任一所述的系统,其特征在于,所述页面元素的信息中还包括: 所述页面元素的路径信息的定位方式以及该定位方式所适用的设备类型; 所述数据库,还用于根据所述Π框架的设备类型,确定该Π框架适用所述页面元素的路径信息的定位方式。
【文档编号】G06F9/44GK104423961SQ201310412523
【公开日】2015年3月18日 申请日期:2013年9月11日 优先权日:2013年9月11日
【发明者】刘翔, 孙阳, 蔡长霞 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1