端到端测试,protractor测试的教程

之前我们介绍了如何测试某段js代码的逻辑是否正确,考虑的情况是否全面,但是在ui界面上我们每次做好的功能都要自己去填写内容,点击按钮等,那么是否存在自动化测试的工具呢,让这些事情可以自动完成,答案是肯定的,今天我们就来讲解如何自动测试我们界面上的功能。

1.安装依赖文件

  在任意的地方创建新的文件夹,例如test,进入到文件夹里,打开命令行或者gitbash;

  <1>安装protractor

npm install -g protractor

  <2>安装karma-jasmine

npm install --save-dev karma-jasmine

  <3>webdriver-manager 驱动

webdriver-manager update //浏览器的驱动

  <4>安装javaJDK

  由于运行的时候需要java环境,所以需要安装javaJDK,http://blog.csdn.net/bingiser/article/details/53375282,这个网址很详细的介绍了如何一步一步安装javaJDK。

2.简单介绍karma-jasmine的语法

  由于之前的单元测试介绍过karma-jasmine,所以这里简单介绍,如果有人没看过,去这里看 ,http://www.cnblogs.com/zhenfei-jiang/p/7027948.html

describe("测试加法", function () {//describe就是对这次测试的整体描述,如:加法测试
      it("3+5=8", function () {//it是对个测试的描述,如:3+5应该等于8
        expect(add(3, 5)).toEqual(8);//期待add(3,5)的结果等于8
      });
});

3.介绍几个常用的protractor api 具体的api去网站  http://www.protractortest.org/#/api,需要FQ。

  1. browser.get(‘http://baidu.com‘)导航到当前页面
  2. element找到元素
  3. element.all找到元素集合
  4. by 查找元素
    * by.binding : ng-bind, {{}}
    * by.model : ng-model       //例子:element(by.model(‘name‘)).sendKeys(‘haha‘),就是找到含有ng-model="name"的输入框然后填写haha;
    * by.repeater : ng-repeater
    * by.id : id选择器      //id选择器
    * by.css : css选择器
    * Array.get(2) : 选择第2个      //获取元素的第二个,因为可能某种选择器会得到很多的元素
  5. click 点击事件     //element(by.cssContainingText("button","OK")).click(),选择button的内容是OK的按钮点击
  6. sendKeys 书写内容
  7. 获取信息,判断
    * getText 获取文本
    * getSize 获取尺寸
    * getAttribute 获取属性
  8. getTitle
  9. sleep
  10. brower.wait()等待某元素出现   //这个常用的是跳转页面的时候要等待下一个页面某个元素出来才可以操作

4.编写你的protractor_conf.js

exports.config = {
    directConnect: true,
    capabilities: {
        ‘browserName‘: ‘chrome‘,
    },
    specs: [‘applications-test.js‘],     //运行的测试文件地址
    //framework: ‘jasmine2‘,
    jasmineNodeOpts: {
        showColors: true,
        defaultTimeoutInterval: 30000
    },
    //输出测试报告
    //onPrepare: function(){
    //    jasmine.getEnv().addReporter(
    //        new Jasmine2HtmlReporter({
    //            savePath: ‘e2e/‘,
    //            takeScreenshots: true,  //是否截屏
    //            takeScreenshotsOnlyOnFailures: true //测试用例执行失败时才截屏
    //        })
    //    );
    //}
};

5.编写的测试代码

describe(" checkoutLogin", function() {
    it(‘进入登入界面‘,function(){
        browser.get("http://localhost:106/#/login");//首先进入到这个网址
    })

    it(‘登入‘,function(){
        browser.wait(function () {//然后等待这个网页出现了ng-model="form.password"这个选择器,再执行其他的操作       return browser.isElementPresent(by.model("form.password"));//直到这个选择器的元素存在的时候     }, 2000);      element(by.model("form.username")).sendKeys("admin")//给ng-model="form.username"填写admin     element(by.model("form.password")).sendKeys("admin") //给ng-model="form.password"填写admin     element(by.css("input.loginbtn")).click()  //点击登入这个按钮   })})

6.启动命令

  <1>启动浏览器驱动  当前文件夹下打开cmd命令行或者gitbash

webdriver-manager start

  <2>启动测试代码  当前文件夹下打开另一个cmd命令行或者gitbash

protractpr protractor_conf.js

就可以看到自动会启动一个页面,跳转到你测试代码的地址,进行你一系列的操作。

7.踩过的坑

  <1>最好在你的protractor_conf.js的 browserName填写“chrome”,因为火狐的浏览器(firefox)可能存在报错的问题,并且你的chrome的版本需要高于58。

  <2>你的页面假设有透明的地方可能会遮住你的按钮,那么会导致你的按钮点击不到报错

时间: 2024-10-02 17:01:05

端到端测试,protractor测试的教程的相关文章

移动端WEB开发真机测试

关于移动端WEB开发真机测试亲身实验的一些体会. 之前的开发都用Chrom的模拟,但是效果毕竟不如真机,总结几点吧,至于详细的安装过程网上都有教程http://www.cnblogs.com/xiaohuochai/p/5512051.html,这里就不在赘述. BrowserSync是基于Node.js的,是一个Node模块,所以需要先安装nodejs(之后都在它之上进行的(*^__^*) 嘻嘻……) BrowserSync能让PC.各移动设备上的页面同时实时地响应文件的更改,而不用刷新操作~

系统测试与端到端测试:哪一个更适合选择?

在软件行业,我们总是在选择更快的版本和质量的版本之间的两难选择,但是两者之间总是有一个很好的平衡.我们都期望速度和质量同时,这是一个相当困难的一个. 测试下软件产品的寿命 什么是系统测试? 为什么系统测试很重要? 什么时候开始系统测试? 什么是端到端测试? 为什么端到端测试很重要? 什么时候开始端到端的测试? 系统测试与端到端测试的区别 系统测试还是端到端测试还是两者兼而有之? 测试下软件产品的寿命 一旦从客户获得业务需求,产品的生命周期就开始了.负责该项目的有关小组将对此进行彻底分析,并进一步

vue-cli 脚手架基于Nightwatch的端到端测试环境的过程

不同公司和组织之间的测试效率迥异.在这个富交互和响应式处理随处可见的时代,很多组织都使用敏捷的方式来开发应用,因此测试自动化也成为软件项目的必备部分.测试自动化意味着使用软件工具来反复运行项目中的测试,并为回归测试提供反馈. 端到端测试又简称E2E(End-To-End test)测试,它不同于单元测试侧重于检验函数的输出结果,端到端测试将尽可能从用户的视角,对真实系统的访问行为进行仿真.对于Web应用来说,这意味着需要打开浏览器.加载页面.运行JavaScript,以及进行与DOM交互等操作.

应用测试中的弱网络模拟测试-微信测试工程师手把手教程

应用测试中的弱网络模拟测试-微信测试工程师手把手教程 优测小优有话说: app研发不同于实验室里做研究,哪里有"理想环境".理想里,用户用着性能卓越的手机,连着畅通无阻的wifi网络.现实是,他们可能正用着你闻所未闻的机型,穿梭于地铁.公交.火车.乡间.大山-.. 信号"若隐若现,扑朔迷离""我去!又crash了!""唉,怎么又连不上网了,其他app好好的啊."这大概就是理想与现实之间的差距吧. 机型碎片化的问题,腾讯优测通过

CentOS6.5 从源码编译安装 GCC-4.9.1 全程实录,包含测试使用《图文教程》

前言 GCC(GNU Compiler Collection,GNU编译器合集)是linux以及其他类UNIX平台上进行开源项目,软件开发等必不可少的工具链组成之一(工具链的其他成员包括 binutils,Glibc,libstdc++ 等) 另外,对于程序员以及系统管理员而言,经常需要从软件的源码手动编译安装,而不论是configure脚本,还是make工具/makefile文件,最终都需要调用gcc(或者其它编译器)来进行实际的编译工作,因此,经常需要使用gcc的新版特性,并且与旧版gcc共

前端测试框架Jest系列教程 -- Expect(验证)

写在前面 在编写测试时,我们通常需要检查值是否满足某些条件,Jest中提供的expect允许你访问很多“Matchers”,这些“匹配器”允许您验证不同的东西. Expect 可以验证什么 Jest中提供了如下的验证方法: expect(value) expect.extend(matchers) expect.anything() expect.any(constructor) expect.arrayContaining(array) expect.assertions(number) ex

Spring Boot -05- 多模块结构项目构建与测试(详细图文教程)IDEA 版

Spring Boot -05- 多模块结构项目构建与测试(详细图文教程)IDEA 版 百度很多博客都不详细,弄了半天才把 Spring Boot 多模块项目构建开发整的差不多,特地重新创建配置,记录一下,也分享给有需要的人 本篇也会非常详细的介绍涉及的基础知识点,更多都写在注释上了 先放成功截图: (1)项目结构: (2)启动: (3)测试主子模块: (4)测试子模块依赖: 第一步:创建父模块,子模块 (1)打开创建项目窗口,点击 Create New Project (2)填写 (3)填写

API测试利器postMan 使用教程

自从开始做API开发之后,我就在寻找合适的API测试工具.一开始不是很想用Chrome扩展,用的 WizTools 的工具,后来试过一次 Postman 之后就停不下来了,还买了付费的Jetpacks.推出Team Sync Beta之后我又把这个工具推广给团队,作为API文档使用.看到中文网络上关于这个工具的文章并不多,于是决定写一篇小文介绍一下. 一.基本功能 Postman的功能在 文档 中有介绍.不过文档略啰嗦,这里简单介绍一下主界面,入门功能就都提到了. Collections:在Po

沧海一声笑,移动应用的CRASH原因我找到! --记最新款数字化测试“星云测试“的使用攻略

沧海一声笑,移动应用的CRASH原因我找到! --记最新款数字化测试"星云测试"的使用攻略 世界进步那么快,很多新鲜的点子层出不穷,于是我们创业,我们做最酷的手机应用,做最轰炸的应用推广.不加国际友人,仅咱泱泱大中华14亿人口,智能手机用户目前就已经超过5亿人,并还在继续疯长中!据说到2015年1月,仅我们中国的主要应用商店APP应用累计超过400万个.感觉像我们一样优秀的IT天才们的春天已经到来!就凭咱的脑子和实力,从各种大众脸的App应用中脱颖而出那是必然的!我们肯定是笑到最后的那

详解APM数据采样与端到端

高驰涛 云智慧首席架构师 本文整理自GOPS2016全球运维大会 上海站APM专场 云智慧首席架构师高驰涛的演讲. 高驰涛:今天咱们的专场是APM专场,我相信在座的其实对APM这个东西肯定是了解的,要不然不会过来,APM我今天会从几个层面聊一下,因为今天的时间非常有限,也不占用大家太多的时间,我只就APM里面的一个小点和大家说一下,这个其实是我们的一些应用的实践,就是我们在APM这个行业里面的一些实践,其实像刚才这两位男神和丹姐聊的这个范围没有提到APM,其实就是做APM的事情.这个二维码是我的