使用Protractor进行AngularJS e2e测试案例

环境:

[email protected]:karma-t01$ protractor --version
Version 3.0.0
[email protected]:karma-t01$ node -v
v4.2.2
[email protected]:karma-t01$ 
[email protected]:karma-t01$ webdriver-manager update
[email protected]:karma-t01$ webdriver-manager start

安装http-server:

[email protected]:karma-t01$ npm install -g http-server
[email protected]:karma-t01$ http-server    -p    8080

浏览器:Chrome 版本 46.0.2490.86 (64-bit)

目录结构:

[email protected]:karma-t01$ tree -L 2
.
├── 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构建测试工程

[email protected]:karma-t01$ webdriver-manager start
seleniumProcess.pid: 27021
13:17:58.939 INFO - Launching a standalone Selenium Server

(2)启动http服务

[email protected]:karma-t01$ http-server -p 8080
Starting up http-server, serving ./
Available on:
  http:127.0.0.1:8080
  http:192.168.0.177:8080
Hit CTRL-C to stop the server

(3)运行测试脚本

[email protected]:karma-t01$ protractor protractor.conf.js
Starting selenium standalone server...
[launcher] Running 1 instances of WebDriver
Selenium standalone server started at http://192.168.0.177:47286/wd/hub
Started
.

1 spec, 0 failures
Finished in 1.207 seconds
Shutting down selenium standalone server.
[launcher] 0 instance(s) of WebDriver still running
[launcher] chrome #1 passed
时间: 2024-10-12 17:25:26

使用Protractor进行AngularJS e2e测试案例的相关文章

Angularjs E2E test Report/CoverageReport

前端Angularjs是一个很热门的框架,这篇是学习基于Angularjs的nodejs平台的E2E测试报告和E2E JS覆盖率报告.用到的都是现有的工具,只是一些配置的地方需要注意. 环境前提: 1. nodejs 安装(https://nodejs.org/en/download/) 步骤: 1. npm init 创建一个nodejs工程. 2. 使用以下npm install 命令 下载node modules, 然后在package.json的scripts节点添加start命令如下:

Angularjs E2E test Report/CoverageReport - 使用Gulp

上一篇(http://www.cnblogs.com/xiaoningz/p/7122633.html)使用grunt-protractor-coverage 做为覆盖率测试插件,如果项目的管理工具刚好是grunt,那就完美了,不过有些项目是使用gulp做管理工具,那维护两套管理工具就有点资源浪费了,刚好gulp也有配套protractor的e2e测试覆盖插件,这篇文章就是如何使用gulp配套的插件做protractor e2e 覆盖率报告. 环境前提: 1. nodejs 安装(https:/

Angular单元测试与E2E测试

本文介绍了Angular单元测试和E2E测试的配置与测试方法.示例APP使用Angular 7 CLI创建,已配置好基础测试环境,生成了测试样例代码.默认,Angular单元测试使用Jasmine测试框架和Karma测试运行器,E2E测试使用Jasmine测试框架和Protractor端到端测试框架. 配置单元测试 Jasmine是一个用于测试JavaScript的行为驱动开发框架,不依赖于任何其他JavaScript框架.Karma是测试运行器,为开发人员提供了高效.真实的测试环境,支持多种浏

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

最近出于好奇心,研究了一下tomcat集群配置,并整合nginx,实现负载均衡,session共享,写篇记录,防止遗忘.---------菜鸡的自我修炼. 说明:博主采用一个web项目同时部署到两台tomcat下,(tomcat-A,tomca-B),使用nginx做反向代理,按照设置的权值,将请求分发到后台的tomcatA/tomcat-B,并且实现session共享. 配置好本地域名指向:修改host文件:添加 127.0.0.1  www.domain.com.cn 新建项目:tiny-d

[测试案例]页面CPU使用率测试

1. 场景描述 测试网站某页面注册表单,该表单包含若干个文本输入框以及两个密码输入框:登录密码和确认密码.登录密码只能由数字或字母组成,并且长度在6-20个字符之间,确认密码必须与登录密码完全一致,当满足以上所有条件后,才能成功提交注册表单,否则提交时将在不符合要求的输入框右侧提示对应的错误信息. 2. 问题说明 在Chrome浏览器下对登录密码和确认密码输入框进行反复输入测试时,发现浏览器的CPU占有率会不断上升,导致页面出现卡顿.无响应的情况,但是在相同浏览器下测试其他文本输入框或在其他浏览

(二)语音合成测试案例

上一章节大致描述了一下.NET Framework中的语音识别和语音合成的应用开发接口.接下来以一个测试案例来展示下SAPI的使用.以下案例均已VS2010 + Framework4.0为例. 用VS新建一个窗体应用程序.并添加引用. 测试程序界面布局如下: 下面是完成的代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.D

测试案例小问题

测试案例小问题

一个测试案例的分析

案例: 某软件公司在开发一个城镇居民保险系统时,在单元测试.集成测试阶段,为了追赶进度,开发人员与测试人员都没有介入测试工作. 系统测试阶段,测试小组借助缺陷管理工具和开发人员交互进行测试与缺陷修复工作.期间,发现"扭转文档无法归档"的严重错误,开发人员在修改时,认为难度太大,决定暂停修改,得到测试人员认可.在产品发布前,该问题在开发环境下得到解决. 回归测试结束后,开发人员把开发环境下的产品打包,发送给客户. 分析:在案例中,有几处显然不合理的地方: 1.测试介入太晚 2.回归测试做

软件工程--构建之法--功能测试 设计10个或者更多的测试案例完成对钉书钉的功能测试

设计10个或者更多的测试案例完成对钉书钉的功能测试 (1)使用不同的纸质材料厚度,使用相同规格钉书钉,查看钉书器是否正常工作 (2)使用不同规格的钉书钉,使用相同厚度的纸质材料,查看钉书器是否正常工作 (3)测试钉书器在不同的使用方式下使用,查看钉书器是否异常 (4)测试钉书器总的使用次数 (5)测试钉书器订材料后,美观次数 (6)测试钉书器钉材料后,不美观次数 (7)测试钉书器在不同温度条件下,查看钉书器是否正常工作 (8)测试钉书器在不同湿度条件下,查看钉书器是否正常工作 (9)使用不同材料