e2e测试是从用户角度出发,认为整个系统都是一个黑盒,只有UI暴露出来。

angularjs的测试框架是采用protractor。

1、创建文件

首先创建一个项目文件夹test,然后再创建两个文件,一个是测试文件testbook.spec.js,另一个是配置文件testbook.conf.js

可以先在test文件夹下使用npm init,自动创建package.json文件,文件目录如下:

2、安装测试框架

直接使用npm下载protractor框架以及如下图的所有依赖。

3、直接上代码

配置文件testbook.conf.js

 const SpecReporter = require('jasmine-spec-reporter').SpecReporter;

 exports.config = {
// 测试框架
framework: 'jasmine',
// 测试服务器接入地址
// seleniumAddress: 'http:127.0.0.1:3000',
// 需要运行的测试程序代码文件列表
specs: ['testbook.spec.js'],
baseUrl: 'http://127.0.0.1:3000',
directConnect: true,
chromeDriver: './node_modules/.bin/chromedriver', jasmineNodeOpts: {
print: function () {} // 禁止默认的...输出
}, onPrepare: function () {
let specReporter = new SpecReporter({ // add jasmine-spec-reporter
spec: {
displayPending: true,
displayErrorMessages: true,
displayStacktrace: true
},
summary: {
displayErrorMessages: true
} });
// 初始化必须
// 一个是jasmine的运行环境,是单例模式jasmine.getEnv()
// 还有一个是将测试结果显示出来的addReporter(specReporter)
jasmine.getEnv().addReporter(specReporter);
}
}

测试文件testbook.spec.js

 // spec.js

 // describe定义一个测试案例集,it为单个测试案例
describe('Protractor Demo App', function () {
it('should have some text', function () {
// browser是通过protractor创建expect的全局变量,用于浏览器范围的命令控制,比如tonguebrowser.get进行导航
// browser.get 跳转到指定页面,还会重新刷新整个页面
browser.get('/');
// browser.pause(); // 让浏览器停下来
// 测试两者值是否相等,相等则测试通过,不相等则测试失败
expect(browser.getTitle()).toEqual('Book System');
});
});

上面代码简单测试了跳转到的指定页面的title是否和Book System相等。

运行命令为:./node_modules/.bin/protractor testbook.conf.js

运行成功的截图:

angularjs e2e测试初步学习(一)的更多相关文章

  1. 使用Protractor进行AngularJS e2e测试案例

    环境: y@y:karma-t01$ protractor --version Version y@y:karma-t01$ node -v v4.2.2 y@y:karma-t01$ y@y:kar ...

  2. Angularjs E2E test Report/CoverageReport

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

  3. 老周的ABP框架系列教程 -》 一、框架理论初步学习

    老周的ABP框架系列教程 -- 一.框架理论初步学习   1. ABP框架的来源与作用简介 1.1  简介 1.1.1       ABP框架全称为"ASP.NET Boilerplate ...

  4. e2e 测试(1)

    距离上一随笔,已经有一个月没有没写.到今天,刚刚好好,是学习e2e测试的一个月.今天有点时间可以总结一下这个月来的收获. 1.搭建e2e的测试环境 我是使用 Vue 构建项目,所以我也是通过Vue-c ...

  5. e2e 测试 出现的错误

    每次开始学习vue的新知识时,总在环境这一块出现很多坑.这次我来记录一下,我在搭建vue e2e测试框架是踏过的坑吧. 我们都只知道,使用vue init webpack 项目名字<项目名字不能 ...

  6. 语法分析器初步学习——LISP语法分析

    语法分析器初步学习——LISP语法分析 本文参考自vczh的<如何手写语法分析器>. LISP的表达式是按照前缀的形式写的,比如(1+2)*(3+4)在LISP中会写成(*(+ 1 2)( ...

  7. python预课04 列表,元祖,统计值计算示例,py文件转为EXE文件,爬虫初步学习

    列表,元组 #list l1 = [1, 2, 3, '高弟弟'] #定义一个列表 #增 l1.append("DSB") #最后增加"DSB"的元素 #删 l ...

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

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

  9. Httprunner初步学习

    一:简介 一直在技术博客上看到Httprunner测试框架,但始终不太明白这个框架的具体作用,今天就花点时间来初步学习了解一下. HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架, ...

随机推荐

  1. bzoj1853幸运数字——容斥原理

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1853 dfs实现容斥原理即可. 注意:若在init中写“cnt++”,则出来后需要先cnt-- ...

  2. Go 方法和接口

    转自:http://studygolang.com/topics/549 Go 没有类,但可以在结构体类型上定义方法. package main import ( "fmt" &q ...

  3. 导出数据到EXCEL并生成多个Sheet

    一.准备工作 引用:Microsoft.Office.Interop.Excel 准备多个DataTable数据添加到DataSet中. 二.代码 public void CreateExcel(Da ...

  4. css3文字与字体的相关样式

    给文字添加阴影——text-shadow属性 text-shadow属性是css2中定义的,在css2.1中删除了,在css3中恢复text-shadow:length length length c ...

  5. <c++primer plus>学习笔记1之第八章函数探幽

    1 c++内联函数 编译器将使用相应的函数代码替换函数调用,对于内联代码,函数无需跳到另一个位置执行代码再跳回来,所以内联函数运行速度比常规函数快. 但是代价是需要更多的内存. 使用场合: 执行函数代 ...

  6. minihttp安装配置ssl和c语言实现cgi

    概述:参考了大牛们的方法,结合自己的环境做了修改,主要是讲:minihttp安装配置ssl和c语言实现cgi接收字符串并且保存系统环境:centos6.5 开发版 依赖软件包: mini_httpd- ...

  7. storm事件管理器EventManager源码分析-event.clj

    storm事件管理器定义在event.clj中,主要功能就是通过独立线程执行"事件处理函数".我们可以将"事件处理函数"添加到EventManager的阻塞队列 ...

  8. C++11之lambda表达式应用

    应用 foreach语句中 #include <time.h> #include <algorithm> using namespace std; void func(int ...

  9. 文本主题抽取:用gensim训练LDA模型

    得知李航老师的<统计学习方法>出了第二版,我第一时间就买了.看了这本书的目录,非常高兴,好家伙,居然把主题模型都写了,还有pagerank.一路看到了马尔科夫蒙特卡罗方法和LDA主题模型这 ...

  10. 基于selenium+java的12306自动抢票

    import java.util.concurrent.TimeUnit; import org.openqa.selenium.By;import org.openqa.selenium.Keys; ...