angular 调试 js (分 karms protractor / test e2e unit )

首页订阅

Protractor端到端的AngularJS测试框架教程

2014年01月18日 分类:教程JavaScriptAngularJS

Protractor是一个建立在WebDriverJS基础上的端到端(E2E)的AngularJS JavaScript Web应用程序测试框架。Protractor全自动化真实的模拟用户在真正的浏览器中操作、运行并测试开发者的应用程序。

安装Protractor和WebDriver

通过npm进行全局安装protractor Node.js模块:

$ npm install -g [email protected] 或 $ sudo npm install -g [email protected]

通过webdriver-manager安装测试驱动及服务器:

webdriver-manager update

启动Selenium测试服务器

在另一个命令行控制台启动Selenium测试服务器:

webdriver-manager start

默认情况下,Selenium测试服务器接入地址为:http://localhost:4444/wd/hub

选用Mocha测试框架

通过npm进行全局安装chai Node.js模块:

npm install -g mocha

使用chai断言库

通过npm进行全局安装mocha Node.js模块:

npm install -g chai-as-promised

使用chai-as-promised异步代码增强插件

通过npm进行全局安装mocha Node.js模块:

npm install -g chai-as-promised

配置AngularJS测试用例

本位使用以下配置通过Chrome浏览器测试AngularJS应用程序:

exports.config = {
  // Selenium server 测试服务器接入地址
  SeleniumAddress: ‘http://localhost:4444/wd/hub‘,

  // 告知测试服务器的配置信息
  capabilities: {
    // 告知需要测试的浏览器类型:可以是 chrome、safari等
    ‘browserName‘: ‘chrome‘
  },

  // 需要运行的测试程序代码文件列表
  specs: [‘angularjs-e2e-spec.js‘],

  // 选择使用 Mocha 作为JavaScript语言的测试框架
  framework: ‘mocha‘

};

将上述配置代码保存并命名为conf.js

编写AngularJS测试程序代码

var chai = require(‘chai‘);
var chaiAsPromised = require(‘chai-as-promised‘);

chai.use(chaiAsPromised);
var expect = chai.expect;

describe(‘angularjs 首页‘, function() {
  it(‘应该欢迎一个具名的用户‘, function() {
    //要求浏览器访问网址http://www.angularjs.org
    browser.get(‘http://www.angularjs.org‘);

    //找到ng-model名为‘youname‘的HTML元素,要求浏览器键入名字
    element(by.model(‘yourName‘)).sendKeys(‘tanshuai‘);

    var greeting = element(by.binding(‘yourName‘));

     //取得结果并作断言测试
    expect(greeting.getText()).to.eventually.equal(‘Hello tanshuai!‘);
  });

  describe(‘待办事项‘, function() {
    var todoList;

    beforeEach(function() {
      browser.get(‘http://www.angularjs.org‘);

      todoList = element.all(by.repeater(‘todo in todos‘));
    });

    it(‘应该列出待办事项列表‘, function() {
      expect(todoList.count()).to.eventually.equal(2);
      expect(todoList.get(1).getText()).to.eventually.equal(‘build an angular app‘);
    });

    it(‘应该添加一个待办事项‘, function() {
      var addTodo = element(by.model(‘todoText‘));
      var addButton = element(by.css(‘[value="add"]‘));

      addTodo.sendKeys(‘编写一个Protractor测试‘);
      addButton.click();

      expect(todoList.count()).toEqual(3);
      expect(todoList.get(2).getText()).to.eventually.equal(‘编写一个Protractor测试‘);
    });
  });
});

将上述配置代码保存并命名为angularjs-e2e-spec.js

运行Protractor测试

运行指令:

protractor conf.js

相应的浏览器会被打开,载入网址网页完成后,即开始执行angularjs-e2e--spec.js测试程序。注意 www.angularjs.org 网站含有一些被审查的网址,因此国内载入等待较长,可能因超时导致测试失败,建议此时启用VPN连接该网站。

Protractor API应用程序接口

Protractor代码继承了WebDriver,因此任何WebDriver所具有的函数等均对Protractor有效。

WebDriver与Protractor类

  • get(string)

要求浏览器访问网址 string

关于教程

作者:tanshuai,电邮: [email protected]

为了更好的服务于开发者,本教程将会持续更新,勘误并完善内容。若发现本文的错误,建议或意见均可联系本文作者。

分享本文

TANSHUAI © 2016

时间: 2024-11-05 12:32:23

angular 调试 js (分 karms protractor / test e2e unit )的相关文章

ASP.NET—000:调试JS代码

ASP.ENT开发调试页面JS代码相信即使是菜鸟也会,不过我还是要啰嗦一下步骤.因为在页面使用JS太频繁了,而且也太容易出问题了.即使是高手在页面上写长篇的JS代码,也难免有bug出现,出了bug也只能乖乖调试.ASP.NET开发中,后台调试代码就不说了,直接代码行打断点就好了.前台就有点费事了.前期准备工作,一般分两种情况.一种是在工程中直接运行调试,譬如Visual studio2010以及以上的直接在vs里找到相应的页面直接运行就好了.另一种是部署到IIS上了,那么就得打开应用的页面,然后

使用Console命令调试JS

一.console 的对象常用的方法 1.console.log(object[, object, ...])使用频率最高的一条语句:向控制台输出一条消息.支持 C 语言 printf 式的格式化输出.当然,也可以不使用格式化输出来达到同样的目的 2.console.debug(object[, object, ...])向控制台输出一条信息,它包括一个指向该行代码位置的超链接. 3.console.info(object[, object, ...])向控制台输出一条信息,该信息包含一个表示“

angularJS (2) angular.min.js

angular.min.js /* AngularJS v1.2.29 (c) 2010-2014 Google, Inc. http://angularjs.org License: MIT*/(function(V,W,v){'use strict';function z(b){return function(){var a=arguments[0],c,a="["+(b?b+":":"")+a+"] http://errors.a

angular.fullpage.js指令的使用方法(详解)

接之前,jquery.fullpage在angular单页应用中存在重复初始化,分页器加倍问题,索性直接找到了angular.fullpage.js全屏滚动指令应用 angular-fullpage文档这里(将的不仔细自己做有点麻烦,不过有个demo) demo的却也不好看,直接上代码详解 1.首先得引用文件(当然angular.js必须的,省略) 2.导入angular.module内(fullPage.js放入,其他可以忽略自己用到的) 3. angular单页路由配置 state中加入(c

【angularjs基础】ng-repeat嵌套循环报错angular.min.js:89 Error: [ngRepeat:dupes]

再写嵌套循环的时候,提示一个错误 angular.min.js:89 Error: [ngRepeat:dupes] 代码如下 <table class="GridViewTable mtop5px " style="margin-top: 15px;" id="tabVipHallRegisterList" ng-app="" ng-controller="JSJ.CRM.AppFeedBackList.Re

Google Chrome调试js入门

1 我们要调的json数据见下图,这里不涉及和后台的交互. 2 我们在chrome中打开开发者工具,打开方式如下图,我们也可以使用快捷键F12来打开.选择我们要调试的文件,相信你能找到,^_^. 3 设置断点的设置,我在11行设置了断点,设置方法左侧点击即可,我太喜欢这个断点了,看起来真漂亮.刷新一下页面,执行如下图: 4 在向下执行之前,我们直接输入json(我们的对象名),看看对象结构,可以非常清晰的看到json到底是个什么东西,不用太多的解释,如下图: 5 按F10向下执行,我们依次输入我

谷歌浏览器怎么调试js 谷歌浏览器调试javascript教程

谷歌浏览器是一款由谷歌公司开发的浏览器.谷歌浏览器是一款基于其他开源软件所撰写的.下面小编为大家分享一篇谷歌浏览器调试javascript的教程,希望帮助大家 首先我们打开开发者工具,你可以直接在页面上点击右键,然后选择审查元素或者在Chrome的工具中找到或者你直接记住这个快捷方式: Ctrl+Shift+I (或者Ctrl+Shift+J直接打开控制台),或者直接按F12. 打开的开发者工具就长下面的样子,建议大家将开发者工具弹出作为一个独立的窗口: 1.Elements标签页 这个就是查看

Google Chrome 调试JS简单教程[更新]

题外话,刚开始我写这篇内容只是将自己了解的一些知识放上来,不巧的是我分析了我的来访日志,很多朋友都有这个需求,为了大家没有白来,我决定充实下这篇文章.最近更新时间2014-02-14 chrome版本: 32.0.1700.107 m 我是一名忠实Chrome迷,使用它已经快有2年的历史了,整体给我的感觉就是清爽,快速,简洁.又打小广告了……^_^,虽然我知道IE8+也有调试工具,包括火狐的什么XXBUG,但是我用过之后,个人还是十分偏爱chrome的debug. chrome对于在前端打拼的兄

vs2008 远程调试js

调试的前提:vs2008编写的OCX控件供JS调用,单ocx所依赖的库文件只有在远程电脑上有,此时需要远程调试程序 1.  .远程计算机安装远程调试器:Remote Debugger,可以直接复制VS2008安装目录C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger下的X86目录,(X64对应64位机); 2.对于本地和远程计算机都要保证DCOM分布式服务是打开的,可以通过控制面板->服务中打开 3