量角器在测试之间保持浏览器打开

时间:2018-04-12 19:30:19

标签: protractor

我必须测试需要登录的浏览器页面。有没有办法让浏览器在每个块之间保持打开状态,所以我不需要为每个块登录?

由于

2 个答案:

答案 0 :(得分:0)

量角器关闭不同测试文件之间的浏览器是设计的。但是,有几种方法可以解决您的问题。

1)将所有测试写入一个文件
自我解释,这将完成你想要做的事情,但只有你没有并行运行测试才能工作。这对你有用,但我建议使用第二个选项。您可以在同一个测试文件中包含多个描述,这有助于您在此路线中更具可读性。示例test.js文件:

describe('Testing login',function(){
    it('Should login',function(){
        //test here
    }); 
});
describe('Testing foo',function(){
    it('Should test foo here',function(){
        //test here
    });
    it('Should test foo here as well',function(){
        //test here
    });
});
describe('Testing bar',function(){
    it('Should test bar here',function(){
        //test here
    });
    it('Should test bar here as well',function(){
        //test here
    });
});

2)使用登录功能
这是我个人使用的。我有一个函数,我在每次登录的测试开始时调用。函数接受UsernamePassword。虽然这不会使浏览器保持打开状态,但我个人认为这是解决此问题的最佳方法。例如:
Test1.js:

const helper = require util.js;
const util = new helper;
describe('Testing foo',function(){
        beforeAll(function(){
            util.login();
        };
        it('Should test foo here',function(){
            //test here
        });
        it('Should test foo here as well',function(){
            //test here
        });
});

test2.js

const helper = require util.js;
const util = new helper;
describe('Testing bar',function(){
        beforeAll(function(){
            util.login();
        };
        it('Should test bar here',function(){
            //test here
        });
        it('Should test bar here as well',function(){
            //test here
        });
});

util.js中:

const helper = function(){
    this.login = function(){
        //do login here
    }
}

这是关于重用代码的useful stack post,它更深入地讲述了一些语法。

答案 1 :(得分:0)

有没有办法让浏览器在每个it块之间保持打开状态,所以我不需要为每个it块登录?

是:在启动量角器之前提供浏览器会话-在量角器术语中称为Attach

如果在启动量角器之前已启动浏览器会话,则量角器将不会关闭浏览器会话。

我创建了一个NPM软件包以轻松启动浏览器。让我知道这是否对您有帮助。

https://github.com/andreasmarkussen/webdriver-reuse-session