前端自动化测试mocha入门
来源:互联网 发布:trello mac 编辑:程序博客网 时间:2024/05/19 19:59
前端测试
背景知识
1. 什么是Node.js:后端的js运行环境,基于c++和google的v8
2. Web服务器, 应用服务器和http服务器的区别: web服务器是仅接受和返回http请求的;应用服务器是包含要处理的业务的;http服务器则是遵循了http协议的,一般前两种都有这个功能
3. 匿名函数,闭包特性使得他(node.js)适合:事件驱动、异步编程。什么是同步/异步编程?简单说就是基于阻塞的,一个没有完成就一直去做;而异步的则是通过使用回调函数——即使一个函数没有执行完,也不会一直等待,而是同时开始新的操作,等他完成以后调用相应的回调即可。Node.js使用javascript的事件循环来支持它所推崇的异步编程风格。基本上,事件循环使得系统可以将回调函数先保存起来,而后当事件在将来发生时再运行。这里,返回的数据可以来自数据库,可以来自http请求。因此,可以看出node.js特别适合于处理网络中数据流的不确定性。
4. Mocha是一个基于node.js和浏览器的集合各种特性的Javascript测试框架,并且可以让异步测试也变的简单和有趣。Mocha的测试是连续的,在正确的测试条件中遇到未捕获的异常时,会给出灵活且准确的报告。Mocha托管在Github上。
5. WebDriver is a clean, fastframework for automated testing of webapps. 他是w3c的一个标准。WebDriver之所以能够实现与浏览器进行交互,是因为浏览器实现了这些协议。这个协议是使用JOSN通过HTTP进行传输。 Firefox可以直接使用,chrome和IE要安装各自的driver。
6. 测试框架是mocha+某种断言(expect等)+ webdiver(通常断言可以使用很多种,只要他可以抛出错误,都可以拿来用,在node.js下使用仅需要写上var expect=require('expect.js');就可以了)
具体分析
1. 所有的测试用例都在一个总的文件里面进行验证:
格式为#.testCase(App);
在test文件夹下面有所有页面的单元测试的#.js文件,里面是对应页面的测试用例,如果测试用例写的不全面,也是在这里增加
我们使用的测试工具是mocha, 他的使用方法非常简单(看起来貌似是这样):
describe(moduleName, function)
描述一句测试用例是否正确。首先describe是可以嵌套的,多个describe嵌套的使用用于描述模块下的子模块的关系
it(info, function)
真正的测试语句是在it函数的function里面,info也是一句描述性的说明,看得懂就行。function里面的断言决定这条测试是否正确。如果fail的话控制台会把log打印出来。一个it对应一个测试用例,里面可以有多条断言或一条断言。但是好的编码风格是一个it语句仅有一个断言,如果有更多的断言,考虑分成多个it。
Expect.to.be() / expect.to.contain() / expect.to.match()…
断言语句,用来输出信息(具体的可以参考https://github.com/Automattic/expect.js)。
2. 测试的分类:同步和异步
区别主要体现在done上。在你最深处的回调函数中加done()表示结束。在代码中的体现是:
.call(done)
表示回调函数的结束
3. 其他——before和after:
beforeEach会对当前describe下的所有子case生效。
before和after的代码没有特殊顺序要求。
同一个describe下可以有多个before,执行顺序与代码顺序相同。
同一个describe下的执行顺序为before, beforeEach, afterEach, after
当一个it有多个before的时候,执行顺序从最外围的describe的before开始,其余同理
4. 其他——pengding
不指定回调函数。一般适用情况比如负责测试框架的写好框架让组员去实现细节,或者测试细节尚未完全正确实现先注释以免影响全局测试情况。这种时候mocha会默认该测试pass。作用有点像Python的pass。那这一块是不是得由我们来写呢,这样,开发人员只用往里面填充了。
代码运行
运行前首先在git 下运行 java –jar selenium-server-standalone-2.44.0.jar 这个是支持webdriver用的;
安装了webstorm, 是一个运行的IDE。注意运行的时候把配置弄对。我们这里要选择mocha,Firefox。
- 前端自动化测试mocha入门
- mocha测试
- 基于Grunt&mocha JavaScript自动化测试框架的实践
- 用mocha和chai进行自动化测试(含实例)
- 基于angularJS的前端自动化测试工具Protractor快速入门
- 前端自动化测试探索
- 前端自动化测试
- 前端自动化测试探索
- 前端自动化测试
- 前端自动化测试环境搭建
- 转载:前端自动化测试探索
- 如何进行前端自动化测试?
- webim 前端自动化测试框架
- 自动化测试入门
- 自动化测试入门
- 自动化测试入门
- Selenium自动化测试-入门
- Appium自动化测试-入门
- 【POJ 1416】 Shredding Company
- HDFS客户端
- BitLocker上锁
- adb详解
- 20. 顺时针打印矩阵
- 前端自动化测试mocha入门
- genymotion的安装
- gcc编译参数-fPIC的一些问题
- POJ 2406 Power Strings (KMP)
- curl 设置自定义http头标签
- TCP/TP协议的建立链接过程详述
- 如何调整UIPickerView,UISwitch等无法通过frame调整大小的大小
- 通过jquery滚动到页面底部
- [jquery实例] 判断图片资源加载完毕