量角器和角度:如何测试在一个应用程序两页,一前一后? [英] Protractor and Angular: How to test two pages in an app, one after the other?
本文介绍了量角器和角度:如何测试在一个应用程序两页,一前一后?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在我的角度应用程序运行在两个单独的页面量角器测试: /仪表板
和 /条
。
的复杂之处在于我必须手动登录到应用程序。
目前我有这样的设置:
VAR LoginPage =功能(){
ptor = protractor.getInstance();
this.login =功能(URL){
ptor.get(URL);
ptor.findElement(protractor.By.model(电子邮件))的SendKeys(config.LOGIN_EMAIL)。
ptor.findElement(protractor.By.model('密码'))的SendKeys(config.LOGIN_PASS)。
ptor.findElement(protractor.By.tagName('按钮'))点击()。
};
};描述(仪表板,函数(){
的console.log('登录');
VAR loginPage =新LoginPage();
loginPage.login(config.DASHBOARD_URL);
的console.log('登录');
它('有一个标题',函数(){
的console.log('测试仪表板1');
标题= ptor.findElement(protractor.By.tagName(H1));
。期待(heading.getText())toEqual(config.DASHBOARD_HEADING);
});
});描述(文章插件',函数(){
的console.log('登录');
VAR loginPage =新LoginPage();
loginPage.login(config.ARTICLE_URL);
的console.log('登录');
它('有一个标题',函数(){
的console.log('测试第1条);
标题= ptor.findElement(protractor.By.tagName(H1));
。期待(heading.getText())toEqual(config.ARTICLES_HEADING);
});
});
这给了我下面的输出:
硒独立服务器开始在http://192.168.2.9:56791/wd/hub
在登录
LoginPage
登录
在登录
LoginPage
登录
测试仪表板1
Ftesting 1条
看起来好像两个描述
部分并行开球。我怎么可以强制下面的事件序列,同时还构建了code以合理的方式?
- 加载仪表板页
- 请在
- 运行测试仪表
- 加载文章页面(假设我们已经登录)
- 运行测试条
解决方案
描述(我的应用程序',函数(){
beforeEach(函数(){
登录()...
})
描述(仪表盘);
描述(的文章小部件)
});
I would like to run Protractor tests on two separate pages in my Angular app: /dashboard
and /articles
.
The complication is that I have to log in to the app manually.
Currently I have this setup:
var LoginPage = function() {
ptor = protractor.getInstance();
this.login = function(url) {
ptor.get(url);
ptor.findElement(protractor.By.model('email')).sendKeys(config.LOGIN_EMAIL);
ptor.findElement(protractor.By.model('password')).sendKeys(config.LOGIN_PASS);
ptor.findElement(protractor.By.tagName('button')).click();
};
};
describe('The dashboard', function() {
console.log('logging in');
var loginPage = new LoginPage();
loginPage.login(config.DASHBOARD_URL);
console.log('logged in');
it('has a heading', function() {
console.log('testing dashboard 1');
heading = ptor.findElement(protractor.By.tagName('h1'));
expect(heading.getText()).toEqual(config.DASHBOARD_HEADING);
});
});
describe('The article widget', function() {
console.log('logging in');
var loginPage = new LoginPage();
loginPage.login(config.ARTICLE_URL);
console.log('logged in');
it('has a heading', function() {
console.log('testing article 1');
heading = ptor.findElement(protractor.By.tagName('h1'));
expect(heading.getText()).toEqual(config.ARTICLES_HEADING);
});
});
This gives me the following output:
Selenium standalone server started at http://192.168.2.9:56791/wd/hub
logging in
LoginPage
logged in
logging in
LoginPage
logged in
testing dashboard 1
Ftesting article 1
It looks as though both the describe
sections are kicking off in parallel. How can I force the following sequence of events, while still structuring the code in a sensible way?
- Load dashboard page
- Log in
- Run dashboard tests
- Load article page (Assume we are already logged in)
- Run article tests
解决方案
describe('my app', function(){
beforeEach(function(){
login()...
})
describe('dashboard');
describe('the article widget')
});
这篇关于量角器和角度:如何测试在一个应用程序两页,一前一后?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文