多浏览器的兼容性测试对比工具

发表于:2012-10-11 11:07

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  2、输出结果

  此工具将收集各浏览器测试的结果,如下,每个以浏览器类型命名的文件夹下是各浏览器的截图及运行日志,在server的日志中,给出各浏览器截图的相似度对比结果。

  3、关于实现

  (1)多浏览器环境的建立

  每个浏览器都在windows环境下真实地安装,从而得到真正各版本浏览器下运行的结果。各浏览器安装在一台或多台机器上,由由server端记录着各个浏览器类型所对应的机器及机器提供case上传、远程调用的端口号。各浏览器所在机器部署着多浏览器工具的client,提供了查询client空闲状态、运行case、返回运行结果等接口供server端调用。

  (2)case的分发

  Case的分发到哪台机器,意味着case会在这台机器上执行。目前的case分发采用着最为简单的方法。每次server只运行一个应用,即当有多个case文件夹同时上传到ftp后,会依次处理每一个上传。当server端检测到case输入时,根据配置文件中选择的浏览器类型,依次查询对应浏览器所在的机器列表中,有哪台机器是空闲的,若有空间的机器,则将case部署到此机器上。对获取空闲机器的操作加锁,以保证不会出现并发时对机器的获取有误。Server建立各浏览器运行case的线程,由配置文件中,case在各个浏览器下串并行配置来确定线程的运行顺序。

  采用以上方法来分发case,虽然简单方便,但存在着资源利用不充足的问题。可能出现正在运行的case在等待符合条件的空闲机器,而现在空闲的机器虽然不满足此时case的浏览器要求,却可能满足下一个输入满足的浏览器类型。笔者目前还没有想到好的算法。若所有的case全为并行,则可将解析所有的待运行case,按case\浏览器类型组成数组,当有空闲机器时,就从数组中找出能满足条件的先运行。但因case可设置为串行,此方法便不可行了。若大家有满足串并行要求、又能充分利用机器资源的算法,欢迎交流。

  (3)浏览器截图

  截图的时间

  当case发起执行时,同时发起另一线程开始截图。当case运行完成或遇到异常结束时,截图停止。配置文件中可设置截图的时间间隔,线程中按指定的时间间隔sleep截图。

  截图的方法

  由于此工具并不会干涉用户如何操作浏览器,因此对浏览器的截图并没有调用selenium或watinN的相关接口来截图,而是调用windows api来完成的截图。在截图时,先根据此时浏浏览器的类型来得到浏览器窗口的classname,由classname来定位浏览器的父窗口句柄,再枚举子窗口,得到浏览器渲染区的句柄。为了能将渲染区的图清晰地截取出来,在获取了父窗口的句柄后,将窗口最大化且置为HWND_TOPMOST。由winApi中的GetWindowRect根据渲染区的句柄得出渲染区的屏幕坐标区域,再对此区域进行屏幕截取。

  由于chrome\firefox存在不同程度打开一个应用程序,出现多个classname相同的窗口的情况,因此在获取chrome与firefox句柄的细节方面,还加了title过滤等处理。

  截图的对比

  图像的对比的方法较多,领域也很深,笔者找到了一个基于图像直方图来对比相似度的方法,觉得能有一些参考价值。此方法将两个图像各切分为64个小方格,每个方格提取直方图,对比相似度后,取相似度的平均值做为总的图像相似度。

  笔者将baidu上搜索hahaxixi的自动化case放入多浏览器工具中,选择在ie6\ie8\firefox3.6下运行,人眼看到的截图基本一致,得到的对比结果是,ie6.0与firefox3.6下截图的相似度为83.949%,ie6.0与ie8.0的截图相似度为82.233%。

  4、关于运用

  此工具刚开发完成,目前是在测试时使用了一些web自动化case在运行。此后准备先在创意专家项目组来实验并完善此工具。

  由于工具的使用比较简单,用户只需将可执行的自动化case及配置文件传入ftp即可,由工具自动地完成case的分发、执行、截图与结果收集。若运行得比较顺畅,用户可在持续集成中采用此工具做兼容性检查的daily run。不过,此工具对用户自动化用例的要求会高一些,用例能成功运行的浏览器类型,还取决于用户自身的web case所使用的执行引擎。

22/2<12
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • bob123654
    2012-10-12 14:49:22

    我也感觉到这个作者不知道在说什么 看的云里雾里的 很无语

  • 蓝咖伴侣
    2012-10-11 14:04:32

    这个只针对自动化测试吧。功能黑盒测试就只能老办法了哦

  • wanxing886
    2012-10-11 11:34:15

    又没有工具名称、又没有下载地址,不知道这篇文章放在这里有什么用!

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号