Web兼容性测试的要点

news2024/11/17 1:32:24

对于网页的兼容性我们主要考虑的是各种浏览器对前台页面的兼容性,因为浏览器对页面的影响是最大的。

现在浏览器的种类越来越多,网页中展现出来的内容也越来越丰富,这些内容包括网页中的字体、图片、动画等,而且有些内容需要网页安装一些插件才能打开。

很多时候同一个网页在不同浏览器下,可能会出现兼容性问题,有些浏览器显示正常,有些浏览器不能正常显示,例如出现乱码、排版异常、无法显示图片和动画、页面的功能不能正常使用等异常情况,所以一般情况下,都应针对当前主流的浏览器进行兼容性测试。

同时主流浏览器(IE,Firefox,Chrome,Opera,Safari)版本更新更加频繁,终端用户甚至不会感知这些浏览器版本的升级。

具体要测试哪些浏览器,主要根据产品经理制定的需求文档而定。

但如果页面上所有的功能都需要在每个浏览器重新测试一遍的话,工作量也是很大的。一般情况下,可以这样分配,例如测试组有6个人是做功能模块测试的,那么这6个人就会分别选用其中一款浏览器进行测试。这样就可以将浏览器分散开来,而不需要一个人来完成,后面还可以进行交换进行,尽量覆盖全面。

其次主要考虑的是分辨率的兼容性,这指的是页面在640400、600800\1024*768或者是更高的分辨率模式下是否能正常显示,例如字体是否太小,文本、图片等页面元素是否正常显示。

对于具体要使用什么样的分辨率进行测试,通常情况下,需求文档中会对分辨率给出建议和要求。

兼容性测试的作用

兼容性测试是软件测试过程必不可少的一个过程,没有兼容测试的测试是不完整的测试,兼容性测试的存在是有一定作用的。我个人觉得最少有以下几点:

·兼容性测试能够进一步提高产品的质量,提高用户体验;

· 兼容性测试能使软件与尽可能多的其他软件“和平共处”,尽可能达到平台无关性;

· 兼容性测试能尽可能的保证软件存在的价值,它是衡量一个软件质量的重要指标;

· 兼容性测试能使软件产品的市场更广阔;
 

浏览器兼容性测试应该如何来做?
 

分散风险

一个途径就是在多浏览器环境中执行日常的测试工作。

举个例子来讲,你要测试这样一个[url=]web[/url]应用:用户登入,生成报表,发送报表,退出系统。这个应用还包含一个管理功能,管理员或经理登入后可查看哪些人做了哪些改动。

为了覆盖更多的浏览器,你可以用一种浏览器来测试登入功能,在另一个浏览器中测试“发送报表”的功能,用第三种浏览器测试“审计变动”的功能。

这是一个有效的方法,在日常的功能测试的过程中,同时覆盖多浏览器兼容性测试。上面这个例子还是存在一些问题的,比如讲,如果“审计变动”这个功能在第一种,或第二种浏览器里是有问题,那么就会发现不了。这种方法节省下来的时间,可以让你在做兼容性测试策略时,更有侧重。

让其他人来帮你做测试

对于一些明显的页面兼容性问题,有一些在线工具可以帮着你检查,例如Browser Shots,它可以将你的页面载入到它所支持的浏览器中(它支持浏览器种类和版本很丰富),然后截屏,你可以查看在这些浏览器下的载入情况了.

这是一个很棒的工具,但那些需要登入验证的应用,或则你的应用中包含的页面太多 ,这个工具就显得有点力不从心了.

和标准进行比对

你可以对你的站点进行HTML语法标准检查,如果通过了,在多浏览器兼容性上,你可以更有自信一点了,但即使通过了,还是总有一些浏览器(比如万恶的360)渲染你的页面是会有兼容性问题。

自动化

Web UI的测试可以通过webdriver这个工具来实现自动化,可以使用selenium Grid来将自动化脚本在多浏览器上运行。如果不会写代码的话可以使用TestWriter,完全零编码进行测试。

前提是你得有Web UI自动化的投入。Web UI自动化可以发现一些功能上的问题,但对于多浏览器页面布局方面的差异,通过它是很难发现的。

Fight Layout Bugs

你可以写一些自动化脚本来检查页面在不同浏览器下渲染效果。Fighting Layout bugs是一个开源的工具,可以用来检查页面布局方面的[url=]bug[/url]

手工测试

你可以手工测试所有的浏览器版本,为了避免混淆,你可以将不同的浏览器安装在不同的虚拟机上(uedde的确这这样做的),当有其他人需要用是,可以直接克隆这些虚拟机,或则直接访问这些虚拟机。但这太耗时,费力了,但还是有必要做一次这样的多浏览器手工测试的。

分类

你可以依据内核来划分浏览器。

chrome & safari使用的是webkit内核,Firefox则是Gecko, IE系列的是Trident内核,Opera使用Presto内核。最新的Opera好像也开始使用webkit内核了。

这样你就可以认为,如果在chrome上没有问题,那么“理应”在safari也应该没问题。

模拟

市面上有一些工具可以模拟不同的浏览器,有一些浏览器也附带了工具来兼容老版本。但使用这些工具是要谨慎,这样的模拟并不一定准确。慎重。

outsource selenium

如果你没有条件搭建selenium grid测试环境,你可以尝试着使用Sauce Labs 和 testingbot 这样的服务。

多浏览器的支持我们心中永远的痛,特别是如今浏览器更新如此频繁的状况下。哎~ 你可以选择上面的适合你的方法。

PS:有些浏览器有兼容模式,可以通过兼容模式来模拟老版本。有些浏览器,如chrome,提供了开发者工具可以帮着定位。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/125820.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AlexNet学习笔记(2)

里面 有些东西 对于现在来说都是错误的 而且由大量的细节对于现在来说没有必要 而且是过度的enginnering 一篇论文的第一段通常是讲一则故事 我们在做什么研究 哪个方向 有什么东西然后为什么很重要 正则化 regularization好像没有那么重要,并不是最关键的 最关键…

前端监控系统的搭建

UI自动化测试库 puppeteer:https://zhuanlan.zhihu.com/p/524254998 - google出品 cypress - 据说比puppeteer好用 前端监控体系 性能监控 异常监控 行为监控:埋点体系 主动监控 被动监控 前端性能数据捕获: 打点方式,结…

pyqt5 QPainter绘制图形,并旋转

PyQt5 的绘图系统使用户可以在屏幕或打印设备上用相同的 API 绘图,QPainter 是用来进行 绘图操作的类,一般的绘图设备包括 QWidget、QPixmap、QImage 等,这些绘图设备为 QPainter 提供了一个“画布” QWidget 类是所有界面组件的基类&#xf…

【细节注入模型】

Detail-Injection-Model-Inspired Deep Fusion Network for Pansharpening (细节注入模型启发的深度融合网络全色锐化算法) 全色锐化是一种图像融合方法,其目的是将低空间分辨率的多光谱(MS)图像与高空间分辨率的全色…

FFmpeg学习笔记--FFplay简单过滤器、FFmpeg命令参数

目录 1--FFplay简单过滤器 2--FFmpeg命令参数 2-1 主要参数 2-1-1 -i设定输入流 2-1-2 -f设定输出格式 2-1-3 -ss设定开始时间 2-1-4 -t设定时间长度 2-1-5 代码实例 2-2 音频参数 2-2-1 -aframes设置输出的音频帧数 2-2-2 -b:a设置音频码率 2-2-3 -ar设置音频采样…

SVG 安全

一 任务目标 本篇文章的目的有:[ ] 了解 SVG 漏洞[ ] 了解 SVG 常见防护手段[ ] 搜寻 SVG 数据安全性校验和过滤的库[ ] 了解如何使用此类库来进行 SVG 上传防护[ ] 阅读源码,能明确讲述此类库做了什么如果对你有所帮助,不妨点赞、评论、收藏…

Windows系统安装Git教程

今天给大家介绍Windows系统安装Git命令。 一、Git版本控制工具简介 git是一个开源的分布式版本控制系统。所谓版本控制系统,是开发者最重要的工具之一,可以有效的解决版本的同步以及不同开发者之家的通信问题,提升协同开发的效率。版本控制…

JAVA数据类型及转换

一、数据类型 数据类型字节数byte字节型占用1个字节取值范围:-27 ~ 27-1-128~127short短整型占用2个字节取值范围:-215 ~ 215-1-32768~32767,在实际开发中使用较少int整型占用4个字节取值范围:-231 ~ 231-1-2147483648-214748364…

大道至简:数据库的终极未来

墨天轮2022年12月份的报告已经出炉,这一期的主题是:大道至简,自治为王。在公众号回复:下载 可以获得各期报告下载链接。数据库的终极未来是什么?这是行业里一直在探讨的命题,复杂但是也简单。大道至简01Or…

硬盘无法格式化怎么解决?数据丢失怎么恢复?

有时遇到一些特殊情况,需要我们对电脑磁盘进行格式化。但是硬盘无法格式化,这时我们应该怎么进行操作?你可以根据下面的操作,通过磁盘的创建权限,或者通过磁盘管理来进行格式化,一起来看看下面的简单操作&a…

威固的MOM,你的WOW 「 WOW 手武之道」威固巅峰技术交流赛圆满收官

近日,由全球特种材料公司伊士曼旗下汽车膜品牌威固(V-KOOL)举办的2022威固WOW手武之道技术交流会&PK赛,顺利收官。来自各地服务商的多位技师光芒尽显,展示贴装艺术,分别赢得广州站、南京站、郑州站及成…

WEB应用安全测试丨Acunetix功能简介

快速查找并修复使您的Web应用程序面临攻击风险的漏洞。享受更多的安心——无需花费更多有限的时间。 产品功能 发现与爬行 01、发现所有需要扫描的东西 Acunetix会自动创建所有网站、应用程序和API的列表,并使其保持新状态。 这意味着您不会留下未扫描且容易受到…

00后少年的心力之作(已开源) | heartt(心力算法)

心力之作: 综合性极强的文本摘要算法: heartt(心力算法) 大家好,我是 heartt 算法的作者。我今年 13 岁,是一名热爱编程的学习者。 今天,我要向大家介绍我的新算法:heartt。 00后少年的心力之作(已开源) | …

xxx 拘留室项目

1.项目介绍 本项目用于当地拘留室,定位:监控、值班系统,项目时间:十二月。 系统涉及人员:值班人员、拘留人员 设备:摄像头(海康)、门禁(中控安防)、声光报警…

特色功能(锐捷云桌面篇)

大家好,我是小杜。转眼居家办公已经一周多了,有没有小伙伴和小杜一样,感觉还是在公司上班好,进入状态快呢。现在的主要精力是业务上,处理完对应业务后,就开始了“快乐”的学习了。还是相信之前纯粹的学习时…

常见的5种数据分析方法有哪些?

看大家介绍了那么那么多的数据分析方法,但不同的数据分析方法使用场景不同,A常用的B不一定常用。 所以这篇只介绍5种基于逻辑层面的,几乎人人都会用的数据分析方法。 先来分享一下数据分析6大步骤: 按照这6个步骤,结合…

uni-app的条件编译

条件编译了解 前言: 由于本次业务有 PC 端H5 页面,还有 手机端的H5页面,不同的端,模块展示可能不同,但是大部分功能又是相同的。 如果通过简单的 if…else… 判断不同端,调用相应的 API 或 展示相应的模块…

设计模式——设计思想

设计模式——设计思想一、面向对象的四大特性:1、封装2、抽象3、继承4、多态二、抽象类和接口类1、抽象类和接口的语法特性2、抽象类和接口存在的意义3、抽象类和接口的应用场景4、抽象类和接口的区别三、面向对象编程与面向过程编程1、面向对象编程和面向对象编程语…

mac中nvm管理node

目录检查电脑上是否存在node卸载node安装nvm报错查看本机的ip地址修改host文件重新安装nvm - 报错重新安装nvm - 报错安装完成兼容性运行之前的项目 -> 报错运行之前的项目 -> 报错常用命令nvm安装之前若是电脑上存在node,要先将node卸载掉检查电脑上是否存在…

catia建模圆柱直齿轮和斜齿

1 圆弧近似方案 参考 7.1 直齿轮(简单)1_哔哩哔哩_bilibili 2 渐开线生成点--》生成样条曲线方案 参考 7.2渐开线齿廓直齿圆柱齿轮(1)_哔哩哔哩_bilibili xd基圆半径rb *sin(t*PI*1rad)-基圆半径rb *t*PI*cos(t*PI*1rad) yd基…