可视化前端测试

背景

相信进行过前端开发的同学都知道,前端测试不仅仅涉及到功能的测试,而且也需要考虑到界面样式测试、多浏览器兼容性测试、性能测试。本文主要讨论分析目前前端测试的现状,并讨论目前流行的测试工具,下篇文章将会介绍工具的使用方法

前端测试分类

前端测试主要分三大方向测试,而这三大方向也分很多小方向测试,首先简单的介绍每个方向的概念

  • 界面样式测试

固定界面样式测试:主要针对文字内容不变的区域,例如页面的页头,页脚这类结构、内容不变的区域,而测试一般通过截图对比解决。 结构不变界面样式测试:主要针对结构不变的区域,例如新闻区域这类结构不变,内容变化的区域,这类测试一般通过DOM元素对比解决。 计算样式测试:主要针对计算样式不变的区域,这类测试一般通过比较计算样式解决,但是这种测试不推荐,因为测试成本比较大。

  • 功能测试

服务器数据预期测试:主要针对用户在前端界面进行某种操作后,提交数据给后台后,测试后台能否返回预期的数据 界面功能测试:主要针对用户在前端界面进行某种交互性操作后,测试能否获取预期的功能、界面交互

  • 多浏览器测试

多浏览器测试:基于界面样式测试、功能测试的基础上来进行不同浏览器的的测试。

  • 性能测试

白屏时间:用户浏览器输入网址后至浏览器出现至少1px画面为止。 首屏时间:用户浏览器首屏内所有的元素呈现所花费时间。 用户可操作时间(dom ready) :网站某些功能可以使用的时间。 页面总下载时间(onload):网站中所有资源加载完成并且可用时间。

前端测试工具

欲善其事必利其器,在深入讨论如果打造可视化测试工具之前,我们先得讨论目前前端流行的测试工具

  • PhantomJS

工具地址:http://phantomjs.org/ 工具介绍:是一个基于 WebKit 的服务器端 JavaScript API。它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG。 PhantomJS 可以用于 页面自动化 , 网络监测 , 网页截屏 ,以及 无界面测试 等,简单来说就是通过js操作浏览器。工具可测试类型:性能测试、功能测试、界面测试。 工具点评:作为众多测试工具的核心基础库,PhantomJS可谓无所不能,基本上在前端测试领域只有你想不到的,没有它做不到的,但是也正是因为PhantomJS的功能过于强大,更加接近原生浏览器,导致其语法十分晦涩。

  • casperjs

工具地址:http://casperjs.org/ 工具介绍:CasperJS 是基于PhantomJS作为内核的测试工具,为界面测试、功能测试提供了更加易用的API, 增强了测试的便利性 工具可测试类型:性能测试、功能测试、界面测试 工具点评:CasperJS极大的简化了PhantomJS的接口,特别在前端测试方面,封装了大量相关的函数,而且支持定制化的单元测试结果

  • PhantomCSS

工具地址:https://github.com/Huddle/PhantomCSS 工具介绍:PhantomCSS是基于CasperJS作为内核,并结合Resemble.js 去进行图像像素级的比较,支持不一致的地方。 工具可测试类型:界面测试。 工具点评:PhantomCSS加强了CasperJS在界面测试中图像比较的不足,在Resemble.js的基础上提供更加易用的图像比较接口。

  • Selenium

工具地址:http://www.seleniumhq.org/ 工具介绍:Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7、8、9)、Mozilla Firefox、Mozilla Suite等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。 工具可测试类型:多浏览器测试。 工具点评:Selenium作为多浏览器的测试工具,解决前端在多浏览器测试的空缺。但Selenium与PhantomJS类似语法十分晦涩难懂,而且各个浏览器之间的兼容性对比比较容易出错。因不同浏览器之间由于标准原因很难做到像素级别的比较,因此不推荐使用Selenium作界面比较比较测试,而推荐进行功能回归测试。

  • Phantomas 工具地址:https://github.com/macbre/phantomas 工具介绍:基于PhantomJS的性能数据收集工具。 工具点评:Phantomas作为自动化性能数据收集工具,解决了日常性能数据收集的问题的,但是性能优化的指标数据需要的是大样本、更加贴近用户数据的平均值,而不是使用假设在条件良好的环境下获取的性能数据,因此更推荐使用Phantomas作性能异常监控,而不是性能指标的评测。

总结:

随着互联网产品的日益复杂,前端的单页面应用、前端界面、前端功能逻辑变得越来越复杂,为了保证功能的正常,因此前端测试变得越来越重要,但是进行前端测试必然会影响到前端开发的效率,因此我们后面将会提供一种自动化前端测试方案来平衡效率与稳定性的问题。

时间: 2024-10-14 21:08:56

可视化前端测试的相关文章

前端测试回顾及我们为什么选择Karma

前端测试,或者UI测试一直是业界一大难题.最近Q.js使用Karma作为测试任务管理工具,本文在回顾前端测试方案的同时,也分析下为什么Q.js选用Karma而不是其他测试框架. 像素级全站对比 曾今有一批人做过这样的UI测试,即最终页面图像是否符合预期,通过图片差异对比来找出可能的问题. 如图所示,所谓像素级站点对比,即利用截屏图像前后对比来找出,站点前后差异,从而发现问题. Q: 为什么需要这种测试呢? A: CSS容易被破坏,在大型响应式重构案例中,像素级全站对比是一个比较好的测试方案. 目

WEB前端测试浏览器兼容性的娃有福了!

今天调试前端的一个js效果,在其它浏览器上都正常,本人的IE11也正常,但是同事的IE8下就不正常,于是楼主只能去找第三方软件了.先用的微软的Microsoft Expression SuperPreview4,但是它只能看静态页面,运行不了JS,于是只能去用IETester(楼主以前用过IETester,不太好用,经常崩溃).在IETester下试了,居然还是正常的,楼主瞬间凌乱了,不只如何下手了,只能再去找度娘了.在一篇帖子中看到一个好办法,真心好啊,楼主以前居然都没发现,贴图如下: 在IE

前端测试代码测试

一:前端测试的背景.为什么做测试 1.测试分类 (1).TDD(Test-Driven Development) 测试驱动开发(2).BDD(Behavior Drive Development) 行为驱动开发 它通过用自然语言书写非程序员可读的测试用例扩展了测试驱动开发方法 这让开发者得以把精力集中在代码应该怎么写,而不是技术细节上 - 伪代码(3).DDD(Domain Drive Design) 领域驱动开发 各个层次之间的调用问题 DDD是告诉我们如何做好业务层!并以领域驱动设计思想来选

前端测试框架Jest系列教程 -- Expect(验证)

写在前面 在编写测试时,我们通常需要检查值是否满足某些条件,Jest中提供的expect允许你访问很多“Matchers”,这些“匹配器”允许您验证不同的东西. Expect 可以验证什么 Jest中提供了如下的验证方法: expect(value) expect.extend(matchers) expect.anything() expect.any(constructor) expect.arrayContaining(array) expect.assertions(number) ex

前端测试框架

一.为什么要进行测试? 一个 bug 被隐藏的时间越长,修复这个 bug 的代价就越大.大量的研究数据指出:最后才修改一个 bug 的代价是在 bug 产生时修改它的代价的10倍.所以要防患于未然. 从语言的角度讲 JavaScript 作为 web 端使用最广泛的编程语言,它是动态语言,缺乏静态类型检查,所以在代码编译期间,很难发现像变量名写错,调用不存在的方法, 赋值或传值的类型错误等错误. 例如下面的例子, 这种类型不符的情况在代码中非常容易发生 function foo(x) { ret

web前端测试(二)

web前端测试(二)   HTML 语言中,设置表格中文字与边框距离的标签是() * [单选题] * A.<table boder=””> B.<table cellspacing=””> C.<table cellpadding=””>(正确答案) D.<table width=””> 以下说法,错误的是() * [单选题] * A.mark用于显示变粗的文字(正确答案) B.<del>用于显示删除的文本 C.<ins>的文字会带下

现代化前端测试

mu --> 目录 1.现代化前端测试模型2.nodejs的断言模块assert3.单元测试断言库 chai4.mocha--JavaScript test framework5.测试的覆盖率--Istanbul, a JavaScript test coverage tool 1.现代化前端测试模型  <--返回目录 前端测试中有两种模型, 金字塔模型与奖杯模型. 1.1 金字塔模型 金字塔模型摘自 Martin Fowler's blog: 金字塔模型自下而上分为单元测试.集成测试.UI

前端测试框架学习

做了一年多的前端,从没有认真写过单元测试,对于常说的各种框架并不能彻底的分清,这次做了一个认真的学习与总结. 单元测试框架:Mocha, Jasmine等,因测试框架不包含断言库,因此需要引入断言库,Jasmine带有断言库assertions(未使用过).断言库 assert, shouldjs, chai等,具体的单元测试用例中使用karma是一款自动化测试工具,通过使用配置文件自动检测单元测试文件并进行测试,输出测试结果travis ci 持续集成服务,实现对代码库的代码的检测,编译,发布

前端测试工具之 postman

1.不论你是一个前端工程师还是一个后端工程师相信这款工具都会使你的开发更加简便. 2.在此我推荐的一款软件工具是 postman . 在这里我对 postman 做一个简单的介绍: ①它能够模拟表单发送 http 请求. ②测试你写的后台接口是否有效. ③省去写前台界面验证接口的时间. (小声bb由于用的时间不是很长我还没完全玩明白,只体会到了以上三点好处) 3.postman 下载地址 https://www.getpostman.com/products 4.下载完安装即可.安装完成后界面如