protractor端到端测试例子

Posted 下辈子当座桥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
    })
})

  

以上是关于protractor端到端测试例子的主要内容,如果未能解决你的问题,请参考以下文章

自动化测试--protractor

在端到端测试中捕获服务器 JSON 响应

Protractor e2e 测试登录重定向

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

端到端测试中遗留应用程序的代码覆盖率

使用量角器显示测试结果摘要