一种页面代码的测试方法和装置制造方法

文档序号:6488880阅读:98来源:国知局
一种页面代码的测试方法和装置制造方法
【专利摘要】本发明提供了一种页面代码的测试方法和装置,其中,方法包括:S1、构造测试用例,其中,所述测试用例包括:构造或录制的后台模块响应数据、录制的页面测试操作和页面区域基准图像;S2、回放所述录制的页面测试操作,拦截被测页面向后台模块发送的请求并根据该请求向被测页面返回所述构造或录制的后台模块响应数据;S3、截取页面区域测试图像,并将所述页面区域测试图像与所述页面区域基准图像对比检验测试结果。本发明实现了对web页面代码的自动化测试,同时能自动化检验测试结果,与现有技术相比,节省了硬件资源和人工成本,同时提升了测试效率。
【专利说明】一种页面代码的测试方法和装置
【【技术领域】】
[0001]本发明涉及系统测试技术,特别涉及一种页面代码的测试方法和装置。
【【背景技术】】
[0002]对正在开发的web页面代码进行测试是保障web页面代码发布质量的必要手段。现有的测试方法通常都要求搭建被测web页面对应的后台模块,然后在浏览器上人工进行测试操作,并通过人眼直接观察web页面的展示效果来检验测试结果。这样的测试方法存在多个不足:搭建后台模块需要单独占用服务器,耗费了硬件资源,而且在开发中,web页面代码就绪时,后台模块往往尚未就绪,而web页面代码的测试工作只能等待后台模块就绪后再开展,延缓了 web页面代码测试的工作进度;测试操作的执行和页面展现效果的检查都需要人工完成,增加了人工成本,同时,人工检验页面的展现效果时容易将存在的问题遗漏。

【发明内容】

[0003]本发明提供了一种页面代码的测试的方法和装置,能够自动化对web页面代码进行测试并验证测试结果。
[0004]具体技术方案如下:[0005]一种页面代码的测试方法,该方法包括:
[0006]S1、构造测试用例,其中,所述测试用例包括:构造或录制的后台模块响应数据、录制的页面测试操作和页面区域基准图像;
[0007]S2、回放所述录制的页面测试操作,拦截被测页面向后台模块发送的请求并根据该请求向被测页面返回所述构造或录制的后台模块响应数据;
[0008]S3、截取页面区域测试图像,并将所述页面区域测试图像与所述页面区域基准图像对比检验测试结果。
[0009]根据本发明一优选实施例,所述后台模块响应数据采用如下方式构造:
[0010]确定与所述被测页面向后台模块发送的请求对应的后台模块响应数据的格式,根据所述格式生成响应数据中各参数的值。
[0011]根据本发明一优选实施例,所述后台模块响应数据采用如下方式录制:
[0012]拦截被测页面发送给后台模块的请求,记录该请求后,将该请求发送至后台模块;
[0013]拦截后台模块返回的响应数据,保存该响应数据与所述请求形成对应关系,并将所述响应数据返回给被测页面。
[0014]根据本发明一优选实施例,所述页面测试操作的录制,具体为:
[0015]录制在受控浏览器上执行的页面测试操作;
[0016]所述步骤S2中回放所述录制的页面测试操作,具体为:在所述受控浏览器上回放所述录制的页面测试操作。[0017]根据本发明一优选实施例,所述页面区域基准图像采用如下方式获得:
[0018]在所述受控浏览器上执行完页面测试操作后,截取指定的页面区域的图像,其中,所述指定的页面区域为:根据选取的页面元素定位的区域;或者,直接由鼠标拖动选取的区域;
[0019]所述步骤S3中截取页面区域测试图像,具体包括:在向被测页面返回所述构造或录制的后台模块响应数据后,在被测页面上截取所述指定的页面区域图像作为页面区域测试图像。
[0020]根据本发明一优选实施例,所述步骤S3中将页面区域测试图像与页面区域基准图像对比检验测试结果,具体包括:计算所述页面区域测试图像与所述页面基准图像的相似度,若相似度超过预先设定的阈值,则认为测试通过;否则,认为测试未通过。
[0021]一种页面代码的测试装置,该装置包括:
[0022]构造单元,用于构造测试用例,其中,所述测试用例包括:构造或录制的后台模块响应数据、录制的页面测试操作和页面区域基准图像;
[0023]包括测试操作回放子单元和第二截图子单元的测试单元;
[0024]所述测试操作回放子单元,用于回放所述录制的页面测试操作,拦截被测页面向后台模块发送的请求并根据该请求向被测页面返回所述构造或录制的后台模块响应数据;
[0025]所述第二截图子单元,用于截取页面区域测试图像,并将所述页面区域测试图像与所述页面区域基准图像对比检验测试结果。
[0026]根据本发明一优选实施例,所述构造单元包括响应数据子单元,所述响应数据子单元用于采用如下方式构造所述后台模块响应数据:
[0027]确定与所述被测页面向后台模块发送的请求对应的后台模块响应数据的格式,根据所述格式生成响应数据中各参数的值。
[0028]根据本发明一优选实施例,所述构造单元包括响应数据子单元,所述响应数据子单元用于采用如下方式录制所述后台模块响应数据:
[0029]拦截被测页面发送给后台模块的请求,记录该请求后,将该请求发送至后台模块;
[0030]拦截后台模块返回的响应数据,保存该响应数据与所述请求形成对应关系,并将所述响应数据返回给被测页面。
[0031]根据本发明一优选实施例,所述构造单元包括测试操作录制子单元,所述测试操作录制子单元用于采用如下方式录制所述页面测试操作:
[0032]录制在受控浏览器上执行的页面测试操作;
[0033]所述测试操作回放子单元采用如下方式回放所述录制的页面测试操作:
[0034]在所述受控浏览器上回放所述录制的页面测试操作。
[0035]根据本发明一优选实施例,所述构造单元包括第一截图子单元,所述第一截图子单元用于采用如下方式截取页面区域基准图像:
[0036]在所述受控浏览器上执行完页面测试操作后,截取指定的页面区域的图像,其中,所述指定的页面区域为:根据选取的页面元素定位的区域;或者,直接由鼠标拖动选取的区域;[0037]所述第二截图子单元采用如下方式截取页面区域测试图像:
[0038]在所述测试操作回放子单元向被测页面返回所述构造或录制的后台模块响应数据后,在被测页面上截取所述指定的页面区域图像作为页面区域测试图像。
[0039]根据本发明一优选实施例,所述第二截图子单元采用如下方式将页面区域测试图像与页面区域基准图像对比检验测试结果:
[0040]计算所述页面区域测试图像与所述页面基准图像的相似度,若相似度超过预先设定的阈值,则认为测试通过;否则,认为测试未通过。
[0041]由以上技术方案可以看出,本发明通过构造一个包括后台模块响应数据、录制的页面测试操作和页面区域基准图像的测试用例,在测试时,回放测试操作,向web页面返回响应数据,并截图对比验证测试结果,以此实现了对web页面代码的自动化测试。本发明提供的测试方法和装置,使得在测试时节省了硬件资源和人工成本,同时显著提升了测试效率。
【【专利附图】

【附图说明】】
[0042]图1为本发明实施例一提供的页面代码的测试方法流程图;
[0043]图2为本发明实施例一提供的响应数据构造方法流程图;
[0044]图3为本发明实施例一提供的录制的页面测试操作和页面区域基准图像获得方法流程图;
[0045]图4为本发明实施例一提供`的测试用例获得方法流程图;
[0046]图5为本发明实施例一提供的利用测试用例对页面代码测试的方法流程图;
[0047]图6为本发明实施例二提供的页面代码的测试装置示意图。
【【具体实施方式】】
[0048]为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
[0049]实施例一
[0050]图1为本发明实施例一提供的页面代码的测试方法流程图,如图1所示,该方法可以包括:
[0051]S101、构造测试用例,其中,所述测试用例包括:构造或录制的后台模块响应数据、录制的页面测试操作和页面区域基准图像。
[0052]为了实现web页面代码的测试自动化,需要能够自动化反复执行的测试用例。本发明正是利用通过构造或录制后台模块的响应数据、录制页面测试操作、截取页面区域基准图像来形成一个可自动化执行的测试用例,并以此实现web页面代码的测试自动化。
[0053]下面对构造或录制的后台模块响应数据的获得方式进行描述。
[0054]若后台模块尚未就绪,则需要构造后台模块的响应数据,如图2所示,该过程可以通过下述步骤SI I 1-Sl 12来实现:
[0055]S111、确定与页面请求对应的后台模块响应数据的格式。
[0056]可以通过一个管理平台来统一管理与请求对应的响应数据的格式,在该平台上,对于每一个类型的web页面可能发送至后台模块的请求,记录下该请求的类型以及对应的响应数据的格式,该格式包括:响应数据的结构和响应数据中的参数的数量、类型、名称以及每个参数的取值范围等。之后,便能从该管理平台上确定与每一个web页面发送给后台模块的请求对应的响应数据的格式。
[0057]S112、根据所述与页面请求对应的后台模块响应数据的格式生成后台模块响应数据。
[0058]在确定了与页面请求对应的后台模块响应数据的格式后,可以依据这个格式生成与web页面发送至后台模块的请求对应的响应数据。首先生成响应数据中每个参数的值,本发明提供下述两种优选方式生成参数值:在每一个参数的取值范围内随机生成每一个参数的值;或者,根据测试需要来设定每个参数的值。之后,根据响应数据的结构,将所生成的参数组成一个完整的响应数据。
[0059]在步骤S 111中采用管理平台来管理与请求对应的响应数据的格式后,可以由该平台依据响应数据的结构,随机生成响应数据内每个参数的值,以此完成响应数据的自动化构造。如果在后续测试时,需要模拟一些极端异常情况,则可以根据需要,由测试人员设定响应数据内每个参数的值。
[0060]上述为后台模块尚未就绪的情况下,构造响应数据的方式。若后台模块已经就绪,则可以直接录制后台模块的响应数据,这一过程可以但不限于采用下述方法实现:
[0061]拦截web页面发送至后台模块的请求,记录该请求,然后将该请求发送至后台模块,之后,将后台模块的返回的响应数据与之前记录的请求形成对应关系后保存,再将该响应数据返回至web页面。为了便于保存响应数据与请求间的对应关系,在拦截web页面发送至后台模块的请求并进行记录时,可以执行下述操作:记录该请求的url,将该请求发送至后台模块,之后将后台模块返回的响应数据与所记录的url形成对应关系后保存;提取标识该请求的字段,根据该字段生成唯一的字符串,将该请求发送至后台模块,之后将后台模块返回的响应数据与所生成的字符串形成对应关系后保存。
[0062]通过上述过程,能够录制得到后台模块根据web页面发送的请求所返回对应的响应数据。
[0063]上述为测试用例中构造或录制的后台模块响应数据的获得方式,下面对测试用例中录制的页面测试操作和页面区域基准图像的获得方式进行描述。
[0064]为后续能够自动化测试,需要对在页面上的测试操作进行录制,以在测试时进行回放,同时需要截取页面区域基准图像以验证后续测试的结果,如图3所示,这一过程可以通过下述步骤S121-S123来实现:
[0065]S121、配置一个受控浏览器,使得该受控浏览器具有录制、回放、定位和截图的功倉泛。
[0066]本发明通过设置一个具有录制功能的受控浏览器来实现对页面测试操作的录制,该受控浏览器可以通过在浏览器中载入具有相应功能的插件来实现。例如,可以通过Firefox的Extension机制来加载一个具有录制功能的插件,在该录制插件内定义一系列操作,这些操作需覆盖用户可能在web页面上执行的全部操作,在启用该插件后,在受控浏览器上对web页面执行的任何操作都会触发该录制插件,录制插件获取所执行的操作,记录下该操作对应的操作类型、被操作的元素定位符和操作参数等,并保存在指定文件中。
[0067]为了完成后续的截图以及测试操作,受控浏览器还需载入回放插件、定位插件和截图插件来实现相应的回放、定位和截图的功能。
[0068]回放插件可以从保存测试操作的文件中读取操作类型、被操作的元素定位符和操作参数,之后对需被操作的元素执行对应操作。
[0069]定位插件和截图插件共同完成对页面区域定位截图的功能。本发明提供下述两种优选方式对页面区域进行定位截图:
[0070]1、根据元素定位符进行定位截图,在测试操作结束后,指定需要截图的元素,定位插件可以获取被选取元素的Xpath (元素的路径表达式),通过元素的Xpath可定位该些元素在页面中的位置,截图插件对该些被选取的元素进行截图,并将所截取的图像作为页面区域基准图像保存到指定文件中。
[0071]2、根据坐标进行定位截图,在测试操作结束后,鼠标拖动选取需要截图的区域,定位插件可以获取该区域相对于页面左上角的横坐标X与纵坐标y,以及该区域的高度h和宽度W,之后截图插件以横坐标X和纵坐标y为起始点,以h为高度、w为宽度对这一区域进行截图,并将所截取的图像作为页面区域基准图像保存到指定文件中。
[0072]S122、录制在所述受控浏览器上进行的页面测试操作。
[0073]启用录制插件,在受控浏览器上对web页面进行测试操作,如步骤S121中所述,录制插件会记录并保存所执行的页面测试操作。
[0074]S123、截取指定的页面区域的图像作为页面区域基准图像。
[0075]在对web页面执行完测试操作后,测试人员指定需要进行截图的区域,如步骤S121中所述,可以指定需要截图的元素或者直接选取需要截图的区域,由定位插件定位后,截图插件进行截图,将截取的图像保存并作为页面区域基准图像。
[0076]通过上述步骤SlOl中描述方法,能够形成包括后台模块响应数据、录制的页面操作和页面区域基准截图的测试用例,该测试用例可以实现后续的对web页面代码的自动化测试工作。
[0077]需要说明的是,在实际应用中,会出现一部分后台模块已经就绪,而另一部分后台模块尚未就绪的情况,此外,后台模块已经就绪时,录制响应数据的过程可以和步骤121至步骤S123描述的录制页面测试操作并截取页面区域基准图像的过程同时进行。所以,如图4所示,上述步骤SlOl中描述的方法,还可以按下述步骤S131-S134来实现:
[0078]S131、构造尚未就绪的后台模块的响应数据。
[0079]对于尚未就绪的后台模块,需构造该些后台模块的响应数据,这一过程可以采用与步骤Slll至步骤S112中所述的相同的方法来完成。
[0080]S132、录制在所述受控浏览器上进行的页面测试操作。
[0081]受控浏览器可以采用步骤S121中所述方法来配置。启用载入到受控浏览器中的录制插件,对web页面进行测试所需的操作,录制插件会记录并保存所执行的页面测试操作。
[0082]S133、拦截页面发送至后台模块的请求,若与已构造的数据中存在与该请求对应的响应数据,那么向页面返回该响应数据;否则,将该请求发送至对应的后台模块,将后台模块返回的响应数据与该请求形成对应关系保存后,向页面返回该响应数据。
[0083]对web页面进行操作时,web页面会发送请求至后台模块,拦截该请求,在步骤S131构造的响应数据中查找是否存在与该请求对应的响应数据,若存在,则直接将查找到的响应数据返回至web页面;若不存在,则说明该请求需调用的后台模块已经就绪,因此在步骤S131中并未构造该后台模块的响应数据,此时需将该请求发送至后台模块,将后台模块返回的响应数据与该请求形成对应关系后保存,之后将响应数据返回至web页面,这一过程与之前所述录制后台模块的响应数据相同,在此不再赘述。
[0084]S134、截取指定的页面区域的图像作为页面区域基准图像。
[0085]在完成对web页面的测试操作后,指定需要进行截图的区域,由定位插件定位后,截图插件对这一区域进行截图,将截取的图像保存并作为页面区域基准图像。本步骤的实施方法可以与步骤S123中所述方法相同。
[0086]继续参见回图1,接续步骤SlOl之后存在步骤S102。
[0087]S102、利用所述测试用例对被测页面代码进行测试并检验测试结果。
[0088]本步骤为测试过程,在构造完包括后台模块响应数据、录制的页面测试操作和页面区域基准图像这三者的测试用例后,可以利用该测试用例完成对被测页面代码的自动化测试并检验测试结果。如图5所示,这一过程可通过下述步骤S141-S143来实现:
[0089]S141、在受控浏览器中回放所录制的页面测试操作。
[0090]受控浏览器可以采用步骤S121中所述方法来配置。启用回放插件,向web页面回放步骤S122中录制插件所录制的页面测试操作,回放插件从保存测试操作的文件中读取操作类型、被操作的元素定位符和操作参数等,并将这些信息转换为相应的操作在web页面上执行。
[0091]在对web页面回放测试操作时,web页面会向后台模块发送请求,拦截该请求,从测试用例的响应数据中查找与该请求对应的响应数据并返回给web页面。若测试用例的响应数据包括构造的响应数据和录制的响应数据,则可以先查找所构造的响应数据中是否存在与该请求的对应的响应数据,若存在,则向web页面返回该响应数据;否则,在录制后台模块响应数据时保存的对应关系中查找与该请求对应的响应数据,若对应关系是以请求的url或根据标识请求字段生成的字符串来保存的,那么相应地以该请求的url或根据标识该请求字段生成的字符串在对应关系中查找与该请求对应的响应数据。
[0092]S142、截取指定的页面区域测试图像。
[0093]在回放的测试操作执行完毕后,对页面区域进行截图。本步骤中需要截图的页面区域与步骤S123中指定的页面区域相同,在步骤S123中,定位插件已经获知需要截图的页面区域的位置信息,所以本步骤中,定位插件可以直接定位该页面区域的位置,之后截图插件对这一页面区域进行截图。
[0094]S143、对比所截取的指定页面区域图像与页面区域基准图像并验证测试结果。
[0095]将步骤S142所截取的页面区域测试图像与测试用例中的页面区域基准图像进行对比,根据两个图像是否存在差异来判断测试结果。图像的对比可以但不限于采用下述方法:
[0096]根据预先设定的单元格尺寸,将页面区域测试图像与页面区域基准图像以相同的方式切分为同样数量的单元格,依次选取页面区域测试图像与页面区域基准图像中相同的单元格,之后,采用点阵diff算法计算所选取的两个单元格中图像的相似度,若计算所得的相似度不小于预先设定的阈值,则认为这两个单元格的图像相同,测试通过;否则,认为这两个单元格的图像存在差异,测试未通过。利用上述方法,可以以单元格为单位,判断页面区域测试图像与页面区域基准图像是否存在差异。在发现存在差异的单元格后,可以设定功能将该单元格自动以高亮度显示,以便更直观地提示测试人员存在差异。若页面区域测试图像和页面区域基准图像的尺寸较小,则可以直接用点阵diff算法计算两者的相似度,而不用将图像切分为单元格。
[0097]上述为对本发明实施例一提供的页面代码测试方法进行的描述,通过上述方法,能够实现对某一区域内web页面代码(如html代码、css代码、Javascript代码等)的实际展现效果的自动化测试。下面通过实施例二对本发明提供的装置进行描述,该装置用于完成本发明实施例一中所述流程。
[0098]实施例二、
[0099]图6为本发明实施例二提供的页面代码的测试装置示意图,如图6所示,该装置包括:构造单元10、测试单元20,其中,构造单元10进一步包括:响应数据子单元11、测试操作录制子单元12和第一截图子单元13,测试单元20中进一步包括:测试操作回放子单元21和第二截图子单兀22。
[0100]构造单元10,用于构造测试用例,其中,所述测试用例包括:构造或录制的后台模块响应数据、录制的页面测试操作和页面区域基准图像。
[0101]构造单元10中进一步包括:响应数据子单元11、测试操作录制子单元12和第一截图子单元13。
[0102]响应数据子单元11用于构造或录制后台模块响应数据。
[0103]对于尚未就绪的后台模块,响应数据子单元11可以执行下述操作来构造该些后台模块的响应数据:
[0104]确定与页面请求对应的后台模块响应数据的格式,之后根据所述与页面请求对应的后台模块响应数据的格式生成后台模块响应数据。
[0105]响应数据子单元11可以通过一个管理平台来统一管理与请求对应的响应数据的格式,在该平台上,对于每一个类型的web页面可能发送至后台模块的请求,记录下该请求的类型以及对应的响应数据的格式,该格式包括:响应数据的结构和响应数据中的参数的数量、类型、名称以及每个参数的取值范围等。之后,便能从该管理平台上确定与每一个web页面发送给后台模块的请求对应的响应数据的格式。在确定了与页面请求对应的后台模块响应数据的格式后,可以依据这个格式生成与web页面发送至后台模块的请求对应的响应数据。首先生成响应数据中每个参数的值,本发明提供下述两种优选方式生成参数值:在每一个参数的取值范围内随机生成每一个参数的值;或者,根据测试需要来设定每个参数的值。之后,根据响应数据的结构,将所生成的参数组成一个完整的响应数据。
[0106]对于已经就绪的后台模块,响应数据子单元11可以执行下述操作来录制该些后台模块的响应数据:
[0107]拦截web页面发送至后台模块的请求,记录该请求,然后将该请求发送至后台模块,之后,将后台模块的返回的响应数据与之前记录的请求形成对应关系后保存,再将该响应数据返回至web页面。为了便于保存响应数据与请求间的对应关系,在拦截web页面发送至后台模块的请求并进行记录时,可以执行下述操作:记录该请求的url,将该请求发送至后台模块,之后将后台模块返回的响应数据与所记录的url形成对应关系后保存;提取标识该请求的字段,根据该字段生成唯一的字符串,将该请求发送至后台模块,之后将后台模块返回的响应数据与所生成的字符串形成对应关系后保存。
[0108]测试操作录制子单元12用于录制页面测试操作,这一过程可以通过执行下述操作实现:
[0109]在受控浏览器中载入具有录制功能的录制插件,启用该录制插件,获取在受控浏览器上对web页面执行的操作,记录下该操作对应的操作类型、被操作的元素定位符和操作参数等,并保存在指定文件中。
[0110]第一截图子单元13用于截取页面区域基准图像,这一过程可以通过执行下述操作实现:
[0111]在受控浏览器中载入具有定位功能的定位插件和具有截图功能的截图插件,在测试操作录制子单元12完成页面测试操作的录制后,启用定位插件,定位需要截图的区域在页面中的位置,之后启用截图插件,对所定位的区域进行截图以作为页面区域基准图像。第一截图子单元13可以通过下述两种方式执行定位截图的操作:
[0112]1、根据元素定位符进行定位截图,在测试操作结束后,指定需要截图的元素,启用定位插件获取被选取元素的Xpath,通过元素的Xpath可定位该些元素在页面中的位置,启用截图插件对该些被选取的元素进行截图,并将所截取的图像作为页面区域基准图像保存到指定文件中。
[0113]2、根据坐标进行定位截图,在测试操作结束后,鼠标拖动选取需要截图的区域,启用定位插件获取该区域相对于页面左上角的横坐标X与纵坐标y,以及该区域的高度h和宽度W,之后启用截图插件以横坐标X和纵坐标y为起始点,以h为高度、w为宽度对这一区域进行截图,并将所截取的图像作为页面区域基准图像保存到指定文件中。
[0114]测试单元20,用于回放所述录制的页面测试操作,拦截被测页面向后台模块发送的请求并根据该请求向被测页面返回所述构造或录制的后台模块响应数据;还用于截取页面区域测试图像,并将所述页面区域测试图像与所述页面区域基准图像对比检验测试结果。
[0115]测试单元20中进一步包括:测试操作回放子单元21和第二截图子单元22。
[0116]测试操作回放子单元21用于回放所述录制的页面测试操作,拦截被测页面向后台模块发送的请求并根据该请求向被测页面返回所述构造或录制的后台模块响应数据。
[0117]测试操作回放子单元21在受控浏览器中载入具有回放功能的回放插件,之后从特定文件中读取测试操作录制子单元12所记录的操作类型、被操作的元素定位符和操作参数等,将这些信息转换为相应的操作并启用回放插件在受控浏览器上对web页面执行该操作。
[0118]当web页面会向后台模块发送请求时,测试操作回放子单元21拦截该请求,从响应数据子单元11构造或录制的响应数据中查找与该请求对应的响应数据并返回给web页面。测试操作回放子单元21先查找响应数据子单元11所构造的响应数据中是否存在与该请求的对应的响应数据,若存在,则向web页面返回该响应数据;否则,在响应数据子单元11录制后台模块响应数据时保存的对应关系中查找与该请求对应的响应数据,若对应关系是以请求的url或根据标识请求字段生成的字符串来保存的,那么相应地以该请求的url或根据标识该请求字段生成的字符串在对应关系中查找与该请求对应的响应数据。
[0119]第二截图子单元22用于截取页面区域测试图像,并将所述页面区域测试图像与所述页面区域基准图像对比检验测试结果。
[0120]在测试操作回放子单元21回放的测试操作执行完毕后,第二截图子单元22启用第一截图子单元13在受控浏览器中载入的定位插件和截图插件对指定页面区域进行截图,将截图所得图像作为页面区域测试图像,并将该图像与第一截图子单元13所截取的页面区域基准图像进行对比以检验测试结果。图像的对比可以但不限于采用下述方法:
[0121]根据预先设定的单元格尺寸,将页面区域测试图像与页面区域基准图像以相同的方式切分为同样数量的单元格,依次选取页面区域测试图像与页面区域基准图像中相同的单元格,之后,采用点阵diff算法计算所选取的两个单元格中图像的相似度,若计算所得的相似度不小于预先设定的阈值,则认为这两个单元格的图像相同,测试通过;否则,认为这两个单元格的图像存在差异,测试未通过。利用上述方法,可以以单元格为单位,判断页面区域测试图像与页面区域基准图像是否存在差异。在发现存在差异的单元格后,可以设定功能将该单元格自动以高亮度显示,以便更直观地提示测试人员存在差异。若页面区域测试图像和页面区域基准图像的尺寸较小,则可以直接用点阵diff算法计算两者的相似度,而不用将图像切分为单元格。
[0122]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种页面代码的测试方法,其特征在于,该方法包括: . 51、构造测试用例,其中,所述测试用例包括:构造或录制的后台模块响应数据、录制的页面测试操作和页面区域基准图像; .52、回放所述录制的页面测试操作,拦截被测页面向后台模块发送的请求并根据该请求向被测页面返回所述构造或录制的后台模块响应数据; . 53、截取页面区域测试图像,并将所述页面区域测试图像与所述页面区域基准图像对比检验测试结果。
2.根据权利要求1所述的方法,其特征在于,所述后台模块响应数据采用如下方式构造: 确定与所述被测页面向后台模块发送的请求对应的后台模块响应数据的格式,根据所述格式生成响应数据中各参数的值。
3.根据权利要求1所述的方法,其特征在于,所述后台模块响应数据采用如下方式录制: 拦截被测页面发送给后台模块的请求,记录该请求后,将该请求发送至后台模块; 拦截后台模块返回的响应数据,保存该响应数据与所述请求形成对应关系,并将所述响应数据返回给被测页面。
4.根据权利要求1所述的方法,其特征在于,所述页面测试操作的录制,具体为: 录制在受控浏览器上执行的页面测试操作; 所述步骤S2中回放所述录制的页面测试操作,具体为:在所述受控浏览器上回放所述录制的页面测试操作。
5.根据权利要求4所述的方法,其特征在于,所述页面区域基准图像采用如下方式获得:在所述受控浏览器上执行完页面测试操作后,截取指定的页面区域的图像,其中,所述指定的页面区域为:根据选取的页面元素定位的区域;或者,直接由鼠标拖动选取的区域;所述步骤S3中截取页面区域测试图像,具体包括:在向被测页面返回所述构造或录制的后台模块响应数据后,在被测页面上截取所述指定的页面区域图像作为页面区域测试图像。
6.根据权利要求1所述的方法,其特征在于,所述步骤S3中将页面区域测试图像与页面区域基准图像对比检验测试结果,具体包括:计算所述页面区域测试图像与所述页面基准图像的相似度,若相似度超过预先设定的阈值,则认为测试通过;否则,认为测试未通过。
7.一种页面代码的测试装置,其特征在于,该装置包括: 构造单元,用于构造测试用例,其中,所述测试用例包括:构造或录制的后台模块响应数据、录制的页面测试操作和页面区域基准图像; 包括测试操作回放子单元和第二截图子单元的测试单元; 所述测试操作回放子单元,用于回放所述录制的页面测试操作,拦截被测页面向后台模块发送的请求并根据该请求向被测页面返回所述构造或录制的后台模块响应数据;所述第二截图子单元,用于截取页面区域测试图像,并将所述页面区域测试图像与所述页面区域基准图像对比检验测试结果。
8.根据权利要求7所述的装置,其特征在于,所述构造单元包括响应数据子单元,所述响应数据子单元用于采用如下方式构造所述后台模块响应数据: 确定与所述被测页面向后台模块发送的请求对应的后台模块响应数据的格式,根据所述格式生成响应数据中各参数的值。
9.根据权利要求7所述的装置,其特征在于,所述构造单元包括响应数据子单元,所述响应数据子单元用于采用如下方式录制所述后台模块响应数据: 拦截被测页面发送给后台模块的请求,记录该请求后,将该请求发送至后台模块; 拦截后台模块返回的响应数据,保存该响应数据与所述请求形成对应关系,并将所述响应数据返回给被测页面。
10.根据权利要求7所述的装置,其特征在于,所述构造单元包括测试操作录制子单元,所述测试操作录制子单元用于采用如下方式录制所述页面测试操作: 录制在受控浏览器上执行的页面测试操作; 所述测试操作回放子单元采用如下方式回放所述录制的页面测试操作: 在所述受控浏览器上回放所述录制的页面测试操作。
11.根据权利要求10所述的装置,其特征在于,所述构造单元包括第一截图子单元,所述第一截图子单元用于采用如下方式截取页面区域基准图像: 在所述受控浏览器上执行完页面测试操作后,截取指定的页面区域的图像,其中,所述指定的页面区域为:根据选取的 页面元素定位的区域;或者,直接由鼠标拖动选取的区域; 所述第二截图子单元采用如下方式截取页面区域测试图像: 在所述测试操作回放子单元向被测页面返回所述构造或录制的后台模块响应数据后,在被测页面上截取所述指定的页面区域图像作为页面区域测试图像。
12.根据权利要求7所述的装置,所述第二截图子单元采用如下方式将页面区域测试图像与页面区域基准图像对比检验测试结果: 计算所述页面区域测试图像与所述页面基准图像的相似度,若相似度超过预先设定的阈值,则认为测试通过;否则,认为测试未通过。
【文档编号】G06F11/36GK103678105SQ201210345049
【公开日】2014年3月26日 申请日期:2012年9月17日 优先权日:2012年9月17日
【发明者】乔健 申请人:百度在线网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1