欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

聊聊多浏览器的智能化实验

来源:本站整理 作者:佚名 时间:2017-09-03 TAG: 我要投稿

如果你碰着前端工程师同伴,那聊聊阅读器的兼容性准是没错,这和碰着英国同伙就谈气象是一个事理。大部门法式员同伙们一定会捶胸顿足,连连抱怨,不外假如对方临时语塞,或许半吐半吞,请拍拍他 / 她肩膀说:
“没事,过两年出了新阅读器又是一条英雄。”
前端之殇
在前端界,阅读器兼容性是让工程师们头疼的成绩,对付履历丰富的人来讲,很清晰阅读器有哪些坑,然则对付大部门法式员,最可骇的是代码明显在这个阅读器运转得很好,然则到了另一个阅读器中就不克不及失常运转了。对付这部门的法式员,保证代码能失常运转的方法便是能及早发明成绩,而后将其办理。

 
平日环境下,发明兼容性成绩的方法莫过于将法式在各个阅读器中履行一遍,但这是极端挥霍人力和光阴的,最省力的方法也必要在每次版本的更迭时反复一遍测试工作。对付分歧的兼容性请求,测试必要的光阴各不相同,如果只支撑最新版本的阅读器,那末便测试 3、4 个阅读器便可,然则对付兼容性请求高的法式,有能够要测试 10 个阅读器以上。
对付中小型公司来讲,假如没有专职的测试职员,如许的测试耗时是致命的。若停止严厉测试,则会拖慢名目进度,倘使马马虎虎,那法式的品质便无奈包管。
本文将作为多阅读器主动化测试的第一篇文章,将以名目 A 作为例子,给读者重新先容若何停止当地多阅读的主动化测试工作,包含测试的事理、测试框架的拔取、测试工程的搭建和完成等。鄙人一篇文章中将先容若何应用云办事完成更多阅读器的测试工作。别的“从入门到不废弃”系列将给读者们带来更多从零开端的前端实践案例,诸如前端组件库计划与实行、名目主动化构建等案例,迎接人人存眷本系列的其余文章。
小窥测试
测试是一个庞大的主题,包含各类分类的测试,诸如黑盒测试/白盒测试、单位测试 / 集成测试 / 端到端测试等。平日法式员在测试本身的代码的时刻用得最多的便是单位测试,然则因为测试也是必要价值,许多人是不喜欢写测试的,乃至是一点都不写。固然本日咱们不是要伐罪诸位,而是盼望读者能从文中受害,从一个测试小白能够本身着手搭建本身的测试工程。
在多阅读器的主动化测试,咱们多数是停止端到端的测试工作,一小部门是大粒度的单位测试。端到端测试测试模仿用户的行动。在 Web 应用法式中,他们会启动办事器,关上阅读器,模仿用户的行动停止点击、输出、提交等举措,断言阅读器中发生了特定的工作或许是得到了等待的成果,从而让咱们信任功效能够失常的运转。而单位测试依据代码单位的大众 API 运转它们。这些测试必要创立一个类的实例,应用特定的输出挪用它的方法,断言被挪用的方法达到了预期的后果。
鄙人文中咱们会看到这两种测试的实践,固然有时刻辨别度并不大,能够无奈显著地辨别哪些是端对端测试哪些是单位测试,有时刻他们是混杂起来的,不外只需记着咱们的目标是包管功效能够失常运转就足够了。
在阅读器的测试中,Selenium 堪称是最紧张的对象之一。简略来讲 Selenium的感化是 “Automate Browsers”——让阅读器能够主动化起来的对象。它供应了同一的接口,让用户能够应用分歧的编程语言,挪用其接口来模仿用户的操纵,比方点击,挪动等操纵。基本上统统人工操纵的行动都能够经由进程 Selenium 的 API 停止触发操纵。咱们将 Selenium 看做是人手的署理,帮法式员完成统统用手干的活。
测试的技巧计划抉择
在停止名目实践前,很紧张的一项工作是抉择适合的技巧栈。比如在前端开辟时应当抉择 React,Vue 照样 Angular 作为框架异样,前端的测试工作也必要抉择一套技巧栈。
许多时刻人人在订定技巧栈时轻易走偏,在抉择技巧框架时不是抉择最适合的框架,而是抉择最热点的框架。固然一定水平上热点的框架能反响其受迎接水平,能够是因为其出众的长处,如较高的开辟效力、高效的衬着特征或许是活泼的社区。在前端开辟中,很轻易有如许的感触感染,便是只需半个月没有存眷业界的最新静态,就感到恍若隔世,新的办理计划层见叠出,让人喘不外气。
就作者自己履历来讲,已经过了忙乱的年事,再也不会盲目地追随新技巧,而转向存眷技巧面前办理的痛点,就似乎 2C 创业者们嘴上老说的用户痛点异样。

在先容本文触及名目标技巧栈以前,必要提示诸位,此处的技巧抉择并不一定完整适用于诸位的名目,请列位三思而测。今朝市场上有众多的测试框架,测试断言库乃至是全套的测试办理计划。Karma、Jasmine 和 Mocha 是人人熟知的测试框架,而 chai, should.js 是风行的断言库,别的在分歧的技巧社区另有自成一套的测试技巧,比如 React 社区中的 Jest 和 Enzyme 都是受开辟者喜爱的测试框架和库,近来一些新的并行测试办理计划也日渐风行,如 AVA 、Intern 。本文中的实践来自于名目 A,在名目测试后期咱们阐发了测试需要,咱们盼望全部测试计划能满意一下请求:
支撑端到端测试
对接云测试办事方便
当地测试和云测试切换方便
供应封装的阅读器操纵接口
测试用例能够疾速迁移到其余框架下履行
考量了以上的需要,咱们觉得 NightWatch.js 是一款非常适合的测试办理计划。固然其余的测试框架也基天性满意需要,然则从方便易用性上斟酌,咱们末了采纳了 NightWatch.js,该计划不只供应简略单纯封装的阅读器署理操纵 API, 还给咱们供应了方便便捷的云测试设置装备摆设(下一篇文章将侧重先容此内容),就凭这两点就已经非常吸引咱们了。对付前端测试老手,激烈保举试用此框架,让你能够敏捷完成已经畏而却步的测试工作。
名目实践
名目 A 的当地测试实践是必要分别在两台电脑上的多阅读器中履行测试,两台电脑分别是 Windows 体系和 Mac 体系,包含了 IE 、Firefox(windows / mac)、Chrome(windows / mac)、Safari 等最新的支流阅读器。两台机子的测试是分别履行的,咱们经由进程 Jenkins 分别按期履行机子上的测试义务,将测试成果经由进程邮件的方法反馈给开辟职员。 Jenkins 是一个连续集成的平台,对于假如应用 Jenkins 请列位本身 谷歌。

[1] [2] [3] [4]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载