一种网站自动化测试方法和装置的制造方法

文档序号:10724804阅读:392来源:国知局
一种网站自动化测试方法和装置的制造方法
【专利摘要】本发明提供了一种网站自动化测试方法和装置,其中方法包括:利用待测试网站的站点地图(Sitemap),构建待测试网站的自动化测试实例(case)集;执行所述case集;判断执行结果是否符合预期。本发明利用待测试网站的Sitemap自动生成自动化测试case集,无需人工手动编辑case集,节省了人力成本;并且由于网站核心功能在不断更新时,Sitemap也会随之更新,因此生成的自动化测试case集也能够得到及时的更新,时效性得到提高。
【专利说明】一种网站自动化测试方法和装置 【技术领域】
[0001] 本发明涉及计算机应用技术领域,特别涉及一种网站自动化测试方法和装置。 【【背景技术】】
[0002] 随着互联网的不断发展,网站的质量保障和测试效率显得尤为重要。很多的产品 都搭建了相关自动化测试设施,目前业界基本上都需要依靠人工编写和维护对应的自动化 测试case(实例)集,基于此进行网站的自动化测试。然而,这种方式一方面耗费人力,维护 成本高;另一方面,人工维护的case往往无法得到及时的更新,时效性不高。 【
【发明内容】

[0003] 本发明提供了一种网站的自动化测试方法和装置,以便于降低人力成本,提高时 效性。
[0004] 具体技术方案如下:
[0005] 本发明提供了一种网站自动化测试方法,该方法包括:
[0006] 利用待测试网站的站点地图Sitemap,构建待测试网站的自动化测试case集;
[0007] 执行所述case集;
[0008] 判断执行结果是否符合预期。
[0009] 根据本发明一优选实施方式,所述利用待测试网站的站点地图Sitemap,构建待测 试网站的自动化测试case集包括:
[0010] 利用Sitemap生成器获取所述待测试站点的Sitemap;
[0011] 利用所述Sitemap包含的核心的url,构建待测试网站的自动化测试case集。
[0012 ]根据本发明一优选实施方式,执行所述case集包括:
[0013]依据所述case集所包含的url,获取并执行页面代码。
[0014]根据本发明一优选实施方式,所述判断执行结果是否符合预期包括:
[0015] 判断执行得到的页面与预期页面之间的相似度是否符合预设的相似度要求,如果 是,则确定所述执行结果符合预期;否则,确定所述执行结果不符合预期。
[0016] 根据本发明一优选实施方式,所述待测试网站为升级或修改后的网站;
[0017] 所述预期页面为所述网站升级或修改前所述case集中各url对应的页面。
[0018] 根据本发明一优选实施方式,所述执行得到的页面与预期页面之间相似度的确定 包括:
[0019] 计算执行得到的页面的D0M树中各路径与预期页面的D0M树中对应路径的相似度;
[0020] 将得到的各路径之间的相似度进行综合。
[0021] 根据本发明一优选实施方式,执行得到的页面的D0M树中路径?1与预期页面的D0M 树中对应路径p j之间的相似度s im (pi,pj)采用以下方式确定:
[0023]其中,(^1±^)为路径口1的长度,(^七11^)为路径口」的长度,(3〇111(^七11^,口」)为 路径Pi和路径Pj的最大公共部分的长度,max (depth (pi),depth (pj))为depth (pi)和depth (Pj)中的最大值。
[0024] 根据本发明一优选实施方式,所述将得到的各路径之间的相似度进行综合包括:
[0025] 将得到的各路径之间的相似度进行加权求和或者加权求平均。
[0026] 根据本发明一优选实施方式,该方法还包括:
[0027] 生成并输出自动化测试报告,所述自动化测试报告包括执行结果不符合预期的 case〇
[0028] 本发明还提供了一种网站自动化测试装置,该装置包括:
[0029] 实例构建模块,用于利用待测试网站的站点地图Sitemap,构建待测试网站的自动 化测试case集;
[0030] 实例执行模块,用于执行所述case集;
[0031]实例分析模块,用于判断所述实例执行模块的执行结果是否符合预期。
[0032]根据本发明一优选实施方式,所述实例构建模块,具体用于:
[0033] 利用Sitemap生成器获取所述待测试站点的Sitemap;
[0034]利用所述Sitemap包含的核心的url,构建待测试网站的自动化测试case集。
[0035] 根据本发明一优选实施方式,所述实例执行模块,具体用于依据所述case集所包 含的url,获取并执行页面代码。
[0036] 根据本发明一优选实施方式,所述实例分析模块,具体用于判断执行得到的页面 与预期页面之间的相似度是否符合预设的相似度要求,如果是,则确定所述执行结果符合 预期;否则,确定所述执行结果不符合预期。
[0037] 根据本发明一优选实施方式,所述待测试网站为升级或修改后的网站;
[0038] 所述预期页面为所述网站升级或修改前所述case集中各url对应的页面。
[0039] 根据本发明一优选实施方式,所述实例分析模块,还用于依据如下方式确定所述 执行得到的页面与预期页面之间相似度:
[0040] 计算执行得到的页面的D0M树中各路径与预期页面的D0M树中对应路径的相似度; [0041 ]将得到的各路径之间的相似度进行综合。
[0042]根据本发明一优选实施方式,所述实例分析模块,还用于依据如下方式确定执行 得到的页面的D0M树中路径pi与预期页面的D0M树中对应路径pj之间的相似度sim(pi,pj):
[0044]其中,(^1±^)为路径口1的长度,(^七11^)为路径口」的长度,(3〇111(^七11^,口」)为 路径Pi和路径Pj的最大公共部分的长度,max (depth (pi),depth (pj))为depth (pi)和depth (Pj)中的最大值。
[0045] 根据本发明一优选实施方式,所述实例分析模块在将得到的各路径之间的相似度 进行综合时,具体执行:
[0046] 将得到的各路径之间的相似度进行加权求和或者加权求平均。
[0047] 根据本发明一优选实施方式,该装置还包括:
[0048] 结果输出模块,用于生成并输出自动化测试报告,所述自动化测试报告包括执行 结果不符合预期的case。
[0049] 由以上技术方案可以看出,本发明利用待测试网站的Sitemap自动生成自动化测 试case集,无需人工手动编辑case集,节省了人力成本;并且由于网站核心功能在不断更新 时,Sitemap也会随之更新,因此生成的自动化测试case集也能够得到及时的更新,时效性 得到提高。 【【附图说明】】
[0050] 图1为本发明实施例提供的主要方法流程图;
[0051] 图2为本发明实施例提供的装置结构图。 【【具体实施方式】】
[0052]为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对 本发明进行详细描述。
[0053]在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制 本发明。在本发明实施例和所附权利要求书中所使用的单数形式的"一种"、"所述"和"该" 也旨在包括多数形式,除非上下文清楚地表示其他含义。
[0054]应当理解,本文中使用的术语"和/或"仅仅是一种描述关联对象的关联关系,表示 可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种 情况。另外,本文中字符7",一般表示前后关联对象是一种"或"的关系。
[0055]取决于语境,如在此所使用的词语"如果"可以被解释成为"在……时"或"当…… 时"或"响应于确定"或"响应于检测"。类似地,取决于语境,短语"如果确定"或"如果检测 (陈述的条件或事件)"可以被解释成为"当确定时"或"响应于确定"或"当检测(陈述的条件 或事件)时"或"响应于检测(陈述的条件或事件)"。
[0056] Sitemap(网站地图),又称站点地图,其主要是提供给网络爬虫抓取网页使用的, Sitemap是网站和搜索引擎对话的好方式。网站地图表明了网站的网页结构,包含了网站页 面之间的逻辑关系。一般地,网站地图中包含的页面有:产品分类页面、主要产品页面、FAQ 页面、帮助页面、访问量靠前的页面等。可以说,网站地图上放置的链接是该网站非常的核 心链接,这些链接构成了网站的核心功能。并且往往随着网站的不断发展,网站核心功能也 需要不断更新。
[0057 ] 基于S i t emap的以上特点,本发明的核心思想在于,将S i t emap应用于自动化测试 中,利用待测试网站的Sitemap来构建待测试网站的自动化测试case集,然后执行case集, 并进一步判断执行结果是否符合预期。下面结合实施例对本发明提供的方法进行详细描 述。
[0058]图1为本发明实施例提供的主要方法流程图,本实施例的前提在于,对某站点进行 自动化测试,对于该站点称为待测试站点。另外,对于测试环境的构建等测试基础处理本发 明并不加以限制。本实施例可以包括三个阶段:步骤101~102属于case构建阶段,步骤103 属于case执行阶段,步骤104属于case分析阶段,步骤105属于结果输出阶段。具体如图1中 所示,可以包括以下步骤:
[0059] 在101中,利用Sitemap生成器获取待测试站点的Sitemap。
[0060] 由于Sitemap的生成已经是目前比较成熟的技术,因此在本发明中可以直接利用 Sitemap生成器对待测试站点进行处理,生成该待测试站点的Sitemap。对于Sitemap的生成 方式本发明并不加以限制。
[0061] Sitemap主要包括待测试网站中的url (网址)以及每个url的其他元数据。但通常 Sitemap采用html、xml等文件格式,因此在生成待测试站点的Sitemap后,可以利用对应文 件格式的解析器解析出待测试网站的核心url。其中html格式可以利用类似HtmlParser来 进行解析,xml格式可以利用SAX、JD0M等解析。
[0062]在102中,利用Sitemap包含的核心url,构建待测试网站的自动化测试case集。 [0063] 在获取到Sitemap包含的核心url后,由于该核心url对应的网页代码是前后端自 动化的结合,其包含页面内容数据、样式等信息,是很好的case素材。因此,可以利用各核心 url分别构建待测试网站的自动化测试case集。
[0064] 在103中,依据case集所包含的url,获取并执行页面代码。
[0065] 本步骤中,依据case中包含的url,获取页面代码并解析执行后,得到该url对应的 页面。
[0066] 在104中,分别针对各case判断执行得到的页面与预期页面之间的相似度是否符 合预设的相似度要求,如果是,则确定对应case的执行结果符合预期;否则确定对应case的 执行结果不符合预期。
[0067] 本发明实施例针对的是网站的自动化测试,可以适用于但不限于如下场景:当网 站调用的公共函数、数据库、数据接口等发生了升级或修改,那么就需要对该网站进行自动 化测试,测试这些升级或修改是否对网站的页面展现产生影响。在这种场景下,待测试网站 就是升级或修改后的网站,预期页面就可以是该网站升级或者修改前case集中各url对应 的页面,也就是原来的页面。往往自动化测试是线下进行的,即在上线之前需要先进行测 试,而线上的页面是升级或修改前的网站,因此预期页面也可以是各url对应的线上页面。
[0068] 因此,本步骤中一方面可以在测试环境中依据url对待测试网站的网页代码进行 解析执行,另一方面依据url对线上的网页代码进行解析执行,得到对应的预期网页。
[0069]假设测试环境中某url得到的页面为cU,对应的预期网页为山,由于网页由D0M元素 构成,因此一个网页可以看做一个D0M树,网页之间的相似度就体现为D0M树之间的相似度。 另外,在D0M树中一条路径包含根节点到叶子节点的元素,cU由一系列的路径构成的集合体 现,同样山也由一系列的路径构成的集合体现,两者中的路径一一对应。因此,在确定cU和山 之间的相似度时,可以将对应路径分别计算相似度,由路径相似度体现页面相似度。
[0070] 具体地,可以计算di的D0M树中各路径和dj的D0M树中对应路径的相似度,将得到的 各路径之间的相似度进行综合,就得到cU和山之间的相似度。
[0071] 其中在计算路径之间的相似度时,若cU的某路径为Pl,其在山中对应的路径为Pj, 那么Pi和Pj之间的相似度sim(pi,pj)可以采用如下方式确定:
[0073]其中,(^1±^)为路径口1的长度,(^七11^)为路径口」的长度,(3〇111(^七11^,口」)为 路径Pi和路径Pj的最大公共部分的长度,max (depth (pi),depth (pj))为depth (pi)和depth (Pj)中的最大值。
[0074] 分别计算出各路径之间的相似度后,进行的综合可以是将各路径之间的相似度进 行加权求和或者加权求平均。各路径的权值可以依据对应的D0M元素的类型来确定,若某路 径对应的D0M元素为文章内容或者图片等可变内容,例如D0M元素为image的,则可以设置其 权值较低,例如设置为〇,因为其变化对测试结果产生的影响很小。若某路径对应的D0M元素 为跳转页或框架,例如D0M元素为link或Frame的,可以设置其权值较高,因为其变化会对测 试结果产生较大影响。
[0075] 本步骤中预设的相似度要求可以是一个相似度阈值,若两个页面之间的相似度低 于预设相似度阈值,则说明该case的执行结果不符合预期。相似度阈值可以根据实际状况 灵活设置,例如设置为经验值。
[0076]在105中,生成并输出自动化测试报告。
[0077] 生成的自动化测试报告可以包括执行结果不符合预期的case。另外,还可以进一 步对不符合预期的case进行分类展现,在进行分类展现时,可以按照包含不符合预期的 case数量从大到小的顺序进行排列。
[0078] 另外,为了方便网站开发人员快速定位问题,可以将不符合预期的case中,与预期 网页中对应路径的相似度低于预设阈值的路径进行标注。例如,若某个case不符合预期,其 中存在若干条路径与预期网页中对应路径的相似度很低,则可以将该路径标注出来,以方 便开发人员快速定位问题、解决问题,从而提高项目效率和质量。
[0079]以上是对本发明所提供方法进行的详细描述,下面结合实施例对本发明所提供的 装置进行详细描述。图2为本发明实施例提供的装置结构图,如图2所示,该装置可以包括: 实例构建模块〇 1、实例执行模块02和实例分析模块03,还可以包括结果输出模块04。其中各 组成模块的主要功能如下:
[0080] 实例构建模块01负责利用待测试网站的站点地图Sitemap,构建待测试网站的自 动化测试case集。具体地,实例构建模块01可以首先利用Sitemap生成器获取待测试站点的 Sitemap,然后利用Sitemap包含的核心的url,构建待测试网站的自动化测试case集。
[0081] 实例执行模块02负责执行case集,具体可以依据case集所包含的url,获取并执行 页面代码,得到url对应的页面。
[0082] 实例分析模块03负责判断实例执行模块的执行结果是否符合预期。具体地,实例 分析模块03可以判断执行得到的页面与预期页面之间的相似度是否符合预设的相似度要 求,如果是,则确定执行结果符合预期;否则,确定执行结果不符合预期。
[0083] 本发明实施例针对的是网站的自动化测试,可以适用于但不限于如下场景:当网 站调用的公共函数、数据库、数据接口等发生了升级或修改,那么就需要对该网站进行自动 化测试,测试这些升级或修改是否对网站的页面展现产生影响。在这种场景下,待测试网站 就是升级或修改后的网站,预期页面就可以是该网站升级或者修改前case集中各url对应 的页面,也就是原来的页面。往往自动化测试是线下进行的,即在上线之前需要先进行测 试,而线上的页面是升级或修改前的网站,因此预期页面也可以是各url对应的线上页面。
[0084] 具体地,实例分析模块03在确定执行得到的页面与预期页面之间相似度时,可以 首先计算执行得到的页面的D0M树中各路径与预期页面的D0M树中对应路径的相似度,然后 将得到的各路径之间的相似度进行综合。
[0085]其中,在确定执行得到的页面的D0M树中路径pi与预期页面的D0M树中对应路径pj 之间的相似度sim(Pl,Pj)时,可以采用如下公式:
[0087]其中,(^1±^)为路径口1的长度,(^七11^)为路径口」的长度,(3〇111(^七11^,口」)为 路径Pi和路径Pj的最大公共部分的长度,max (depth (pi),depth (pj))为depth (pi)和depth (Pj)中的最大值。
[0088] 实例分析模块03在将得到的各路径之间的相似度进行综合时,可以采用将得到的 各路径之间的相似度进行加权求和或者加权求平均等方式。各路径的权值可以依据对应的 D0M元素的类型来确定,若某路径对应的D0M元素为文章内容或者图片等可变内容,例如D0M 元素为image的,则可以设置其权值较低,例如设置为0,因为其变化对测试结果产生的影响 很小。若某路径对应的D0M元素为跳转页或框架,例如D0M元素为link或Frame的,可以设置 其权值较高,因为其变化会对测试结果产生较大影响。
[0089] 结果输出模块04负责生成并输出自动化测试报告,自动化测试报告包括执行结果 不符合预期的case。另外,还可以进一步对不符合预期的case进行分类展现,在进行分类展 现时,可以按照包含不符合预期的case数量从大到小的顺序进行排列。
[0090] 另外,为了方便网站开发人员快速定位问题,可以将不符合预期的case中,与预期 网页中对应路径的相似度低于预设阈值的路径进行标注。例如,若某个case不符合预期,其 中存在若干条路径与预期网页中对应路径的相似度很低,则可以将该路径标注出来,以方 便开发人员快速定位问题、解决问题,从而提高项目效率和质量。
[0091] 为了方便理解,针对本发明举一个实例,假设某购物类网站的开发人员对该网站 所依赖的一个前端js的common代码进行了修改,需要测试该common代码的修改是否会对网 站的网页展现产生影响。在进行自动化测试时,可以采用Sitemap生成器获取该待测试的购 物类网站的Sitemap,得到的Sitemap包含该购物类网站的核心url,比如首页、商品分类页、 购物主题页、教程页等页面的url。利用这些url分别构建自动化测试case,得到自动化测试 case^o
[0092] 分别对各case进行执行和分析,在对其中一个case进行执行和分析时,执行以下 处理:
[0093] 在测试环境中获取并执行该url对应的页面代码,即修改common代码后url对应的 网页。
[0094] 在线上环境中获取并执行该url对应的页面代码,即修改common代码前url对应的 网页。
[0095] 分别计算同一 url对应的在测试环境中得到的网页以及在线上环境中得到的网 页,计算两个网页的D0M树中各路径的相似度的加权求和,若得到的值小于预设的相似度阈 值,则确定该case的测试结果不符合预期,并对其中相似度小于预设阈值的路径进行标注。
[0096] 在对case集都进行执行和分析完毕后,生成并输出自动化测试报告,其中包含测 试结果不符合预期的case,即url,以及标注出其中相似度小于预设阈值的路径(即对应的 D0M元素),说明该D0M元素展现异常。
[0097] 可以看出,采用上述自动化测试方式,可以利用待测试网站的Sitemap自动生成自 动化测试case集,无需人工手动编辑case集,节省了人力成本,并且由于网站核心功能在不 断更新时,Sitemap也会随之更新,因此生成的自动化测试case集也能够得到及时的更新, 时效性得到提尚。
[0098]在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其 它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅 仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0099]所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显 示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个 网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目 的。
[0100] 另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以 是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单 元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0101] 上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存 储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机 设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个 实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory ,R0M)、随机存取存储器 (Random Access Memory ,RAM)、磁碟或者光盘等各种 可以存储程序代码的介质。
[0102] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【主权项】
1. 一种网站自动化测试方法,其特征在于,该方法包括: 利用待测试网站的站点地图,构建待测试网站的自动化测试实例集; 执行所述实例集; 判断执行结果是否符合预期。2. 根据权利要求1所述的方法,其特征在于,所述利用待测试网站的站点地图,构建待 测试网站的自动化测试实例集包括: 利用站点地图生成器获取所述待测试站点的站点地图; 利用所述站点地图包含的核心的url,构建待测试网站的自动化测试实例集。3. 根据权利要求1所述的方法,其特征在于,执行所述实例集包括: 依据所述实例集所包含的url,获取并执行页面代码。4. 根据权利要求3所述的方法,其特征在于,所述判断执行结果是否符合预期包括: 判断执行得到的页面与预期页面之间的相似度是否符合预设的相似度要求,如果是, 则确定所述执行结果符合预期;否则,确定所述执行结果不符合预期。5. 根据权利要求4所述的方法,其特征在于,所述待测试网站为升级或修改后的网站; 所述预期页面为所述网站升级或修改前所述实例集中各url对应的页面。6. 根据权利要求4所述的方法,其特征在于,所述执行得到的页面与预期页面之间相似 度的确定包括: 计算执行得到的页面的DOM树中各路径与预期页面的DOM树中对应路径的相似度; 将得到的各路径之间的相似度进行综合。7. 根据权利要求6所述的方法,其特征在于,所述将得到的各路径之间的相似度进行综 合包括: 将得到的各路径之间的相似度进行加权求和或者加权求平均。8. 根据权利要求1至7任一权项所述的方法,其特征在于,该方法还包括: 生成并输出自动化测试报告,所述自动化测试报告包括执行结果不符合预期的实例。9. 一种网站自动化测试装置,其特征在于,该装置包括: 实例构建模块,用于利用待测试网站的站点地图站点地图,构建待测试网站的自动化 测试实例集; 实例执行模块,用于执行所述实例集; 实例分析模块,用于判断所述实例执行模块的执行结果是否符合预期。10. 根据权利要求9所述的装置,其特征在于,所述实例构建模块,具体用于: 利用站点地图生成器获取所述待测试站点的站点地图; 利用所述站点地图包含的核心的url,构建待测试网站的自动化测试实例集。11. 根据权利要求9所述的装置,其特征在于,所述实例执行模块,具体用于依据所述实 例集所包含的url,获取并执行页面代码。12. 根据权利要求11所述的装置,其特征在于,所述实例分析模块,具体用于判断执行 得到的页面与预期页面之间的相似度是否符合预设的相似度要求,如果是,则确定所述执 行结果符合预期;否则,确定所述执行结果不符合预期。13. 根据权利要求12所述的装置,其特征在于,所述待测试网站为升级或修改后的网 站; 所述预期页面为所述网站升级或修改前所述实例集中各url对应的页面。14. 根据权利要求12所述的装置,其特征在于,所述实例分析模块,还用于依据如下方 式确定所述执行得到的页面与预期页面之间相似度: 计算执行得到的页面的DOM树中各路径与预期页面的DOM树中对应路径的相似度; 将得到的各路径之间的相似度进行综合。15. 根据权利要求14所述的装置,其特征在于,所述实例分析模块在将得到的各路径之 间的相似度进行综合时,具体执行: 将得到的各路径之间的相似度进行加权求和或者加权求平均。16. 根据权利要求9至15任一权项所述的装置,其特征在于,该装置还包括: 结果输出模块,用于生成并输出自动化测试报告,所述自动化测试报告包括执行结果 不符合预期的实例。
【文档编号】G06F11/36GK106095674SQ201610398793
【公开日】2016年11月9日
【申请日】2016年6月7日
【发明人】陈祖德
【申请人】百度在线网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1