使用Protractor进行AngularJS e2e测试案例
环境:
y@y:karma-t01$ protractor --version
Version 3.0.
y@y:karma-t01$ node -v
v4.2.2
y@y:karma-t01$
y@y:karma-t01$ webdriver-manager update
y@y:karma-t01$ webdriver-manager start
安装http-server:
y@y:karma-t01$ npm install -g http-server
y@y:karma-t01$ http-server -p
浏览器:Chrome 版本 46.0.2490.86 (64-bit)
目录结构:
y@y:karma-t01$ tree -L
.
├── client
│ ├── app
│ ├── bower_components
│ └── bower.json
├── e2e
│ └── todo
├── karma.conf.js
├── protractor.conf.js
└── readme
(1)e2e/todo/todo.spec.js
'use strict';
describe('',function(){
beforeEach(function(){
browser.get('/client/app/todo/todo.html');
});
it('',function(){
var todoListItems = element.all(by.repeater('item in list'));
expect(todoListItems.count()).toBe(3);
});
});
(2)client/app/todo/todo.js
'use strict';
var app = angular.module('Application',[]);
app.controller('TodoCtrl',function($scope){
$scope.list = ['user1','user2','user3'];
});
(3)client/app/todo/todo.html
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body ng-app="Application"> <div ng-controller="TodoCtrl">
<ul ng-repeat="item in list">
<li>{{item}}</li>
</ul>
</div> <script src="../../bower_components/angular/angular.js"></script>
<script src="todo.js"></script>
</body>
</html>
(4)protractor.conf.js
'use strict';
exports.config = {
allScriptsTimeout: 110000,
baseUrl: 'http://localhost:8080',
chromeOnly: true,
specs: [
'e2e/**/*.spec.js'
],
exclude: [],
capabilities: {
'browserName': 'chrome'
},
framework: 'jasmine',
jasmineNodeOpts: {
defaultTimeoutInterval: 30000
}
};
进行测试:
(1)启动webdriver构建测试工程
y@y:karma-t01$ webdriver-manager start
seleniumProcess.pid:
::58.939 INFO - Launching a standalone Selenium Server
(2)启动http服务
y@y:karma-t01$ http-server -p
Starting up http-server, serving ./
Available on:
http:127.0.0.1:
http:192.168.0.177:
Hit CTRL-C to stop the server
(3)运行测试脚本
y@y:karma-t01$ protractor protractor.conf.js
Starting selenium standalone server...
[launcher] Running instances of WebDriver
Selenium standalone server started at http://192.168.0.177:47286/wd/hub
Started
. spec, failures
Finished in 1.207 seconds
Shutting down selenium standalone server.
[launcher] instance(s) of WebDriver still running
[launcher] chrome # passed
使用Protractor进行AngularJS e2e测试案例的更多相关文章
- angularjs e2e测试初步学习(一)
e2e测试是从用户角度出发,认为整个系统都是一个黑盒,只有UI暴露出来. angularjs的测试框架是采用protractor. 1.创建文件 首先创建一个项目文件夹test,然后再创建两个文件,一 ...
- Angularjs E2E test Report/CoverageReport - 使用Gulp
上一篇(http://www.cnblogs.com/xiaoningz/p/7122633.html)使用grunt-protractor-coverage 做为覆盖率测试插件,如果项目的管理工具刚 ...
- Angularjs E2E test Report/CoverageReport
前端Angularjs是一个很热门的框架,这篇是学习基于Angularjs的nodejs平台的E2E测试报告和E2E JS覆盖率报告.用到的都是现有的工具,只是一些配置的地方需要注意. 环境前提: 1 ...
- 使用Angular CLI进行单元测试和E2E测试
第一篇文章是: "使用angular cli生成angular5项目" : http://www.cnblogs.com/cgzl/p/8594571.html 第二篇文章是: & ...
- E2E测试框架
1. 目前E2E测试工具有哪些? 项目 Web Star puppeteer Chromium (~170Mb Mac, ~282Mb Linux, ~280Mb Win) 41427 nightma ...
- Storm自带测试案例的运行
之前Storm安装之后,也知道了Storm的一些相关概念,那么怎么样才可以运行一个例子对Storm流式计算有一个感性的认识呢,那么下面来运行一个Storm安装目录自带的测试案例,我们的Storm安装在 ...
- 编写优美的GTest测试案例
http://www.cnblogs.com/coderzh/archive/2010/01/09/beautiful-testcase.html 使用gtest也有很长一段时间了,这期间也积累了一些 ...
- nginx整合tomcat集群并做session共享----测试案例
最近出于好奇心,研究了一下tomcat集群配置,并整合nginx,实现负载均衡,session共享,写篇记录,防止遗忘.---------菜鸡的自我修炼. 说明:博主采用一个web项目同时部署到两台t ...
- Webpack单元测试,e2e测试
此篇文章是续 webpack多入口文件.热更新等体验,主要说明单元测试与e2e测试的基本配置以及相关应用. 一.单元测试 实现单元测试框架的搭建.es6语法的应用.以及测试覆盖率的引入. 1. 需要安 ...
随机推荐
- uva12118
一开始以为直接算联通块个数就行了 后来发现还得分联通块里的奇点... 还要注意m = 0的情况... #include<iostream> #include<algorithm> ...
- XTU OJ 1210 Happy Number (暴力+打表)
Problem Description Recently, Mr. Xie learn the concept of happy number. A happy number is a number ...
- Linux shell入门基础(六)
六.Shell脚本编程详解 将上述五部分的内容,串联起来,增加对Shell的了解 01.shell脚本 shell: # #perl #python #php #jsp 不同的脚本执行不同的文本,执行 ...
- 使用MWC四轴起飞侧翻解决方法
原因如下:1.电机顺序错了,如上图所示,上面蓝色的箭头是机头,绿色的箭头是电机转向,3.10.11.9对应MWC飞控版上的D3,D9,D11,D9,蓝色箭头对应MWC飞控板的箭头 或者传感器的Y轴 以 ...
- ASP.NET-FineUI开发实践-15
1.按条件控制Grid不可编辑 Grid编辑其实用到的不多...但是也有要控制权限或者其他条件不能编辑的情况其实挺简单,学过extjs的知道,我现在也只是写前台了,没有写到后台事件,有时间再说 ...
- Hibernate HQL查询:
Hibernate HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查 ...
- HTML5 离线缓存忽略主页实例
默认情况下 指定html mianfest的当前页面会自动离线缓存到客户端. 取消的方法,可以使用iframe类实现 1.主页定义: <iframe frameborder="no&q ...
- iOS视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear的区别及用途
init-初始化程序 viewDidLoad-加载视图 viewWillAppear-UIViewController对象的视图即将加入窗口时调用: viewDidApper-UIViewContro ...
- javascript基础学习(十五)
javascript之cookie 学习要点: cookie介绍 创建与获取cookie cookie的编码 cookie的生存期 cookie的路径 cookie的domain cookie的sec ...
- [转]C++基本功和 Design Pattern系列 ctor & dtor
今天Aear讲的是class.ctor 也就是constructor, 和 class.dtor, destructor. 相信大家都知道constructor 和 destructor是做什么用的 ...