专利名称:一种表单的自动测试方法及装置的制作方法
技术领域:
本发明涉及计算机软件测试技术,尤其涉及一种表单的自动测试方法及 装置。
背景技术:
随着社会需求的不断增加,人们在生活工作中接触和使用的万维网(World Wide Web )产品越来越多。所述Web就是一种超文本信息系统, Web的一个主要的概念就是超文本连接,它使得文本不再像一本书一样是 固定的线性的,而是可以从一个位置跳转到另外的位置,用户可以从中获取 更多的信息。对于互联网企业,针对于各种Web产品的测试工作也日益繁 重。其中,对各种Web表单的测试是比较重要的工作之一。所述Web表单 就是在Web浏览器中以表单形式向用户提供信息内容并接收用户操作的图 形界面。当使用Web表单进行注册、登录、信息提交等操作时,必须反复 地验证各种操作的逻辑关系,判断服务器返回的信息是否正确。因此,对于 Web表单的自动测试方法就变得必要和迫切。现有Web表单的自动测试方法主要是通过录制的方法记录Web表单中 的对象属性以及输入的各个操作步骤,生成相应的脚本,然后通过回放脚本 去验证Web表单程序逻辑实现的正确性、以及返回数据的一致性。 但是,上述现有的Web表单自动测试方法有以下缺点 1、 Web表单的对象通过录制方法获取,获取的对象属性为该对象的所 有属性,对象的次要属性例如对象在Web表单中的坐标和图片属性也被完 全录制下来,因此现有的这种自动测试方法过分依赖于Web表单页面布局 和对象位置的稳定,不但测试速度慢,而且当页面调整或对象位置改变后,
无法利用原脚本进行自动测试,需要重新录制生成新的脚本,从而耗费大量 的系统资源和人力资源,测试成本高。2、上述测试方法对Web表单浮出结果的验证主要依赖于人力判断,例如,对于每一个操作界面,需由测试人员进行人为识别,判断该操作界面是 否正常,因此非常容易产生错误,准确度不高。发明内容有鉴于此,本发明所要解决的技术问题在于提供一种表单的自动测试方 法,可以不受被测表单页面布局变化和被测对象位置改变的影响,并实现自 动测试,提高测试速度,降低测试成本。本发明的所要解决的技术问题还在于提供一种表单的自动测试装置,可 以不受被测表单页面布局变化和被测对象位置改变的影响,并实现自动测 试,提高测试速度,降低测试成本。为了解决上述技术问题,本发明的主要技术方案为 一种万维网表单的自动测试方法,包括A、建立被测表单的对象库,在对象库中记录每个对象的典型属性;B 、建立测试用例以及须U试用例所使用的观'H式数据;C、按照所述测试用例以及测试数据对被测表单进行测试操作,将测试 操作过程中的被测表单对象的典型属性与对象库中对应记录的典型属性进 行匹配,并根据操作结果和匹配结果生成测试日志。步骤A中,所述对象的典型属性为在所述被测表单中可以唯一确定 所述对象的属性。所述测试用例中包括至少一个操作函数,步骤C具体为Cl、依次按照所述测试用例内的操作函数从所述对象库中提取被测对象 的典型属性,与被测表单中的被测对象的典型属性进行匹配,如果匹配成功, 则执行步骤C2;否则,生成测试错误日志,执行步骤C3;C2、按照所述测试用例的操作函数对被测表单上的被测对象进行逻辑操 作,判断逻辑操作结果是否成功,如果成功,则执行步骤C3,否则,生成测试错误日志,执行步骤C3;C3、判断所述测试用例是否有后续操作函数,如果有,则调用下一操作 函数,返回步骤Cl,否则,结東测试操作流程。所述测试数据包括被测对象的对象名;步骤C1中,在从所述对象库中 提取被测对象的典型属性之前,进一步包括从测试数据中读取被测对象的 对象名,按照所读取的对象名从所述对象库中查找对应的对象,判断是否查 找到所述对象,如果是则执行从所述对象库中提取被测对象的典型属性,并 执行后续操作;否则生成测试错误日志,执行步骤C3。所述测试数据包括被测对象的对象名和对象值;如果所述被测对象为可编辑被测对象,则在所述被测对象的对象值中记 录相应的编辑数据,且步骤C2中,所述对可编辑被测对象进行的搡作为 将该可编辑被测对象对应的对象值赋给该可编辑被测对象;如果所述被测对象为非编辑被测对象,被测对象的对象值为空,且步骤 C2中,所述非编辑被测对象进行的操作为对被测对象进行点击或匹配搡 作。所述对象库建立在可扩展标记语言XML文件中。被测表单的数量为至少一个,且所有被测表单的对象库建立在一个 XML文件中。所述测试数据建立在Excel文件中。 一种表单的自动测试装置,包括表单对象库,用于记录被测表单中每个对象的典型属性;测试用例记录模块,用于记录测试用例;测试数据记录模块,用于记录测试用例中所使用的测试数据;测试用例执行模块,用于按照所述测试用例记录模块中的测试用例以及 测试数据记录模块中的测试数据对被测表单进行测试操作,将测试操作过程 中的各个被测表单对象的典型属性与所述表单对象库中对应记录的典型属 性进行匹配,并根据搡作结果和匹配结果生成测试记录。所述表单对象库中记录的所述对象的典型属性为在所述被测表单中可 以唯一确定所述对象的属性。所述表单的对象库为XML文件。所述测试数据记录模块为Excel文件。上述表单可以为Web表单,也可以为客户端表单。由于本发明先建立被测表单的对象库,记录被测对象的典型属性,该典 型属性只是在被测表单中可以唯一确定所述被测对象的属性,没有包括对象 的位置属性,因此本发明避免了现有技术中将被测表单中对象的所有属性都 录制的缺陷,从而不受被测表单页面布局变化和被测对象位置改变的影响, 可维护性更强,当页面调整或对象位置改变后,不需要对脚本进行修改就可 以继续进行自动测试,从而提高了测试速度,避免耗费大量的系统资源和人 力资源,降低测试成本。本发明被测表单的对象库建立在一个XML文件中,由于XML文件釆 用结点定义的方式,体现键和值一一对应的关系,因此釆用XML文件可以 使对象的层级关系清晰,同时也方便对象的更新和维护。本发明所述测试数据建立在Excel文件中。釆用Excel文件,可以方便 反应被测对象和测试数据的对应关系,同时也便于维护。
图1为本发明所述对象库中的一个Web表单的对象结构图;图2为Web表单浮出框对象的典型属性示意图;图3为本发明建立测试数据的一种示意图;图4为本发明所述进行自动测试的 一种实施例的具体流程图;图5为本发明所述自动测试装置的一种结构图。
具体实施方式
下面通过具体实施例和附图对本发明做进 一 步详细说明。 本发明的核心技术方案为A、建立被测表单的对象库,在对象库中记录每个对象的典型属性;B 、建立测试用例以及测试用例所使用的测试数据;C、按照所述测试用例以及测试数据对被测表单进行测试搡作,将测试 操作过程中的被测表单对象的典型属性与对象库中对应记录的典型属性进 行匹配,并根据操作结果和匹配结果生成测试日志。本发明适用的表单主要是Web表单,对于存在形式与Web表单相似的 客户端表单,本发明同样可以适用。在以下实施例中,以Web表单的自动 测试为例进行说明,所述客户端表单可以釆用同样的方案进行自动测试。首先,建立所述Web表单的对象库,该对象库中包括浏览器(Browser) 标识、Web表单的页面(Page)标识、以及Web表单中的各个需要测试的 对象的相关信息。记录这些对象的名称、类型、层级和典型属性,以可扩展 的标记语言(xml)文件格式保存起来。图1为本发明所述对象库中的一个Web表单的对象结构图。参见图1, 所述对象库为分级结构。其中,最高级为浏览器标识,用于区分不同的浏览 器;第二级为Web表单的页面标识,用于区分不同的Web表单;第三级为 Web表单中的各种对象类型标识,其中包括图像(Image)、链接(Link)、 Web复选框(WebCheckBox )、下拉列表框(Weblist)、按钮(WebButton )、 页面元素(WebElement)、嵌入框(Frame)、文本输入框(WebEdit)等 对象类型;第四级需要记录某个Web表单中的具体对象以及该对象的典型 属性。所述对象的典型属性为在所述被测Web表单中可以唯一确定所述对 象的属性。在记录对象典型属性时有两个限定条件 一是只记录重要属性, 不记录该对象的位置信息,例如坐标轴和图片等信息。二是相同类型的对象
典型属性值不能重叠,也就是说在Web表单上根据记录的典型属性能够准 确的找到唯一的一个对象,比如一个Web表单上有两个输入框类型的对象, 所述典型属性是要能够区分两个对象的唯一性属性,例如所述唯一性属性可 以是序号,通过不同的序号值可以唯一标记不同的对话框。例如,图2为Web表单浮出框对象的典型属性示意图,参见图2,对于 Web表单的浮出框,从源码中确定它的对象类型为WebElement,它的两个 典型属性值为别为标签(html tag)属性和文本(intertext)属性,所述标 签属性用于标识所述浮出框,以和其它浮出框进行区别,所述文本属性用于 记录该浮出框内的内容。只要记录这两个典型属性值就可以在Web表单中 定位到相应的浮出框对象,将该Web表单对象及其典型属性保存在对象库 即XML文件中。所述对象典型属性可以从Web表单的源码中查找;或者可以使用目前 常用的自动化测试系统quicktest自带的用于获取被测对象属性的测试工具 Object spy ,从Web表单页面上获取被测对象的典型属性。其次,建立被测Web表单的测试用例(UseCase)以及测试数据,所述 测试用例是对被测Web表单页面进行测试操作的执行程序,其中包括至少 一个搡作函数(Function),每一个Function执行相应的测试搡作,每个 Function中包括所执行的测试操作所针对的被测Web表单中的被测对象名, 以及测试操作的具体动作,例如赋值、选择、点击、验证等操作;各个Function 按照测试顺序排列在所述用例中,在测试时按照测试顺序依次调用所述 Function 。所述测试数据可以记录在文件中,例如可以记录在一个Excel文件中。 图3为本发明建立测试数据的一种示意图。参见图3,建立测试数据的具体 方法为按所建立的用例的Function调用顺序依次记录所要操作的对象名以 及对应的对象值,如果对象是可编辑型对象,例如文本等输入框对象,则对 象值中记录相应的编辑数据,如果对象是非编辑型对象,例如按钮、图片链 接等对象,则对象值为空;将所建立的测试数据保存在所述Excel文件中。
然后,按照所述测试用例和测试数据对被测Web表单中的被测对象进行具体的自动测试。图4为本发明所述进行自动测试的一种实施例的具体流程图。参见图4, 该流程包括步骤401、依次调用被测Web表单对应用例中的Function。步骤402、所调用的Function在所述测试数据中查找该Function所测试操作的对象名。步骤403、所调用的Function按照步骤402查找到的对象名在所述对象 库中查找对应的对象,判断所述对象库中是否有在所述测试数据中査找到的 对象,如果是则执行步骤405,否则,执行步骤404。步骤404、生成错误曰志并记录,开始调用所述用例中的下一个 Function,返回步骤401。步骤405、所调用的Function从所述对象库中读取步骤402所查找到的 对象的典型属性,同时从被测Web表单中提取相同对象的典型属性。步骤406、判断所述从对象库中读取的对象典型属性和从被测Web表单 中提取的对象典型属性是否匹配,如果是,则执行步骤408;否则,执行步 骤407。此处,从被测Web表单中提取对象典型属性的方法可以使用quicktest 自带的工具Object spy,从页面上获取被测对象的所有属性,然后根据需要 提取能唯一识别该对象的典型属性。当所述对象的典型属性匹配时,如果所述Function中没有再定义具体的 测试操作,则可以通过测试,开始调用下一个Function,返回步骤401。步骤407、生成错误日志并记录,开始调用下一个Function,返回步骤401。步骤408、针对所述被测Web表单,所述Function按照自定义的测试操 作动作对该Function对应的对象进行逻辑操作。本步骤中,如果所述Function中没有再定义具体的测试搡作,则可以通过测试,开始调用下一个Function,返回步骤401。本步骤中,如果所述对象为可编辑性对象,则Function从所述测试数据 中查找该对象所对应的对象值,按照自定义的测试搡作动作将査找到的对象 值赋给所述对象,比如对于文本输入框对象,进行赋值操作;对于下拉列 表对象,进行选择操作等;如果所述对象为非编辑型对象,则直接按照所述 自定义的测试方法对该对象进行操作例如对被测对象进行点击或匹配操作。例如,假设所述对象为编辑框,且对象的测试操作为写入操作,则从所 述测试数据中取出对应的对象值,并将对象值写入所述编辑框。步骤409、判断所述逻辑操作的结果是否成功,如果成功,则执行步骤 4011;否则,执行步骤4010。此处,可以根据被测Web表单对所述逻辑操作返回的结果进行判断, 如果结果正常,则所述逻辑搡作成功,如果结果异常,则所述逻辑操作失败。步骤4010、生成错误日志并记录,开始调用下一个Function,返回步骤401。步骤40U、开始调用下一个Function,返回步骤401。 本发明中,要求测试数据中定义的对象必须能在所述对象库中找到,也 能取到对象的典型属性。但是为了避免在测试中出现人为搡作错误,上述实 施例中可以增加上述步骤402的判断,以在出现人为搡作错误时及时报错, 保证测试的准确性。当然,上述步骤402并非本发明的必要技术特征,在本 发明的其它实施例中可以省略步骤402。在上述实施例中,如果用例中的所有Function都调用完毕,则结束测试。 以下用Web表单中浮出框的自动验证过程对本发明所述的方法做进一 步的说明首先,在所述对象库中记录浮出框按钮的对象名及典型属性、以及浮出 框的对象名及典型属性,浮出框按钮的对象类型为Image,假设此处浮出框 按钮的对象名定义为Image,典型属性值为按钮标识(html tag )、按钮类 型(image type)和索引(index);浮出框的对象类型为WebElement,假设 此处浮出框的对象名定义为WebElement,两个典型属性值为别为html tag 典型属性和intertext典型属性。其次,建立测试用例,包括用于执行测试操作的Function,并在所述测 试数据中记录所述Function依次需要操作到的对象名,此处可以为两个对象 名, 一个是浮出框按钮,另一个是浮出框。然后,开始自动测试,调用所述用例中的Function,从所述测试数据中 取出对象名,分别为浮出框按钮和浮出框的对象名,从所述对象库中查询所 述浮出框按钮的典型属性,如果该典型属性与被测Web表单页面上的浮出 框按钮典型属性一致,则进行点击操作,触发浮出框,判断操作结果是否成 功,即被测Web表单页面上的浮出框对象是否触发,如果触发,则进行下 一步验证所述对象库中的浮出框典型属性值与被测Web表单页面上获取的 浮出框典型属性值是否匹配,如果匹配,则通过测试,如果不匹配则记录错 误信息并写入曰志。基于上述方法,本发明还公开了一种自动测试装置。图5为本发明所述自动测试装置的一种结构图。参见图5,所述自动测 试装置包括Web表单对象库501,用于记录被测Web表单中每个对象的典型属性。测试用例记录模块502,用于记录测试用例。测试数据记录模块503 ,用于记录测试用例中所使用的测试数据。测试用例执行模块504,用于按照所述测试用例记录模块502中的测试 用例以及测试数据记录模块503中的测试数据对被测Web表单进行测试操 作,将测试操作过程中的各个被测Web表单对象的典型属性与对象库501 中对应记录的典型属性进行匹配,并根据操作结果和匹配结果生成测试记 录。所述自动测试装置还可以进一步包括一个结果输出模块505,用于输出 测试用例执行模块504生成的测试记录,由外界的显示设备显示。本发明中,所述Web表单对象库中记录的所述对象的典型属性为在
所述被测Web表单中可以唯 一确定所述对象的属性。本发明中,所述Web表单的对象库可以为XML文件,所述测试数据记 录模块可以为Excel文件。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不 局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到 的变化或替换,都应涵盖在本发明的保护范围之内。
权利要求
1、一种表单的自动测试方法,其特征在于,包括A、建立被测表单的对象库,在对象库中记录每个对象的典型属性;B、建立测试用例以及测试用例所使用的测试数据;C、按照所述测试用例以及测试数据对被测表单进行测试操作,将测试操作过程中的被测表单对象的典型属性与对象库中对应记录的典型属性进行匹配,并根据操作结果和匹配结果生成测试日志。
2、 根据权利要求l所述的自动测试方法,其特征在于,步骤A中,所 述对象的典型属性为在所述被测表单中可以唯一确定所述对象的属性。
3、 根据权利要求1所述的自动测试方法,其特征在于,所述测试用例 中包括至少一个操作函数,步骤C具体为Cl、依次按照所述测试用例内的操作函数从所述对象库中提取被测对象 的典型属性,与被测表单中的被测对象的典型属性进行匹配,如果匹配成功, 则执行步骤C2;否则,生成测试错误日志,执行步骤C3;C2、按照所述测试用例的操作函数对被测表单上的被测对象进行逻辑操 作,判断逻辑操作结果是否成功,如果成功,则执行步骤C3,否则,生成 测试错误日志,执行步骤C3;C3、判断所述测试用例是否有后续操作函数,如果有,则调用下一操作 函数,返回步骤C1,否则,结束测试操作流程。
4、 根据权利要求3所述的自动测试方法,其特征在于,所述测试数据 包括被测对象的对象名;步骤C1中,在从所述对象库中提取被测对象的典 型属性之前,进一步包括从测试数据中读取被测对象的对象名,按照所读 取的对象名从所述对象库中查找对应的对象,判断是否查找到所述对象,如 果是则执行从所述对象库中提取被测对象的典型属性,并执行后续操作;否 则生成测试错误日志,执行步骤C3。
5、 根据权利要求3所述的自动测试方法,其特征在于, 所述测试数据包括被测对象的对象名和对象值;如果所述被测对象为可编辑被测对象,则在所述被测对象的对象值中记录相应的编辑数据,且步骤C2中,所述对可编辑被测对象进行的操作为将该可编辑被测对象对应的对象值赋给该可编辑被测对象;如果所述被测对象为非编辑被测对象,被测对象的对象值为空,且步骤C2中,所述非编辑被测对象进行的操作为对被测对象进行点击或匹配操 作。
6、 根据权利要求1至5任一项所述的自动测试方法,其特征在于,所 述对象库建立在可扩展标记语言XML文件中。
7、 根据权利要求6所述的自动测试方法,其特征在于,被测表单的数 量为至少 一个,且所有被测表单的对象库建立在一个XML文件中。
8、 根据权利要求1至5任一项所述的自动测试方法,其特征在于,所 述测试数据建立在Excel文件中。
9、 根据权利要求1至5任一项所述的自动测试方法,其特征在于,所 述表单为万维网表单。
10、 一种表单的自动测试装置,其特征在于,包括 表单对象库,用于记录被测表单中每个对象的典型属性; 测试用例记录模块,用于记录测试用例;测试数据记录模块,用于记录测试用例中所使用的测试数据;观'H式用例执行模块,用于按照所述测试用例记录模块中的测试用例以及测试数据记录模块中的测试数据对被测表单进行测试搡作,将测试搡作过程 中的各个被测表单对象的典型属性与所述表单对象库中对应记录的典型属 性进行匹配,并根据操作结果和匹配结果生成测试记录。
11、 根据权利要求IO所述的自动测试装置,其特征在于,所述表单对 象库中记录的所述对象的典型属性为在所述被测表单中可以唯一确定所述 对象的属性。
12、 根据权利要求IO所述的自动测试装置,其特征在于,所述表单的 对象库为XML文件。
13、根据权利要求IO所述的自动测试装置,其特征在于,所述测试数据记录模块为Excel文件。
全文摘要
本发明公开了一种表单的自动测试方法及装置,方法包括A.建立被测表单的对象库,在对象库中记录每个对象的典型属性;B.建立测试用例以及测试用例所使用的测试数据;C.按照所述测试用例以及测试数据对被测表单进行测试操作,将测试操作过程中的被测表单对象的典型属性与对象库中对应记录的典型属性进行匹配,并根据操作结果和匹配结果生成测试日志。所述装置包括表单对象库、测试用例记录模块、测试数据记录模块、以及测试用例执行模块。利用本发明,可以不受被测表单页面布局变化和被测对象位置改变的影响,实现自动测试,提高测试速度,降低测试成本。
文档编号G06F11/36GK101118515SQ20071014538
公开日2008年2月6日 申请日期2007年9月11日 优先权日2007年9月11日
发明者玲 徐, 王大志 申请人:腾讯科技(深圳)有限公司