前端测试进化论2

说完了,前端技术的发展史,那么对应的前端测试发展史也随之发展。

石器时代——纯手工测试

早期的页面基本都是静态化的页面,只有几个链接或者图片,那么相对测试工作量不大,只需要我们打开页面查看加载是否正确。

铁器时代–xunit

到了javascript时代,随着其他语言xunit 风靡天下,js 也出现了它的xunit 框架。

Jsunit,以往在测试js的时候,都是以alert方式来检测错误,很不专业。

2001年 jsunit 出现,让js调试称为可能。

Jsunit 主要参考junit的设计,只要你会使用junit 那么jsunit 对你来说,根本不是什么事,具体使用参考

http://llying.iteye.com/blog/258605
DEMO:

测试代码

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD>  <TITLE>testHtml</TITLE> </HEAD><script type="text/javascript" src="myjs.js"></script><script type="text/javascript" src="jsunit\app\jsUnitCore.js"></script><script type="text/javascript"><!--function testAdd(){	var result = add(arg1,arg2);	warn("result", result);	debug("result", result);	info("result", result);	assertEquals(6,result);}

function testMinus(){	var result = minus(arg1,arg2)	assertEquals(2,result);}

function testMultiply(){	var result = multiply(arg1,arg2)	assertEquals(8,result);}

function testDivide(){	var result = divide(arg1,arg2)	assertEquals("4 divide 2 is 2",2,result);}

function setUpPage(){	arg1 = 4;	arg2 = 2;	setUpPageStatus = "complete";}

function exposeTestFunctionNames(){	var tests = new Array();	tests[0]="testAdd";	tests[1]="testMinus";	tests[2]="testMultiply";	return tests;}

//--></SCRIPT> <BODY>

</BODY></HTML>

测试驱动

123456789101112131415161718192021222324252627282930
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD>  <TITLE>suit test</TITLE> </HEAD><script type="text/javascript" src="jsunit\app\jsUnitCore.js"></script><script type="text/javascript"><!--function suite(){	var testSuite = new top.jsUnitTestSuite();	//增加的测试页面的路径是相对于测试运行器的路径的(testRunner.html),而不是相对于当前的页面	testSuite.addTestPage("../mytest1.html");    //套件里还可以在包含套件	testSuite.addTestSuite(Suite2());	return testSuite;}function Suite2() //需要与suite定义在同一个页面中{	var testSuite = new top.jsUnitTestSuite();	testSuite.addTestPage("../mytest2.html");	return testSuite;}

//--></SCRIPT> <BODY>

</BODY></HTML>

http://www.jsunit.net/

工业革命–ajax流行

随着ajax的流行,jquery框架在前端开发中的普及,让开发者看到了前端的新纪元,
jquery 团队也为广大开发人员开发了Qunit.QUnit 是一款强大而且容易使用的JavaScript 测试框架,它被用于jQuery 与其插件的测试,同时它也同样可以测试普通的JavaScript 代码.

TDD的时代来临 QUnit框架版本

将要被测试的代码需要添加到myProject.js中,并且你的测试用例应该插入到myTest.js。要运行这些测试,只需在一个浏览器中打开这个html文件。现在需要写一些测试用例了。

12345678910111213141516171819
<!DOCTYPE html><html><head>    <title>QUnit Test Suite</title>    <link rel="stylesheet" href="http://github.com/jquery/qunit/raw/master/qunit/qunit.css" mce_href="http://github.com/jquery/qunit/raw/master/qunit/qunit.css" type="text/css" media="screen">    <mce:script type="text/javascript" src="http://github.com/jquery/qunit/raw/master/qunit/qunit.js" mce_src="http://github.com/jquery/qunit/raw/master/qunit/qunit.js"></mce:script>    <!-- Your project file goes here -->    <mce:script type="text/javascript" src="myProject.js" mce_src="myProject.js"></mce:script>    <!-- Your tests file goes here -->    <mce:script type="text/javascript" src="myTests.js" mce_src="myTests.js"></mce:script></head><body>    <h1 id="qunit-header">QUnit Test Suite</h1>    <h2 id="qunit-banner"></h2>    <div id="qunit-testrunner-toolbar"></div>    <h2 id="qunit-userAgent"></h2>    <ol id="qunit-tests"></ol></body></html>

参考
http://www.cnblogs.com/nuaalfm/archive/2010/02/26/1674235.html
http://qunitjs.com/

现代化技术-BBD

紧着angluar react 等框架大行其道的同时,bdd也在开发中兴起,基于bdd的测试框架开始在前端如雨后春笋般冒出,jasmine,mocha,karma都是其中的代表,但是各得其道,到底谁好,没惹能说得清楚。但google 在前端测试的贡献,绝对是业界良心。


http://jasmine.github.io/


https://karma-runner.github.io/0.13/index.html


https://mochajs.org/

这些框架本人就不举列子了,会在以后的篇章里面一一介绍。

前端的未来

未来,我希望有一种框架能够解救苦逼的qa,简单的语法与api,使得我们能够处理所有前端框架而不用考虑控件问题,良好的性能,支持并发,跑ui和单元测试都在秒级,当然越快越好,最好能够自动更新ui自动化中页面对象的路径等等。也许只是个梦。Qa 还需努力。

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-09-16 17:19:39

前端测试进化论2的相关文章

前端测试进化论

第一篇web 发展史 这篇主要是帮助我们qa 了解前端的历史与现状. 测试工程师大部分时间可能关注的是feature正确性,而对于前端代码级别的测试基本没有关心过,随着各种前端框架在web和移动端大行其道,绽放各种高大上的功能时,我们渐渐的发现前端代码级别问题逐渐暴露出来,甚至超越后端之势.那么问题来了,为什么以前这种现象出现呢? 我们现来看看前端技术发展史. ##石器时代--开荒阶段 带有简单逻辑的界面 最早期的Web界面基本都是在互联网上使用,而且基本都是静态页面展示,人们浏览某些内容,填写

FuncUnit 和 Cucumber —— 前端测试的最佳搭档

这周我花了些时间研究FuncUnit 和Cucumber. 本文中我将说明为啥要联合使用这两个框架及使用它们进行前端测试. Cucumber 这是 Cucumber wiki: Cucumber 可以执行基于文本描述的功能自动化测试 Cucumber 可以运行根据基于文本定义的自动化测试.它是基于BDD开发模式的,他方面了非技术人员的测试用例开发. 我一开始定义了一些功能实现.这是一个多选功能,就涉及选中和取消选中: 功能点: 取消选择场景: 取消全部选项 使用多选控件和选项 当用户点击取消全部

在Jasmine+Protractor的环境下,如何使用mock实现伪造数据进行前端测试?

问题描述 在Jasmine+Protractor的环境下,如何使用mock实现伪造数据进行前端测试? protractor+jasmine刚开始学,现在可以轻松写出测试登陆的代码.比如向html input的框里输入,然后点击,判断下一个页面是不是预期的.但是现在pm要求用mock,就是不用服务器的数据,从而伪造一个数据,然后来进行测试,google了很久,支离破碎的代码很多,但是凑不成可以跑的程序.求大神帮忙,先谢过了

有没有一款综合性的前端测试工具?非常感谢

问题描述 有没有一款综合性的前端测试工具?非常感谢 请问有没有一款综合性的前端测试工具,集成常用的多浏览器兼容性测试,页面坏死链检查,页面Js错误检查,静态语法检查等 解决方案 同求,前端多浏览器测试太苦逼了 解决方案二: 多浏览器永远的痛啊!!

wap前端测试改进总结

前言 无线产品线的很多模块基本上都属于前端类型,前端模块一般具有如下几个特征:接收处理用户请求,本身不维护数据,从后端模块获取数据,进行build页面后展示给用户. 从图示可以看到,针对前端测试,我们需要根据手机特性,针对用户和前端的输入输出进行针对性的测试. 问题及解决方法分析 目前wap前端测试采用的方法有如下几个: 对于build页面的系统逻辑部分的case,采用自动化方式进行测试 对于页面展示部分的case,使用能够支持wml和xhtml页面的pc浏览器(比如opera或者安装了wmlb

在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路_javascript技巧

作为一个标准的绝顶的懒人,我想做一个测试工具,可以同时把所有浏览器的测试结果都显示在一个浏览器窗口里,并且列成清晰的表格,便于比较. 这一定会是一个可爱的工具,节省时间不说,而且可以清晰的记录和比较数据.下面说一下我的思路.(之后我将使用这个工具测试一个js的兼容性问题,敬请关注) 本工具已经制作完成,但是不具通用性,需要和后台配合使用,需要和数据库交互,而且后台交互的性能不太好,普通的电脑无法承受(我的3GHZ的cpu,2G内存都不能直接打开多个浏览器窗口,可能是我数据库的操作过于频繁).虽然

如何在无显示器的ubuntu下跑前端测试

Selenium是一个web自动化测试框架.用它可以实现web应用自动化测试.不过,我不只是用它来做测试,我还用它从电子商务网站签到页面爬取javascript生成的或AJAX的内容. 作为程序员,我不满足于使用Selenium IDE来记录和重放宏记录.那样很蹩脚,而且不适合部署到多台服务器.这时,你需要Selenium WebDriver,它又灵活,而且通过Selenium headless,运行Selenium在服务器上不需要显示设备. 为什么要运行Headless Selenium 测试

设计师该如何学习前端?

笔者的经历在知乎就可以看到,大学专业是数字媒体艺术,大一实习过动效设计师,大二拿到了人生第一个大公司的 offer 是交互设计师,后来转岗到淘宝旅行的前端团队,现在在微信电影票做前端研发.也是走过了不少野路子,不过还好有小右哥 @尤雨溪 这样艺术/设计转前端的大神在前面做典范,也证明这条路是玩的通的 接下来就说说自己的学习建议吧,一个小教程,也是自己走过的流程,仅供参考哈 ---- 背景篇 在这个时代学习新东西,一定要善于使用 Bing/Google 等搜索引擎-网络上的资源非常丰富,自学能力也

右击 -&gt; 查看源文件,和其他一些前端性能测试技巧

最近读了Steve Souders的High Performance Web Sites: Essential Knowledge for Frontend Engineers(O'Reilly, 2007),这本书的副标题是 "14 Steps to Faster-Loading Web Sites".在你发现此书面向对象为开发人员,从而停止阅读之前,考虑以下几点: ● 作者的研究表明,网页响应时间约80%-90%是由前端设计决定的.而我的经验中,这个数字更应该是50%-80%,但我