来源:自学PHP网 时间:2016-04-21 15:40 作者: 阅读:次
[导读] 这篇文章主要介绍了angularjs中的e2e测试实例,本文使用Protractor来完成e2e测试,需要的朋友可以参考下...
在上一篇文章里有讲到ng的,今天来说说e2e(端对端)测试. 当我们测试某个模块的单个功能点时,单元测试最适合,不过当面临用户进行多个页面交互的时候产生bug了,单元测试就不行了,这时候就得用e2e来模拟用户操作还原问题现场.当然利用e2e测试也能够测试程序的健壮性,很多单元测试办不到的事情,e2e测试都能够办到. 之前,ng是利用Angular Scenario Runner来运行e2e测试,现在已经换成Protractor来跑e2e了. Protractor Protractor是Angularjs里用来测试e2e的框架,它本身是一个npm模块,内部是构建在之上的,Protractor能够真正让你的测试用例运行在浏览器上,完全模拟用户的真实行为. 下面贴上它的一些资源地址: 1.提供的测试api Protractor运行原理 Protractor运行e2e测试所依赖的主要有以下几个东西: 1.WebDriver APIs,就是上面提到的WebDriverJs,是由Selenium提供给前端测试用的相关js api 整个运行过程如下图 想了解更多关于这几个组件之前交互的可以 利用ng种子项目来讲解e2e 我们利用ng官方提供的种子项目来讲解一个真实的e2e例子,首先利用下面命令获取种子项目 然后运行 安装相关的所有依赖文件 这里先说下运行e2e测试需要的配置文件,可以看到test/protractor-conf.js这个文件就是用来配置相关功能的,重点说下几个属性 1.specs 代表要运行的测试文件路径,这里写的是e2e/*.js framework 代表使用的哪种测试框架,这里使用的是jasmine 想了解更多关于这个配置文件的可以 说完了配置文件,我们再来看看测试用例的写法,先贴上一个官网上的例子 复制代码 代码如下: /* https://github.com/angular/protractor/blob/master/docs/getting-started.md */ describe('my app', function() { browser.get('index.html');
beforeEach(function() {
});
beforeEach(function() {
}); 这里只说下上面例子里关于protractor提供的一些常用方法与属性 1.browser,全局对象,代表当前浏览器的一个实例,常用的get方法用来实现浏览器改变地址 关于element与by的方法可以参考上面的 说了这么多,该跑一跑上面的测试用例了,命令比较简单 复制代码 代码如下: 这个负责下载相关的浏览器驱动与selenium-server 本地jar包,一般情况下这个都是会失败的,因为这两个资源都在google服务器那,所以可以利用浏览器翻墙单独下载,地址如下: 1.地址,一般下载chromedriver_2.9.zip这个文件. 2. 本地jar包 下载,一般下载selenium-server-standalone-2.40.0.jar这个文件. 然后把selenium-server拷到protractor包里的selenium文件夹里去,假如上面的命令超时之后,这里也会出现文件不过是空的,直接替换就可以;还要把chromedriver_2.9.zip解压之后的文件拷到这里 最后运行下面的命令可以看到测试结果了 复制代码 代码如下: 想了解更多关于ng种子项目里的命令行,可以 总结 ng的e2e测试要比单元测试配置要繁琐的多,不过它能做的事情也很多,非常值的你也试一试,有什么问题可以回复到评论里去. |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com