环境:

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测试案例的更多相关文章

  1. angularjs e2e测试初步学习(一)

    e2e测试是从用户角度出发,认为整个系统都是一个黑盒,只有UI暴露出来. angularjs的测试框架是采用protractor. 1.创建文件 首先创建一个项目文件夹test,然后再创建两个文件,一 ...

  2. Angularjs E2E test Report/CoverageReport - 使用Gulp

    上一篇(http://www.cnblogs.com/xiaoningz/p/7122633.html)使用grunt-protractor-coverage 做为覆盖率测试插件,如果项目的管理工具刚 ...

  3. Angularjs E2E test Report/CoverageReport

    前端Angularjs是一个很热门的框架,这篇是学习基于Angularjs的nodejs平台的E2E测试报告和E2E JS覆盖率报告.用到的都是现有的工具,只是一些配置的地方需要注意. 环境前提: 1 ...

  4. 使用Angular CLI进行单元测试和E2E测试

    第一篇文章是: "使用angular cli生成angular5项目" : http://www.cnblogs.com/cgzl/p/8594571.html 第二篇文章是: & ...

  5. E2E测试框架

    1. 目前E2E测试工具有哪些? 项目 Web Star puppeteer Chromium (~170Mb Mac, ~282Mb Linux, ~280Mb Win) 41427 nightma ...

  6. Storm自带测试案例的运行

    之前Storm安装之后,也知道了Storm的一些相关概念,那么怎么样才可以运行一个例子对Storm流式计算有一个感性的认识呢,那么下面来运行一个Storm安装目录自带的测试案例,我们的Storm安装在 ...

  7. 编写优美的GTest测试案例

    http://www.cnblogs.com/coderzh/archive/2010/01/09/beautiful-testcase.html 使用gtest也有很长一段时间了,这期间也积累了一些 ...

  8. nginx整合tomcat集群并做session共享----测试案例

    最近出于好奇心,研究了一下tomcat集群配置,并整合nginx,实现负载均衡,session共享,写篇记录,防止遗忘.---------菜鸡的自我修炼. 说明:博主采用一个web项目同时部署到两台t ...

  9. Webpack单元测试,e2e测试

    此篇文章是续 webpack多入口文件.热更新等体验,主要说明单元测试与e2e测试的基本配置以及相关应用. 一.单元测试 实现单元测试框架的搭建.es6语法的应用.以及测试覆盖率的引入. 1. 需要安 ...

随机推荐

  1. CCASS四种交收指令

    CCASS 提供了4种类型的指令:ATI: Account Transfer Instruction 账户转移指令,用于本券商各个仓位上的转移STI: Stock Segregate Account ...

  2. STUCTS LABLE ‘S BENEFIT

    {LJ?Dragon}[注]Struts标签的三个好处 RELATED LINKS 0.UTF-8 有无BOM的区别 UTF-8 BOM 06. 几款网页数据抓取软件 SOFTWARE_INTRODU ...

  3. JavaBean基础

    JavaBean的概念 JavaBean是一种可重复使用.且跨平台的软件组件.JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean:还有一种是没有用户界 ...

  4. readmine项目管理和缺陷跟踪工具

    官方网站:http://www.redmine.org/演示地址:http://demo.redmine.org/下载地址:http://www.redmine.org/projects/redmin ...

  5. Android 网络技术HTTP

    1.XML3种解析方式(DOM.SAX.PULL) 在网络上传输数据时最常用的格式有两种,XML 和JSON 这里首先明白什么是SAX是一个用于处理XML事件驱动的"推"模型,优点 ...

  6. TCP具体解释(3):重传、流量控制、拥塞控制……

    传输数据 在TCP的数据传送状态.非常多重要的机制保证了TCP的可靠性和强壮性.它们包括:使用序号.对收到的TCP报文段进行排序以及检測反复的数据:使用校验和来检測报文段的错误.使用确认和计时器来检測 ...

  7. ubuntu12.10中没有/etc/inittab文件探究

    1. 我们首先来看一下Linux系统开机启动过程: Ubuntu是Linux系统的衍生系统,其开机启动过程与上图相差不大,但是随着系统的不断发展,终究还是有不同的地方,下面,我们来了解一下Ubuntu ...

  8. Python之路,Day12 - 那就做个堡垒机吧

    Python之路,Day12 - 那就做个堡垒机吧   本节内容 项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多 ...

  9. cancel-ng-swipe-right-on-child

    <!DOCTYPE html> <html lang="en" ng-app="myapp"> <head> <met ...

  10. C# 实现文件夹的复制以及删除

    代码来源:http://blog.163.com/u_tommy_520/blog/static/20406104420147493933662/ http://www.cnblogs.com/lov ...