protractor端到端测试例子

protractor_conf.js文件:

exports.config = {
    directConnect: true,
    capabilities: {
        ‘browserName‘: ‘chrome‘,
        "chromeOptions" : {
            args: ["--window-size=2000,2000"],
        }
    },
    specs: [‘test-organization.js‘],     //运行的测试文件地址
    jasmineNodeOpts: {
        showColors: true,
        defaultTimeoutInterval: 30000
    },
};

  测试文件:

/**
 * Created by lifei on 2017/6/27.
 */

var name= Math.floor(Math.random()*1000011)
function loginFunc(address){       //登录
    browser.get(address);
    element(by.model("form.username")).sendKeys("admin");
    element(by.model("form.password")).sendKeys("admin");
    element(by.css("input.loginbtn")).click();
    var userName = element(by.binding("user.name")).getText();
    expect(userName).toEqual("admin");
}
function save(save){        //点击完成按钮
    element(by.cssContainingText("button",save)).click()//完成
    browser.wait(function () {
        return browser.isElementPresent(element(by.css("button.confirm")));
    }, 2000);
    element(by.css("button.confirm")).click();
}

describe("user", function(){
    beforeEach(function(){
        browser.sleep(1000);
    })
    it("login", function(){
        loginFunc("http://localhost:8004/src/#/login")
    });
    it("orization", function(){
        browser.wait(function () {
            return browser.isElementPresent(element(by.cssContainingText(".title"," 网络管理 ")));
        }, 2000);
        element(by.cssContainingText(".title"," 统一配置 ")).click();
    })
    it("create", function(){
        browser.wait(function () {
            return browser.isElementPresent(element(by.cssContainingText("button","创建用户")));
        }, 2000);
        element(by.cssContainingText("button","创建用户")).click();

        element(by.model("form.name")).sendKeys(name);           //用户名
        element(by.model("form.password")).sendKeys("1111");        //密码
        element(by.model("form.cpassword")).sendKeys("1111");       //重复密码
        element.all(by.repeater("p in projects")).get(2).click();   //选择租户
        element(by.cssContainingText("button", "编辑角色")).click();//选择角色
        browser.sleep(1000);
        element.all(by.repeater("x in roles")).get(4).click();
        element(by.cssContainingText("button", "确定")).click();
        save("提交");
        //验证
        var service = element.all(by.repeater("x in $data")).get(0).$$("a").get(0).getText();
        expect(service).toEqual("lifei")
    });

    it("edit", function() {
        browser.sleep(2000);
        element.all(by.repeater("x in $data")).get(0).$$("a").get(0).click()
        element(by.cssContainingText("button", "编辑角色")).click();//选择角色
        browser.sleep(1000);
        element.all(by.repeater("x in roles")).get(0).click();
        element(by.cssContainingText("button", "确定")).click();
        element(by.cssContainingText("button","提交")).click();
        browser.sleep(2000)
        element(by.cssContainingText("button","确定!")).click();
        browser.sleep(2000)
        element(by.cssContainingText("button","OK")).click();
        browser.sleep(2000)
        //返回
        element(by.cssContainingText("a","组织管理")).click();
        service = element.all(by.repeater("x in $data")).get(0).$$("td").get(2).getText();
        expect(service).toEqual("testtttt");
    });
    it("deleteUser", function(){
        var number = element.all(by.repeater("x in $data")).count()
         expect(number).toBe(1);
        element.all(by.repeater("x in $data")).get(3).element(by.css("button.dropdown-toggle")).click();
        element.all(by.repeater("x in $data")).get(3).element(by.cssContainingText("a","删除")).click();
        browser.sleep(2000)
        element(by.cssContainingText("button","确定!")).click();
       browser.sleep(2000)
        element(by.cssContainingText("button","OK")).click();

        var name = element.all(by.repeater("x in $data")).get(0).$$("a").get(0).getText();
        expect(name).toEqual("lifei");

    })
    afterEach(function(){
        browser.sleep(1000);
    })
})

  

时间: 2024-10-06 10:17:32

protractor端到端测试例子的相关文章

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

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

移动web开发之移动端真机测试

显示目录 目录 [1]特性 [2]安装 [3]设置[4]移动端 前面的话 chrome的开发者工具可以很好地做好模拟工作,但毕竟模拟和实际还是有差别的.所以,真机测试是一定要做的,如何高效地进行真机测试呢.个人感觉,还是BrowserSync用得比较称手.本文将详细介绍如何应用BrowserSync进行移动端真机测试 特性 BrowserSync能让PC.各移动设备上的页面同时实时地响应文件的更改,而不用刷新操作.而且,当在其他一个设备上进行点击等行为时,该行为也会同步到其他浏览器中 安装 Br

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

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

如何做好 Android 端音视频测试?

在用户眼中,优秀的音视频产品应该具有清晰.低延时.流畅.秒开.抗丢包.高音效等特征.为了满足用户以上要求,网易云信的工程师通过自建源站,在SDK端为了适应网络优化进行QoS优化,对视频编码器进行优化,同时对音频算法进行优化. 推荐阅读 <短视频技术详解:Android端的短视频开发技术> <如何快速实现移动端短视频功能?> 弱网环境测试 网易云信直播项目上线后,出现了音视频卡顿的问题,音视频卡顿现象通常出现在网络条件不是特别理想的情况,一般直播画面频繁出现缓冲标志或者直播画面一卡一

详解APM数据采样与端到端

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

Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键?

本文主要介绍WebRTC端到端监控(我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:blackerteam 或 webrtcorgcn). callstats是一家做实时通讯性能测量的公司,他们博客里面提到了实时通讯过程中性能的重要性,下面是博客内容: 性能监控是系统和服务开发的一个重要方面,它可以帮助我们检测和诊断性能问题,并有助于维护系统的高可用性.现如今工程团队都基于数据

基于python语言的tensorflow的‘端到端’的字符型验证码识别源码整理(github源码分享)

基于python语言的tensorflow的‘端到端’的字符型验证码识别 1   Abstract 验证码(CAPTCHA)的诞生本身是为了自动区分 自然人 和 机器人 的一套公开方法, 但是近几年的人工智能技术的发展,传统的字符验证已经形同虚设. 所以,大家一方面研究和学习此代码时,另外一方面也要警惕自己的互联网系统的web安全问题. Keywords: 人工智能,Python,字符验证码,CAPTCHA,识别,tensorflow,CNN,深度学习 2   Introduction 全自动区

Android ListView分页加载(服务端+android端)Demo

Android ListView分页加载功能 在实际开发中经常用到,是每个开发者必须掌握的内容,本Demo给出了服务端+Android端的两者的代码,并成功通过了测试. 服务端使用MyEclipse,Android端使用Eclipse. 实现效果图: 服务端一共100条数据,共分四页,每页有25条数据. 源代码: 服务端: 需要导入图中这几个jar包. 在运行Android端代码前,需要开启服务端: 下面先给出服务端的代码: 类EmpDataSource: package com.android

利用Oracle RUEI+EM12c进行应用的“端到端”性能诊断

概述 我们知道,影响一个B/S应用性能的因素,粗略地说,有以下几个大的环节: 1. 客户端环节 2. 网络环节(可能包括WAN和LAN) 3. 应用及中间层环节 4. 数据库层环节 能够对各个环节的问题进行"贯穿"的诊断,才能算是"端到端"的诊断. 能够进行这种类型的诊断的工具很多,我们后面会分别介绍,今天只是给大家看看利用Oracle的工具软件进行从最前端到最后端的应用性能诊断的例子. 涉及的Oracle软件产品有以下几个: RUEI(真是的客户体验洞察) EM1

谷歌推出端对端邮件加密工具:对抗NSA监控

新浪科技讯 北京时间6月4日早间消息,谷歌周二发布了一个新的Chrome浏览器扩展的源代码,可以方便用户对电子邮件进行加密,使得美国国家安全局(以下简称"NSA")等情报机构的监听难度大幅增加. <<<-------------  <_< 向左看 这款名为End-to-End的加密工具使用OpenPGP开源加密程序编写,可以在用户的电子邮件离开浏览器后对其加密,直到被收件人解密.该工具还可以方便用户读取发送到其电子邮件服务器中的加密信息.不过,发送和接受邮