一种页面对象自动化测试方法技术

技术编号:18256379 阅读:27 留言:0更新日期:2018-06-20 08:12
本发明专利技术公开了一种页面对象自动化测试方法,属于页面测试技术领域,包括将每一个页面设计为一个Class;在Selenium测试页面中通过调用页面类来获取页面元素;从页面元素中读取测试指令;调用待测试页面的页面代码文件,查找操作的Class创建页面对象实例;调用测试指令指定的页面操作相关Class;在页面操作相关Class中调用页面元素查找相应的页面元素;对查找到的页面元素执行页面操作,获得测试结果。本发明专利技术将每一个页面设计为一个Class,在Selenium测试页面中通过调用页面类来获取页面元素,避免了当页面元素id或者位置变化时,需要改测试页面代码的情况。

A method of automated test for page objects

The invention discloses an automatic test method for page objects, which belongs to the field of page testing, including the design of each page as a Class; the page elements are obtained by calling the page class in the Selenium test page; the test instruction is read from the page element; the page code file is used to check the page to be tested. The Class for the search operation creates a page object instance; calls the page operations specified by the test instructions to operate the related Class; calls the page elements to find the corresponding page elements in the page operation related Class; performs the page operation on the found page elements to obtain the test results. In this invention, each page is designed as a Class, and the page elements are obtained by calling the page class in the Selenium test page, avoiding the need to test the page code when the page element ID or the location changes.

【技术实现步骤摘要】
一种页面对象自动化测试方法
本专利技术涉及一种页面对象自动化测试方法,属于页面测试

技术介绍
目前,使用webdriver进行测试时,会出现一个对某一个页面的元素进行定位的时候,程序行间充斥着id、name、xpath等方法,这样会造成测试程序的可读性较差,不便于后期的维护以及修改。虽然可以通过添加注释的方法使程序便于理解,但并不能从根本上解决问题,目前采用较多的是通过对这些方法进行二次封装来避免每次对这些方法的直接调用,通过方法的封装虽然可以实现复用,但通过封装无法实现页面元素的逻辑处理和测试数据的独立。不断地添加新的测试,而极少地去重构、利用原有测试,Selenium的执行相对单元测试而言速度比较慢,随着测试逐渐的增多,运行时间会逐渐增加到难以承载的程度。
技术实现思路
本专利技术的主要目的是为了提供一种页面对象自动化测试方法,将每一个页面设计为一个Class,在Selenium测试页面中可以通过调用页面类来获取页面元素,避免了当页面元素id或者位置变化时,需要改测试页面代码的情况。本专利技术的目的可以通过采用如下技术方案达到:一种页面对象自动化测试方法,包括以下步骤:S1:将每一个页面设计为一个Class;S2:在Selenium测试页面中通过调用页面类来获取页面元素;S3:从页面元素中读取测试指令;S4:根据测试指令,调用待测试页面的页面代码文件,采用不执行页面元素查找操作的Class创建页面对象实例;S5:调用测试指令指定的用于测试页面对象实例的页面操作相关Class;S6:在页面操作相关Class中调用页面元素查找相应的页面元素;S7:对查找到的页面元素执行页面操作,获得测试结果。进一步的,所述S1中,每一个Class均包含页面中需要测试的元素,包括按钮、输入框和标题。进一步的,所述S2中,在Selenium测试页面中通过调用页面类来获取页面元素,包括:数据、对象、脚本三者的分离;构建基于selenium的web自动化测试框架,一旦有web应用的需求发生变动时,仅更改对应的对象、数据及脚本即可。进一步的,所述S3中,从页面元素中读取测试指令包括:接收在Selenium测试页面中输入的操作指令;获取原页面中与操作指令对应的页面对象;提取页面对象的页面元素;读取并存储页面元素中测试指令。进一步的,所述S4中,采用不执行页面元素查找操作的Class创建的所述页面对象实例包括设置信息和资源信息;所述资源信息包括页面对象实例中各个页面元素的路径描述符。进一步的,所述S5中,调用测试指令指定的用于测试页面对象实例的页面操作相关Class包括:根据页面对象实例中各个页面元素的路径描述符调用测试指令指定的用于测试页面对象实例的页面操作相关Class。进一步的,所述S6中,在页面操作相关Class中调用页面元素查找相应的页面元素,包括:在页面操作相关Class中调用页面元素以根据页面操作相关Class对应的路径描述符查找相应的页面元素。进一步的,所述S6中,在页面操作相关Class中调用页面元素查找相应的页面元素,若未查找到页面元素,则等待预设查找时间间隔后继续查找页面元素,直至查找到页面元素或者直至查找页面元素的总时长大于等于预设总时长。进一步的,若未查找到页面元素直至查找页面元素的总时长大于等于预设总时长,则通过页面操作相关Class返回错误信息。进一步的,所述S7中,对查找到的页面元素执行页面操作,获得测试结果后再对页面元素进行二次测试,包括:将测试结果数据输入到Web页面的输入域中;捕获Web页面的警告对话框对象;分析警告对话框对象中的报错信息;将报错信息与测试案例数据中的预期结果进行比较,如果比较结果一致则说明测试通过,如果比较结果不一致则说明二次测试不通过。本专利技术的有益技术效果:按照本专利技术的页面对象自动化测试方法,本专利技术提供的页面对象自动化测试方法,将每一个页面设计为一个Class,其中包含页面中需要测试的元素,如按钮、输入框和标题等,在Selenium测试页面中可以通过调用页面类来获取页面元素,避免了当页面元素id或者位置变化时,需要改测试页面代码的情况,当页面元素id变化时,只需要更改测试页Class中页面的属性即可。具体实施方式为使本领域技术人员更加清楚和明确本专利技术的技术方案,下面结合实施例对本专利技术作进一步详细的描述,但本专利技术的实施方式不限于此。本实施例提供的一种页面对象自动化测试方法,包括以下步骤:S1:将每一个页面设计为一个Class;S2:在Selenium测试页面中通过调用页面类来获取页面元素;S3:从页面元素中读取测试指令;S4:根据测试指令,调用待测试页面的页面代码文件,采用不执行页面元素查找操作的Class创建页面对象实例;S5:调用测试指令指定的用于测试页面对象实例的页面操作相关Class;S6:在页面操作相关Class中调用页面元素查找相应的页面元素;S7:对查找到的页面元素执行页面操作,获得测试结果。在一些实施例中,所述S1中,每一个Class均包含页面中需要测试的元素,包括按钮、输入框和标题。在一些实施例中,所述S2中,在Selenium测试页面中通过调用页面类来获取页面元素,包括:数据、对象、脚本三者的分离;构建基于selenium的web自动化测试框架,一旦有web应用的需求发生变动时,仅更改对应的对象、数据及脚本即可。在一些实施例中,所述S3中,从页面元素中读取测试指令包括:接收在Selenium测试页面中输入的操作指令;获取原页面中与操作指令对应的页面对象;提取页面对象的页面元素;读取并存储页面元素中测试指令。在一些实施例中,所述S4中,采用不执行页面元素查找操作的Class创建的所述页面对象实例包括设置信息和资源信息;所述资源信息包括页面对象实例中各个页面元素的路径描述符。在一些实施例中,所述S5中,调用测试指令指定的用于测试页面对象实例的页面操作相关Class包括:根据页面对象实例中各个页面元素的路径描述符调用测试指令指定的用于测试页面对象实例的页面操作相关Class。在一些实施例中,所述S6中,在页面操作相关Class中调用页面元素查找相应的页面元素,包括:在页面操作相关Class中调用页面元素以根据页面操作相关Class对应的路径描述符查找相应的页面元素。在一些实施例中,所述S6中,在页面操作相关Class中调用页面元素查找相应的页面元素,若未查找到页面元素,则等待预设查找时间间隔后继续查找页面元素,直至查找到页面元素或者直至查找页面元素的总时长大于等于预设总时长。在一些实施例中,若未查找到页面元素直至查找页面元素的总时长大于等于预设总时长,则通过页面操作相关Class返回错误信息。在一些实施例中,所述S7中,对查找到的页面元素执行页面操作,获得测试结果后再对页面元素进行二次测试,包括:将测试结果数据输入到Web页面的输入域中;捕获Web页面的警告对话框对象;分析警告对话框对象中的报错信息;将报错信息与测试案例数据中的预期结果进行比较,如果比较结果一致则说明测试通过,如果比较结果不一致则说明二次测试不通过。综上所述,在本实施例中,按照本实施例的页面对象自动化测试方法,本实施例提供的页面对象自动化测试方法,将每一个页面设计为一个Class,其中包本文档来自技高网...

【技术保护点】
1.一种页面对象自动化测试方法,其特征在于,包括以下步骤:S1:将每一个页面设计为一个Class;S2:在Selenium测试页面中通过调用页面类来获取页面元素;S3:从页面元素中读取测试指令;S4:根据测试指令,调用待测试页面的页面代码文件,采用不执行页面元素查找操作的Class创建页面对象实例;S5:调用测试指令指定的用于测试页面对象实例的页面操作相关Class;S6:在页面操作相关Class中调用页面元素查找相应的页面元素;S7:对查找到的页面元素执行页面操作,获得测试结果。

【技术特征摘要】
1.一种页面对象自动化测试方法,其特征在于,包括以下步骤:S1:将每一个页面设计为一个Class;S2:在Selenium测试页面中通过调用页面类来获取页面元素;S3:从页面元素中读取测试指令;S4:根据测试指令,调用待测试页面的页面代码文件,采用不执行页面元素查找操作的Class创建页面对象实例;S5:调用测试指令指定的用于测试页面对象实例的页面操作相关Class;S6:在页面操作相关Class中调用页面元素查找相应的页面元素;S7:对查找到的页面元素执行页面操作,获得测试结果。2.根据权利要求1所述的一种页面对象自动化测试方法,其特征在于,所述S1中,每一个Class均包含页面中需要测试的元素,包括按钮、输入框和标题。3.根据权利要求1所述的一种页面对象自动化测试方法,其特征在于,所述S2中,在Selenium测试页面中通过调用页面类来获取页面元素,包括:数据、对象、脚本三者的分离;构建基于selenium的web自动化测试框架,一旦有web应用的需求发生变动时,仅更改对应的对象、数据及脚本即可。4.根据权利要求1所述的一种页面对象自动化测试方法,其特征在于,所述S3中,从页面元素中读取测试指令包括:接收在Selenium测试页面中输入的操作指令;获取原页面中与操作指令对应的页面对象;提取页面对象的页面元素;读取并存储页面元素中测试指令。5.根据权利要求1所述的一种页面对象自动化测试方法,其特征在于,所述S4中,采用不执行页面元素查找操作的Class创建的所述页面对象实例包括设置信息和资源信息;所述资源信息包括页...

【专利技术属性】
技术研发人员:陶磊徐唤春裴大鹏
申请(专利权)人:商派软件有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1