热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

前端技术周刊20181210:前端自动化测试

前端快爆再见Edge,微软正式宣布MicrosoftEdge浏览器将从EdgeHTML内核迁移到开源的Chromium(BlinkV8)上



前端快爆


  • 再见 Edge,微软正式宣布 Microsoft Edge 浏览器将从 EdgeHTML 内核迁移到开源的 Chromium(Blink + V8)上,ChakraCore JS 引擎将会继续开源并用在其他项目中,预览版预计 2019 年年初推出。Mozilla CEO 也发表文章痛呼:从商业角度来看,微软的决定可能很有意义,但从用户的角度来看,这可能是场灾难,把浏览器这样的网络基础设施交给一家公司来主导将会非常糟糕。?



    点评:失去竞争便会失去一种选择,Edge 加入 Chromium 后能有多少话语权,实在令人担忧,Opera 可能就是前车之鉴。


  • Puppeteer 是 Headless Chrome 的封装,现在也支持 Firefox 了。?



    点评:支持更多的浏览器将会更方便测试。
  • Chrome 73 开发者工具新增了 Logpoints 功能,可以在控制台快速打印消息。VSCode 早些时候就支持了类似的功能。?



    点评:是时候告别 console.log 了。
  • Babel 7.2.0 发布,支持了 Class field 规范中的 Private Instance Methods,Private accessors 也即将支持。至此由于此前 Chrome 也已经实现,该规范正式进入 Stage 3 阶段。?



    点评:这是一个最好的时代,也是一个最坏的时代!上周五特别邀请了 Hax 来阿里巴巴分享,详细讲述了该规范的利弊。


  • Safari Technology Preview 71发布,默认启用了 Web Animations、Intersection Observer 等重要特性,同时还去除了 CSS text-decoration 属性的前缀。?



    点评:Safari 正在努力不让自己变成新的 IE6 ?。
  • 第13届 D2 前端技术论坛将于2019年1月6日在杭州盛大开启,目前还可以团购买票。?

优秀 Demo


  • 带动画的密码提示框


  • 圣诞节进度条


专题:前端自动化测试


测试是完善的研发体系中不可或缺的一环,前端也不例外,CSS 的变更可能导致页面错位,Javascript 的变更可能导致功能缺陷。由于前端偏 GUI 软件的性质,尽管测试领域工具层出不穷,前端的自动化测试的落地实施并不广泛,很多项目依旧以手工测试为主。本篇即是对前端测试相关的解决方案的一个梳理。


方案


先来了解一下前端测试可能涉及到的环节:


  • 基本知识、单元测试、端到端测试、集成测试、可视化测试

目前比较常见的前端自动化测试方案主要集中在单元测试和集成测试阶段,实现文件监测和高效快速的执行测试:


  • 前端自动化测试概览

采用像素对比和 DOM 结构对比的方案:


  • 早期自动化测试的一些思考和探索
  • 视觉回归测试

对于 React 则推荐 Jest + Enzyme 搭建测试环境:


  • 使用Jest + Enzyme对React项目进行单元测试
  • React 与 Redux 的测试策略

工具


在 2018 年年初对测试工具的整体回顾:


  • An Overview of Javascript Testing in 2018

Karma 是目前在 Magix 自动化测试的过程中使用的框架:


  • Karma 测试框架的前生今世



    Karma 的优点是能通过插件和配置的方式集成大部分的主流的测试框架和前端库,能方便的一次在多浏览器环境执行测试用例,并集成了测试覆盖率生成功能,生成页面形式覆盖率报告并能导出不同形式的覆盖率报告数据。它的缺点是,对测试页面环境的搭建和资源文件的加载不是常见的形式,最开始搭建环境时会有很多跟预期不一致的情况,配置不直观。

Cypress 是一个相对完善的前端 E2E 测试框架,它可以运行在多浏览器环境,能拦截 mock 接口请求,模拟用户行为:


  • 前端 E2E 测试之 Cypress



本期编辑:@壹丝,审阅:@承虎,专题供稿:@弈铭




推荐阅读
  • 设计实战 | 10个Kotlin项目深度解析:首页模块开发详解
    设计实战 | 10个Kotlin项目深度解析:首页模块开发详解 ... [详细]
  • 本文深入探讨了 hCalendar 微格式在事件与时间、地点相关活动标记中的应用。作为微格式系列文章的第四篇,前文已分别介绍了 rel 属性用于定义链接关系、XFN 微格式增强链接的人际关系描述以及 hCard 微格式对个人和组织信息的描述。本次将重点解析 hCalendar 如何通过结构化数据标记,提高事件信息的可读性和互操作性。 ... [详细]
  • 本文探讨了利用Java实现WebSocket实时消息推送技术的方法。与传统的轮询、长连接或短连接等方案相比,WebSocket提供了一种更为高效和低延迟的双向通信机制。通过建立持久连接,服务器能够主动向客户端推送数据,从而实现真正的实时消息传递。此外,本文还介绍了WebSocket在实际应用中的优势和应用场景,并提供了详细的实现步骤和技术细节。 ... [详细]
  • 虚拟机网络设置与数据库远程连接优化指南
    本文针对个人计算机上虚拟机网络配置与数据库远程连接的问题,提供了一套详细的优化指南。在探讨远程数据库访问前,需确保网络配置正确,特别是桥接模式的设置。通过合理的网络配置,可以有效解决因虚拟机或网络问题导致的连接失败,提升远程访问的稳定性和效率。 ... [详细]
  • 在 Vbox 和 Hbox 布局中,当用户点击容器添加一个矩形时,系统会自动为该矩形分配坐标并打印其位置信息。此外,在按键事件触发时,系统仅打印当前矩形的坐标值。这两种布局在特定的交互场景下,能够动态地管理和更新子组件的位置。 ... [详细]
  • 本文介绍了UUID(通用唯一标识符)的概念及其在JavaScript中生成Java兼容UUID的代码实现与优化技巧。UUID是一个128位的唯一标识符,广泛应用于分布式系统中以确保唯一性。文章详细探讨了如何利用JavaScript生成符合Java标准的UUID,并提供了多种优化方法,以提高生成效率和兼容性。 ... [详细]
  • Netty框架中运用Protobuf实现高效通信协议
    在Netty框架中,通过引入Protobuf来实现高效的通信协议。为了使用Protobuf,需要先准备好环境,包括下载并安装Protobuf的代码生成器`protoc`以及相应的源码包。具体资源可从官方下载页面获取,确保版本兼容性以充分发挥其性能优势。此外,配置好开发环境后,可以通过定义`.proto`文件来自动生成Java类,从而简化数据序列化和反序列化的操作,提高通信效率。 ... [详细]
  • 技术分享:深入解析GestureDetector手势识别机制
    技术分享:深入解析GestureDetector手势识别机制 ... [详细]
  • Eclipse JFace Text框架中IDocument接口的getNumberOfLines方法详解与编程实例 ... [详细]
  • 深入解析Spring Boot启动过程中Netty异步架构的工作原理与应用
    深入解析Spring Boot启动过程中Netty异步架构的工作原理与应用 ... [详细]
  • 通过菜单项触发Activity启动过程详解
    本文详细解析了通过菜单项触发Activity启动的过程。在Android开发中,菜单项是用户与应用交互的重要途径之一。文章从技术角度深入探讨了如何通过菜单项触发特定Activity的启动,并提供了具体的代码示例和实现步骤。通过对菜单项的响应处理、Intent的创建与传递等关键环节的分析,帮助开发者更好地理解和掌握这一机制。 ... [详细]
  • 在基于.NET框架的分层架构实践中,为了实现各层之间的松散耦合,本文详细探讨了依赖注入(DI)和控制反转(IoC)容器的设计与实现。通过合理的依赖管理和对象创建,确保了各层之间的单向调用关系,从而提高了系统的可维护性和扩展性。此外,文章还介绍了几种常见的IoC容器实现方式及其应用场景,为开发者提供了实用的参考。 ... [详细]
  • 在Java编程中,为了提高代码的可读性和执行效率,建议优先使用局部变量来存储方法的返回值,而不是多次调用同一个方法。这样不仅可以减少方法调用的开销,还能避免潜在的性能问题。此外,使用局部变量还可以增强代码的可维护性和调试便利性。 ... [详细]
  • Spring Batch 异常处理与任务限制优化策略 ... [详细]
  • 深入解析 UIImageView 与 UIImage 的关键细节与应用技巧
    本文深入探讨了 UIImageView 和 UIImage 的核心特性及应用技巧。首先,详细介绍了如何在 UIImageView 中实现动画效果,包括创建和配置 UIImageView 实例的具体步骤。此外,还探讨了 UIImage 的加载方式及其对性能的影响,提供了优化图像显示和内存管理的有效方法。通过实例代码和实际应用场景,帮助开发者更好地理解和掌握这两个重要类的使用技巧。 ... [详细]
author-avatar
mobiledu2502892377
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有