本发明涉及计算机技术领域,尤指一种基于robotframework的web应用系统自动化测试方法及装置。
背景技术:
随着计算机软件技术的发展,web应用系统的需求量越来越大,设计和开发越来越复杂,为了确保web应用系统的产品质量,在交付web应用系统之前,需要对web应用系统进行测试。
目前,在对这些web应用系统进行测试的时候,需要人工完成测试用例并人工启动测试过程,这无疑就会增大测试人力投入以及测试时间成本。
技术实现要素:
本发明实施例提供一种基于robotframework的web应用系统自动化测试方法及装置,用以解决现有技术中存在的增大测试人力投入以及测试时间成本的问题。
根据本发明实施例,提供一种基于robotframework的web应用系统自动化测试方法,包括:
获取待测试页面;
封装所述待测试页面的页面对象;
根据所述待测试页面的页面对象封装所述待测试页面的数据传输对象dto;
根据所述待测试页面的页面对象封装所述待测试页面的服务对象;
执行编写的测试用例依次调用所述待测试页面的服务对象、所述待测试页面的dto和所述待测试页面的页面对象进行测试。
具体的,封装所述待测试页面的页面对象,具体包括:
分析所述待测试页面;
定义所述待测试页面包括的操作方法和每个操作方法中的关键字。
具体的,根据所述待测试页面的页面对象封装所述待测试页面的dto,具体包括:
获取所述待测试页面包括的每个操作方法中的关键字;
封装所述待测试页面包括的每个操作方法中的关键字,得到所述待测试页面的dto。
具体的,根据所述待测试页面的页面对象封装所述待测试页面的服务对象,具体包括:
获取所述待测试页面的页面对象包括的操作方法;
封装所述待测试页面的页面对象包括的操作方法,得到所述待测试页面的服务对象。
具体的,执行编写的测试用例依次调用所述待测试页面的服务对象、所述待测试页面的dto和所述待测试页面的页面对象进行测试,具体包括:
编写测试用例;
执行所述测试用例调用所述待测试页面的服务对象、所述待测试页面的服务对象调用所述待测试页面的dto、所述待测试页面的dto调用所述待测试页面的页面对象进行测试。
根据本发明实施例,提供一种基于robotframework的web应用系统自动化测试装置,包括:
获取模块,用于获取待测试页面;
第一封装模块,用于封装所述待测试页面的页面对象;
第二封装模块,用于根据所述待测试页面的页面对象封装所述待测试页面的数据传输对象dto;
第三封装模块,用于根据所述待测试页面的页面对象封装所述待测试页面的服务对象;
测试模块,用于执行编写的测试用例依次调用所述待测试页面的服务对象、所述待测试页面的dto和所述待测试页面的页面对象进行测试。
具体的,所述第一封装模块,具体用于:
分析所述待测试页面;
定义所述待测试页面包括的操作方法和每个操作方法中的关键字。
具体的,所述第二封装模块,具体用于:
获取所述待测试页面包括的每个操作方法中的关键字;
封装所述待测试页面包括的每个操作方法中的关键字,得到所述待测试页面的dto。
具体的,所述第三封装模块,具体用于:
获取所述待测试页面的页面对象包括的操作方法;
封装所述待测试页面的页面对象包括的操作方法,得到所述待测试页面的服务对象。
具体的,其特征在于,所述测试模块,具体用于:
编写测试用例;
执行所述测试用例调用所述待测试页面的服务对象、所述待测试页面的服务对象调用所述待测试页面的dto、所述待测试页面的dto调用所述待测试页面的页面对象进行测试。
本发明有益效果如下:
本发明实施例提供一种基于robotframework的web应用系统自动化测试方法及装置,通过获取待测试页面;封装所述待测试页面的页面对象;根据所述待测试页面的页面对象封装所述待测试页面的dto;根据所述待测试页面的页面对象封装所述待测试页面的服务对象;执行编写的测试用例依次调用所述待测试页面的服务对象、所述待测试页面的dto和所述待测试页面的页面对象进行测试。该方案中,可以实现自动化测试待测试页面,从而减少人力投入,并大大节省了测试时间,提升了测试效率。
附图说明
图1为本发明实施例中一种基于robotframework的web应用系统自动化测试方法的流程图;
图2为本发明实施例中一种基于robotframework的web应用系统自动化测试装置的结构示意图。
具体实施方式
针对现有技术中存在的增大测试人力投入以及测试时间成本的问题,本发明实施例提供一种基于robotframework的web应用系统自动化测试方法,该方法的流程如图1所示,执行步骤如下:
s11:获取待测试页面。
s12:封装待测试页面的页面对象。
s13:根据待测试页面的页面对象封装待测试页面的数据传输对象(datatransferobject,dto)。
s14:根据待测试页面的页面对象封装待测试页面的服务对象。
s15:执行编写的测试用例依次调用待测试页面的服务对象、待测试页面的dto和待测试页面的页面对象进行测试。
该方案中,可以实现自动化测试待测试页面,从而减少人力投入,并大大节省了测试时间,提升了测试效率。
具体的,封装待测试页面的页面对象,具体包括:分析待测试页面;定义待测试页面包括的操作方法和每个操作方法中的关键字。
下面以登录页面的自动化测试方法为例进行说明。
此时,待测试页面就是登录页面。分析该登录页面,定义登录页面包括的操作方法和每个操作方法中的关键字,登录页面包括的操作方法为登录页面和检查登录页面,以及每个操作方法中的关键字如下所示:
对于登录页面来说:
[arguments]${username}${password}
输入用户名${username}
输入密码${password}
点击登录;
对于检查登录页面来说:
具体的,根据待测试页面的页面对象封装待测试页面的dto,具体包括:获取待测试页面包括的每个操作方法中的关键字;封装待测试页面包括的每个操作方法中的关键字,得到待测试页面的dto。
继续沿用上例,登录页面的dto如下所示:
对于“输入用户名”来说:
[arguments]${username}
inputtextusername${username};
对于“输入密码”来说:
[arguments]${password}
inputtextpassword${password};
对于“点击登录”来说:
clickbuttonsubmitcas
对于“检查登录成功”来说:
pageshouldcontainneris;
对于“检查用户名密码错误”来说:
pageshouldcontain账号不存在或密码错误;
对于“检查用户名为空”来说:
pageshouldcontain用户名为空;
对于“检查用户名超长”来说:
pageshouldcontain用户名超长;
对于“检查密码为空”来说:
pageshouldcontain密码为空;
对于“检查密码超长”来说:
pageshouldcontain密码超长。
具体的,根据待测试页面的页面对象封装待测试页面的服务对象,具体包括:获取待测试页面的页面对象包括的操作方法;封装待测试页面的页面对象包括的操作方法,得到待测试页面的服务对象。
继续沿用上例,假设在登录页面之前必须打开浏览器输入地址到达登录页面,此时,服务对象就会使用到打开集成测试统一资源定位符(uniformresourelocator,url),待测试页面的服务对象如下所示:
对于“用户名密码登录服务”来说:
[arguments]${username}${password}${expected}
[documentation]参数说明:
...username为用户名,
...password为密码,
...expected为期望结果:
...1为检查登录成功
...2为检查用户名密码错误
...3为检查用户名为空
...4为检查用户名超长
...5为检查密码为空
...6为检查密码超长
打开集成测试url服务1
登录页面${username}${password}
检查登录页面${expected}
具体的,执行编写的测试用例依次调用待测试页面的服务对象、待测试页面的dto和待测试页面的页面对象进行测试,具体包括:编写测试用例;执行测试用例调用待测试页面的服务对象、待测试页面的服务对象调用待测试页面的dto、待测试页面的dto调用待测试页面的页面对象进行测试。
继续沿用上例,在编写测试用例时,可以对各个分支情况进行用例编写,每个用例对应一种情况,例如:
登录成功用例
用户名密码登录服务admin11;
登录用户名密码错误用例
用户名密码登录服务asdsdwe2;
登录用户名为空用例
用户名密码登录服务\ssd3。
用户执行测试用例时,先调用待测试页面的服务对象,待测试页面的服务对象再调用待测试页面的页面对象,待测试页面的页面对象再调用待测试页面的dto,最终实现了登录页面的自动化测试,减轻测试人员工作量。
以上就是通过定义pageobject,dto,service和测试用例,完成采用pageobject模式的自动化测试分层实现,最后通过robotframework框架进行运行,极大的简化了web应用系统的测试流程,降低测试用例编写难度,增加后期用例可维护性。
基于同一发明构思,本发明实施例提供一种基于robotframework的web应用系统自动化测试装置,该装置的结构如图2所示,包括:
获取模块21,用于获取待测试页面;
第一封装模块22,用于封装待测试页面的页面对象;
第二封装模块23,用于根据待测试页面的页面对象封装待测试页面的dto;
第三封装模块24,用于根据待测试页面的页面对象封装待测试页面的服务对象;
测试模块25,用于执行编写的测试用例依次调用待测试页面的服务对象、待测试页面的dto和待测试页面的页面对象进行测试。
该方案中,可以实现自动化测试待测试页面,从而减少人力投入,并大大节省了测试时间,提升了测试效率。
具体的,第一封装模块22,具体用于:
分析待测试页面;
定义待测试页面包括的操作方法和每个操作方法中的关键字。
具体的,第二封装模块23,具体用于:
获取待测试页面包括的每个操作方法中的关键字;
封装待测试页面包括的每个操作方法中的关键字,得到待测试页面的dto。
具体的,第三封装模块24,具体用于:
获取待测试页面的页面对象包括的操作方法;
封装待测试页面的页面对象包括的操作方法,得到待测试页面的服务对象。
具体的,其特征在于,测试模块25,具体用于:
编写测试用例;
执行测试用例调用待测试页面的服务对象、待测试页面的服务对象调用待测试页面的dto、待测试页面的dto调用待测试页面的页面对象进行测试。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的可选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括可选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。