一种WebUI的自动化测试方法和系统
技术领域
本发明涉及软件测试系统领域,尤其涉及一种WebUI的自动化测试方法和系统。
背景技术
Web自动化测试工具(例如Selenium)支持调用浏览器引擎进行WebUI测试,它是通过定位页面元素,发送操作指令去执行测试任务,从而代替手动测试,提高测试效率。然而采用该种测试方法要求测试人员具备一定的代码编写能力以及较高的专业技术,不便于推广;同时自动化测试脚本维护困难,无法复用。
因此,现有技术存在缺陷,需要改进。
发明内容
本发明的目的是克服现有技术的不足,提供一种WebUI的自动化测试方法和系统,解决现有技术中,WebUI测试要求测试人员具有代码编写能力,不便于推广的问题;同时解决现有技术中自动化测试脚本维护困难,无法进行复用的问题。
本发明的技术方案如下:一种WebUI的自动化测试系统,所述系统包括:元素管理模块、关键字模块、用例集管理模块、任务管理模块;所述元素管理模块用于编辑所测试WebUI与预期WebUI的各个功能模块的页面元素控件,并使用关键字定义所测试WebUI对应的页面元素控件;所述关键字模块根据所定义的关键字将所测试WebUI对应的页面元素控件进行组合并形成若干功能块;所述用例集管理模块根据功能需求将所述的若干功能块进行顺序组合,形成若干个功能块组合,并依次添加所述功能块组合中所对应的功能块的参数信息、功能块所对应的预期UI的页面元素控件,形成若干测试用例;所述任务管理模块用于创建测试任务,执行所述测试任务,并反馈测试结果。
WebUI各个功能模块的页面元素控件主要指颜色(内置的色值参考)、图标(字体图标)、按钮(button组)、表单(form元素集合)、导航(菜单/面包屑)、选项卡(Tab切换)、表格(table基本结构)、进度条(progress)、面板(折叠面板/手风琴)、辅助(引用/字段集/横线等)。
根据测试要求在元素管理模块直接编辑所测试WebUI与预期WebUI的各个功能模块的页面元素控件,并将所测试WebUI的页面元素控件采用关键字进行定义,使得在进行所测试WebUI的页面元素控件拼接组合时,直接输入或拖拽对应的关键字即可拼接形成功能块,有效简化操作过程,用例集管理模块根据所测试WebUI、预期WebUI的功能要求,将功能块进行相应的顺序组合,不同的功能要求对应不同的功能块及组合顺序,完成组合后生成若干功能块组合,进一步对应添加功能块组合内各个功能块的参数信息、功能块所对应的预期WebUI的页面元素控件,形成若干个测试用例,每一个测试用例均包括所测试WebUI中的一个测试功能块组合及其功能块对应的参数信息、功能块所对应的预期WebUI的页面元素控件,形成对应关系,存在有些功能块无参数信息的情况,测试时,根据所测试WebUI的功能模块的要求,创建测试任务,根据测试任务的具体内容进行自动测试,完成测试后任务管理模块直接反馈测试结果,测试过程简单快速,有效提高测试效率;可将本发明的测试系统作为组件嵌入项目管理平台,配合项目管理使用,减少自动化维护成本;另一方面,本发明的测试系统,在所测试WebUI的版本进行更新迭代时,可进行编辑操作,改变的页面元素控件,即可进行相应测试,降低自动化测试脚本维护的难度,可进行复用。
进一步地,所述的一种WebUI的自动化测试系统,还包括:缺陷报表管理模块;所述缺陷报表管理模块用于查看测试结果、删除测试结果。在测试结束后,可在缺陷报表管理模块进行测试结果的查看。
进一步地,所述元素管理模块用于添加或上传所测试WebUI与预期WebUI的各个功能模块的页面元素控件,用于删除已添加的页面元素控件。当WebUI的版本更新后,需要根据功能模块的要求,对应添加新的页面元素控件或删除原有的页面元素控件即可。
进一步地,所述关键字模块还用于执行所述功能块,并根据执行结果进行调试,删除或增加功能块内的关键字。执行功能块具体为测试功能块能否进行点击,若无法点击成功,则需要进行调试,根据具体执行结果,判断是需要增加或是删除功能块内的关键字,即调整页面元素控件。
进一步地,所述用例集管理模块还用于执行所述测试用例,并根据执行结果进行调试,删除或增加功能块;所述用例集管理模块还用于导入所述功能块、导出测试用例。执行测试用例具体为测试对应的测试用例能否登陆成功,若登陆失败,则需要进行进行调试,并根据具体执行结果,判断是否需要增加或删除功能块;用例集管理模块的导入功能主要针对在EXCEL表中已填写好页面控制元素及其对应的关键字、关键字组合的情形,直接导入改EXCEL表即可,无需进行元素管理模块、关键字模块的操作,可进一步简化测试过程。
进一步地,所述任务管理模块还用于查看所述测试任务的执行进度、进行测试结果统计、生成测试报告。所测试WebUI对应多个测试用例,每一个测试用例均需进行测试,可通过任务管理模块测试任一一个测试用例的测试进度、测试结果,在测试完成后进行测试结果的统计,一般为统计通过率、失败率,并生成测试报告,并可在缺陷报表管理模块查看或删除测试报告。
进一步地,所述参数信息包括页面元素控件的账号、密码、ID。
本发明还提供一种WebUI的自动化测试方法,包括以下步骤:
S1:在元素管理模块添加所测试WebUI与预期WebUI的各个功能模块的页面元素控件,并使用关键字定义所测试WebUI对应的页面元素控件;
S2:根据功能需求使用所定义的关键字将所测试WebUI对应的页面元素控件进行拼接组合,形成若干功能块;
S3:根据功能需求将若干功能块进行顺序组合,分别添加所述功能块对应的参数信息、预期UI的页面元素控件,形成若干个测试用例;
S4:创建测试任务,根据测试任务将对应的测试用例添加至所述测试任务内,将对应的测试用例分配给执行机进行测试;
在所述测试任务内设置执行测试用例的执行信息,所述执行机根据执行信息进行测试;
S5:所述执行机执行所述测试用例内的测试功能块组合,并判断测试结果与与预期UI的页面元素控件是否一致;
S6:若一致,则反馈测试通过。
S7:若不一致,则将不同的地方进行截图,并反馈测试未通过。
需要测试时,在元素管理模块对应添加所测试WebUI与预期WebUI的各个功能模块的页面元素控件,包含多个页面元素控件,每个页面元素控件所对应的关键字不同,根据所测试WebUI的功能需求,将页面元素控件进行组合形成若干功能块,进一步进行功能块之间的顺序组合,并添加功能块对应的参数信息、预期UI的页面元素控件,形成若干测试用例,每一个功能块组合及其对应的参数信息与其对应的预期UI的页面元素控件具有对应关系,可直接根据所测试WebUI的功能模块的要求创建测试任务,测试任务中包含的测试用例数量由所测试WebUI的功能模块决定,在测试任务内设定执行信息,并将测试用例分配给执行机,可以分给多个执行机同时进行测试,执行机用于按照功能块组合的功能块顺序执行测试用例内的功能块,并对比功能块组合执行的结果与预期WebUI的功能块的页面元素控件显示的结果是否一致,并反馈测试结果,若一致则测试通过,若不一致则会将不同的地方进行截图,后期可根据截图,进行调试,本发明的测试方法,操作简单,对比现有技术有效提高测试效率,降低自动化测试的门槛,测试人员无需具备代码编写能力,就可以完成自动测试,便于推广使用;另一方面,在所测试WebUI的版本进行更新迭代时,可对应删除或增加相应的页面元素控件,按照本发明的测试方法进行操作,即可快速进行测试,提高测试效率。
进一步地,所述执行信息包括:执行测试时间、执行测试用例的浏览器驱动引擎。
采用上述方案,本发明提供一种WebUI的自动化测试方法和系统,具有以下有益效果:
1、可将本发明中的测试系统作为组件嵌入项目管理平台,配合项目管理使用,减少自动化维护成本;
2、降低自动化测试脚本维护的难度,可进行复用;
3、测试操作简单,测试效率高;
4、降低自动化测试的门槛,测试人员无需具备代码编写能力,即可完成自动测试,便于推广使用。
附图说明
图1为本发明测试系统的结构框图;
图2为本发明测试方法的流程框图。
其中:元素管理模块1、关键字模块2、用例集管理模块3、任务管理模块4、缺陷报表管理模块5
具体实施方式
以下结合附图和具体实施例,对本发明进行详细说明。
请参照图1,本发明提供一种WebUI的自动化测试系统,所述系统包括:元素管理模块1、关键字模块2、用例集管理模块3、任务管理模块4;所述元素管理模块1用于编辑所测试WebUI与预期WebUI的各个功能模块的页面元素控件,并使用关键字定义所测试WebUI对应的页面元素控件;所述关键字模块2根据所定义的关键字将所测试WebUI对应的页面元素控件进行组合并形成若干功能块;所述用例集管理模块3根据功能需求将所述的若干功能块进行顺序组合,形成若干个功能块组合,并依次添加所述功能块组合中所对应的功能块的参数信息、功能块所对应的预期UI的页面元素控件,形成若干测试用例;所述任务管理模块4用于创建测试任务,执行所述测试任务,并反馈测试结果。具体地,在本实施例中,所述参数信息包括页面元素控件的账号、密码、ID。
根据测试要求在元素管理模块1直接编辑所测试WebUI与预期WebUI的各个功能模块的页面元素控件,并将所测试WebUI的页面元素控件采用关键字进行定义,使得在进行所测试WebUI的页面元素控件拼接组合时,直接拖拽对应的关键字即可拼接形成功能块,有效简化操作过程,用例集管理模块3根据所测试WebUI、预期WebUI的功能要求,将功能块进行相应的顺序组合,不同的功能要求对应不同的功能块及组合顺序,完成组合后生成若干功能块组合,进一步对应添加功能块组合内各个功能块的参数信息、功能块所对应的预期WebUI的页面元素控件,形成若干个测试用例,每一个测试用例均包括所测试WebUI中的一个测试功能块组合及其功能块对应的参数信息、功能块所对应的预期WebUI的页面元素控件,形成对应关系,测试时,根据所测试WebUI的功能模块的要求,创建测试任务,根据测试任务的具体内容进行自动测试,完成测试后任务管理模块4直接反馈测试结果,测试过程简单快速,有效提高测试效率;可将本发明的测试系统作为组件嵌入项目管理平台,配合项目管理使用,减少自动化维护成本;另一方面,本发明的测试系统,在所测试WebUI的版本进行更新迭代时,可进行编辑操作,改变的页面元素控件,即可进行相应测试,降低自动化测试脚本维护的难度,可进行复用。
所述的一种WebUI的自动化测试系统,还包括:缺陷报表管理模块5;所述缺陷报表管理模块5用于查看测试结果、删除测试结果。在测试结束后,可在缺陷报表管理模块5进行测试结果的查看。所述元素管理模块1用于添加或上传所测试WebUI与预期WebUI的各个功能模块的页面元素控件,用于删除已添加的页面元素控件。当WebUI的版本更新后,需要根据功能模块的要求,对应添加新的页面元素控件或删除原有的页面元素控件即可。所述关键字模块2还用于执行所述功能块,并根据执行结果进行调试,删除或增加功能块内的关键字。执行功能块具体为测试功能块能否进行点击,若无法点击成功,则需要进行调试,根据具体执行结果,判断是需要增加或是删除功能块内的关键字,即调整页面元素控件。所述用例集管理模块3还用于执行所述测试用例,并根据执行结果进行调试,删除或增加功能块;所述用例集管理模块3还用于导入所述功能块、导出测试用例。所述任务管理模块4还用于查看所述测试任务的执行进度、进行测试结果统计、生成测试报告。所测试WebUI对应多个测试用例,每一个测试用例均需进行测试,可通过任务管理模块4测试任一一个测试用例的测试进度、测试结果,在测试完成后进行测试结果的统计,一般为统计通过率、失败率,并生成测试报告。
请参照图2,本发明还提供一种WebUI的自动化测试方法,包括以下步骤:
S1:在元素管理模块1添加所测试WebUI与预期WebUI的各个功能模块的页面元素控件,并使用关键字定义所测试WebUI对应的页面元素控件;
S2:根据功能需求使用所定义的关键字将所测试WebUI对应的页面元素控件进行拼接组合,形成若干功能块;
S3:根据功能需求将若干功能块进行顺序组合,分别添加所述功能块对应的参数信息、预期UI的页面元素控件,形成若干个测试用例;
S4:创建测试任务,根据测试任务将对应的测试用例添加至所述测试任务内,将对应的测试用例分配给执行机进行测试;
在所述测试任务内设置执行测试用例的执行信息,所述执行机根据执行信息进行测试;具体地,在本实施例中,所述执行信息包括:执行测试时间、执行测试用例的浏览器驱动引擎。
S5:所述执行机执行所述测试用例内的测试功能块组合,并判断测试结果与与预期UI的页面元素控件是否一致;
S6:若一致,则反馈测试通过。
S7:若不一致,则将不同的地方进行截图,并反馈测试未通过。
需要测试时,在元素管理模块1对应添加所测试WebUI与预期WebUI的各个功能模块的页面元素控件,包含多个页面元素控件,依次对所包含的页面元素控件进行关键字定义,每个页面元素控件所对应的关键字不同,根据所测试WebUI的功能需求,将页面元素控件进行组合形成若干功能块,进一步进行功能块之间的顺序组合,并添加功能块对应的参数信息、预期UI的页面元素控件,形成若干测试用例,每一个功能块组合及其对应的参数信息与其对应的预期UI的页面元素控件具有对应关系,可直接根据所测试WebUI的功能模块的要求创建测试任务,测试任务中包含的测试用例数量由所测试WebUI的功能模块决定,在测试任务内设定执行信息,并将测试用例分配给执行机,可以分给多个执行机同时进行测试,执行机用于按照功能块组合的功能块顺序执行测试用例内的功能块,并对比功能块组合执行的结果与预期WebUI的功能块的页面元素控件显示的结果是否一致,并反馈测试结果,若一致则测试通过,若不一致则会将不同的地方进行截图,后期可根据截图,进行调试,本发明的测试方法,操作简单,对比现有技术有效提高测试效率,降低自动化测试的门槛,测试人员无需具备代码编写能力,就可以完成自动测试,便于推广使用;另一方面,在所测试WebUI的版本进行更新迭代时,可对应删除或增加相应的页面元素控件,按照本发明的测试方法进行操作,即可快速进行测试,提高测试效率。
具体地,在本实施例中,登陆测试用例的测试过程如下:
(1)添加登录页面元素和事件
添加并定义所测试WebUI的功能模块对应的页面元素控件:添加点击页面元素控件、输入文本页面元素控件、登录帐号输入框页面元素控件、登录密码输入框页面元素控件、登录按钮页面元素控件;
将点击页面元素控件、输入文本页面元素控件、登录帐号输入框页面元素控件、登录密码输入框页面元素控件、登录按钮页面元素控件分别定义为关键字:点击、输入文本、登陆账号输入框、登陆密码输入框、登陆按钮;
添加预期WebUI的功能块所对应的页面元素控件:添加登录成功弹框页面元素控件
(2)根据关键字拼接组合,形成登录功能块
添加功能块1:点击、登录账号输入框、输入文本进行组合;所述功能块1的名称为输入登录账号;
添加功能块2:点击、登录密码输入框、输入文本进行组合;所述功能块2的名称为输入登录密码;
添加功能块3:点击、登录按钮进行组合;所述功能块3的名称为点击登录;
(3)设计登录测试用例
用例名称:登录成功;
操作步骤:按照顺序添加功能块1、功能块2、功能块3,添加参数信息:正确有效账号和正确有效密码,添加登录成功弹框页面元素控件;
(4)执行登录测试用例,创建一个测试任务,执行信息为:执行测试用例的浏览器驱动引擎为谷浏览器驱动、执行时间为现在执行;
执行机自动执行登陆测试用例内的登陆功能块组合,与弹框页面元素控件进行比对,两个对比结果为一致,测试通过。
综上所述,本发明提供一种WebUI的自动化测试方法和系统,具有以下有益效果:
1、可将本发明中的测试系统作为组件嵌入项目管理平台,配合项目管理使用,减少自动化维护成本;
2、降低自动化测试脚本维护的难度,可进行复用;
3、测试操作简单,测试效率高;
4、降低自动化测试的门槛,测试人员无需具备代码编写能力,即可完成自动测试,便于推广使用。
以上仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。