一种基于Selenium的页面兼容性测试方法及装置与流程

文档序号:15981405发布日期:2018-11-17 00:22阅读:204来源:国知局

本公开涉及软件测试领域,具体涉及一种基于selenium的页面兼容性测试方法及装置。

背景技术

当前软件测试不可避免的问题之一为“兼容性测试”,web有web浏览器的兼容性、app有app的兼容性,就web而言不同浏览器页面所显示的走位及按钮点击情况都有所不同,对此测试人员就不可避免的多个页面多个功能,特别是响应式的web设计,不同尺寸要测试其走位情况,在不同浏览器中做重复性操作,浏览器版本多且复杂不说,重复性工作则让测试人员感到身心疲惫,这些测试无疑是枯燥的。

目前云服务节点测试一般为两种,第一种,手工测试重复性工作,设置不同分辨率执行测试并查看其页面效果及按钮的情况;第二种,使用截图分析图片的自动化形式,保存截图使用截图的形式分析其页面情况,需要人工查看操作过程及结果。第一种方案存在的问题有手工测试重复性工作枯燥,浪费不必要的时间,且分辨率及浏览器繁多,需要测试的时间则需要更长;第二种方案存在的问题有使用截图分析图片自动化形式,虽然解放双手,但是分辨率一旦改变其图片就需要重新获取不实现全自动化的兼容性测试。



技术实现要素:

本公开提供一种基于selenium的页面兼容性测试方法及装置,根据不同的web页面响应式兼容性的全自动化测试。提高对迭代频繁及更新频繁的产品测试;执行自动化脚本获取需要测试的web元素定位,使用分布式的形式对其进行,在不同浏览器的情况下的显示情况,进行各页面的对比返回页面的大小(分辨率)及元素的坐标位置,做对比比例一直则执行通过生成可视化报告,直观的表现测试结果提升可读性,提高后期回归测试的执行效率。

为了实现上述目的,根据本公开的一方面,提供一种基于selenium的页面兼容性测试方法,所述方法包括以下步骤:

步骤1,部署seleniumgrid环境;

步骤2,运行自动化测试脚本;

步骤3,设置标准浏览器的窗口值和页面元素的值;

步骤4,依次对不同的各待测浏览器的页面元素定位并获取页面元素的坐标位置;

步骤5,读取各待测浏览器的窗口值和页面元素的值;

步骤6,使用unittest进行单元测试,依次对各待测浏览器的窗口值和页面元素的值与标准浏览器的窗口值和页面元素的值进行对比判断;

步骤7,根据对比判断输出测试结果。

进一步地,在步骤1中,所述seleniumgrid环境用于对页面元素定位和获取浏览器页面截图。

进一步地,在步骤2中,所述自动化测试脚本至少包括unittest模块,采用python语言编写。

进一步地,在步骤3中,所述标准浏览器为ie浏览器,所述ie浏览器的版本为ie7、ie8、ie9、ie10、ie11的任意一种,所述窗口值为浏览器窗口的大小以及分辨率,所述页面元素的值包括页面元素的大小、页面元素长宽、页面元素位置。

进一步地,在步骤4中,所述待测浏览器包括ie浏览器,mozillafirefox,safari,googlechrome,opera。

进一步地,在步骤6中,所述对比判断为判断各待测浏览器的窗口值和页面元素的值与标准浏览器的窗口值和页面元素的值是否1:1的比例。

进一步地,在步骤7中,根据对比判断输出测试结果为两种情况:第一种情况,如果测试通过率100%则生成测试通过报告,发送测试通过报告到指定人员;第二种情况,测试通过率小于100%则生成测试失败报告,发送测试失败报告到指定人员进行修复,所述测试通过报告和测试失败报告包括各待测浏览器相应的浏览器名称及对比情况。

其中,所述unittest模块是基于java的junit的python内置的模块,该模块提供了一个框架去组织测试用例,unittest模块不仅可以适用于单元测试,还可以适用web自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果。

本发明还提供了一种基于selenium的页面兼容性测试装置,所述装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下装置的单元中:

环境部署单元,用于部署seleniumgrid环境;

脚本启动单元,用于运行自动化测试脚本;

标准页面设置单元,用于设置标准浏览器的窗口值和页面元素的值;

页面坐标定位单元,用于依次对不同的各待测浏览器的页面元素定位并获取页面元素的坐标位置;

页面数值读取单元,用于读取各待测浏览器的窗口值和页面元素的值;

单元测试对比单元,用于进行单元测试,依次对各待测浏览器的窗口值和页面元素的值与标准浏览器的窗口值和页面元素的值进行对比判断;

测试结果输出单元,用于根据对比判断输出测试结果。

本公开的有益效果为:本发明提供一种基于selenium的页面兼容性测试方法及装置,本发明在响应式兼容性测试的时候实施全自动形式,无需人工直接干预,响应式兼容性测试结束自动直接发送测试报告到指定人员,告知测试通过或进一步解决问题。对产品的快速更新及迭代做出快速的响应并测试大大减少了浪费在响应式页面兼容性测试的测试时间,提高了响应式的测试质量及报告可视化,自动化测试过程中截图也成为了辅助性的作用对无法重现的测试结果提出事实证明。

附图说明

通过对结合附图所示出的实施方式进行详细说明,本公开的上述以及其他特征将更加明显,本公开附图中相同的参考标号表示相同或相似的元素,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,在附图中:

图1所示为一种基于selenium的页面兼容性测试方法的流程图;

图2所示为一种基于selenium的页面兼容性测试装置图。

具体实施方式

以下将结合实施例和附图对本公开的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本公开的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

如图1所示为根据本公开的一种基于selenium的页面兼容性测试方法的流程图,下面结合图1来阐述根据本公开的实施方式的一种基于selenium的页面兼容性测试方法。

本公开提出一种基于selenium的页面兼容性测试方法,具体包括以下步骤:

步骤1,部署seleniumgrid环境;

步骤2,运行自动化测试脚本;

步骤3,设置标准浏览器的窗口值和页面元素的值;

步骤4,依次对不同的各待测浏览器的页面元素定位并获取页面元素的坐标位置;

步骤5,读取各待测浏览器的窗口值和页面元素的值;

步骤6,使用unittest进行单元测试,依次对各待测浏览器的窗口值和页面元素的值与标准浏览器的窗口值和页面元素的值进行对比判断;

步骤7,根据对比判断输出测试结果。

进一步地,在步骤1中,所述seleniumgrid环境用于对页面元素定位和获取浏览器页面截图。seleniumgrid是一种自动化的测试辅助工具,seleniumgrid通过利用现有的计算机基础设施,能加快web-app的功能测试。利用seleniumgrid,可以很方便地同时在多台机器上和异构环境中并行运行多个测试事例。seleniumgrid基于web-app测试工具selenium,可以同时并行运行多个seleniumremotecontrol,使所有这些seleniumremotecontrol显示为一个,这样在测试中就可以不必操作具体的计算机。

进一步地,在步骤2中,所述自动化测试脚本至少包括unittest模块,采用python语言编写。

进一步地,在步骤3中,所述标准浏览器为ie浏览器,所述ie浏览器的版本为ie7、ie8、ie9、ie10、ie11的任意一种,所述窗口值为浏览器窗口的大小以及分辨率,所述页面元素的值包括页面元素的大小、页面元素长宽、页面元素位置。

进一步地,在步骤4中,所述待测浏览器包括ie浏览器,mozillafirefox,safari,googlechrome,opera。

进一步地,在步骤6中,所述对比判断为判断各待测浏览器的窗口值和页面元素的值与标准浏览器的窗口值和页面元素的值是否1:1的比例。

进一步地,在步骤7中,根据对比判断输出测试结果为两种情况:第一种情况,如果测试通过率100%则生成测试通过报告,发送测试通过报告到指定人员;第二种情况,测试通过率小于100%则生成测试失败报告,发送测试失败报告到指定人员进行修复,所述测试通过报告和测试失败报告包括各待测浏览器相应的浏览器名称及对比情况。

其中,所述unittest模块是基于java的junit的python内置的模块,该模块提供了一个框架去组织测试用例,unittest模块不仅可以适用于单元测试,还可以适用web自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果。

程序工作流程如下:

(一)seleniumgrid环境部署:

1、搭建好测试环境,装java、python环境、下载好seleniumservice脚本服务、各个浏览器的驱动文件

(一)编写响应式兼容性自动化脚本:

按顺序一步一步设置或获取操作响应式兼容性测试的步骤窗口大小及元素位置及大小,

如:窗口大小driver.set_window_size(1366,768)#分辨率1366x768。

元素大小driver.find_element_by_id('su').size

输出长宽结果{'width':100.0,'height':36.0}

元素位置driver.find_element_by_id('su').locatiom

输出长宽结果{'width':800.0,'height':100.0}

在excel文件设置浏览器窗口大小的的要素如(长、宽……),python进行对此文件进行遍历使用数据驱动来操作所设置浏览器分辨率。

使用python的unittest进行单元测试用来执行响应式兼容性过程中判断测试成功与否。

实例:chrome={‘size’:100.0/36.0,}

firefox={‘size’:100.0/36.0,}

assertin(chrome[‘size’],firefox[‘size’])#相等比例为1:1

导出结果报告、发送邮件。

(三)执行测试脚本(开启seleniumservice->执行兼容性测试->unittest断言其结果是否正确->输出html报告及测试数据,

响应式兼容性测试通过:测试结束自动发送测试报告到指定人员,告知测试通过。

响应式兼容性测试不通过:测试结束自动发送测试报告到指定人员,进一步解决问题,bug系统生成对应错误的信息便于后期bug的跟踪及管理。)

本公开的实施例提供的一种基于selenium的页面兼容性测试装置,如图2所示为本公开的一种基于selenium的页面兼容性测试装置图,该实施例的一种基于selenium的页面兼容性测试装置包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种基于selenium的页面兼容性测试装置实施例中的步骤。

所述装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下装置的单元中:

环境部署单元,用于部署seleniumgrid环境;

脚本启动单元,用于运行自动化测试脚本;

标准页面设置单元,用于设置标准浏览器的窗口值和页面元素的值;

页面坐标定位单元,用于依次对不同的各待测浏览器的页面元素定位并获取页面元素的坐标位置;

页面数值读取单元,用于读取各待测浏览器的窗口值和页面元素的值;

单元测试对比单元,用于进行单元测试,依次对各待测浏览器的窗口值和页面元素的值与标准浏览器的窗口值和页面元素的值进行对比判断;

测试结果输出单元,用于根据对比判断输出测试结果。

所述一种基于selenium的页面兼容性测试装置可以运行于桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备中。所述一种基于selenium的页面兼容性测试装置,可运行的装置可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述例子仅仅是一种基于selenium的页面兼容性测试装置的示例,并不构成对一种基于selenium的页面兼容性测试装置的限定,可以包括比例子更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种基于selenium的页面兼容性测试装置还可以包括输入输出设备、网络接入设备、总线等。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述一种基于selenium的页面兼容性测试装置运行装置的控制中心,利用各种接口和线路连接整个一种基于selenium的页面兼容性测试装置可运行装置的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述一种基于selenium的页面兼容性测试装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

尽管本公开的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,而是应当将其视作是通过参考所附权利要求考虑到现有技术为这些权利要求提供广义的可能性解释,从而有效地涵盖本公开的预定范围。此外,上文以发明人可预见的实施例对本公开进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本公开的非实质性改动仍可代表本公开的等效改动。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1