使用Protractor进行AngularJS e2e测试案例

时间:2023-03-09 23:36:35
使用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