Как сделать базовый межстраничный тест? Пример входа
Итак, я тестирую свою страницу входа с этим фрагментом кода
describe('Testing the login page', function (t) {
t.it('Should be possible to login', function (t) {
t.chain(
{
waitForCQ : '>> textfield[itemId=login]'
},
{
action : 'type',
target : '>> textfield[itemId=login]',
text : 'accountname'
},
{
action : 'type',
target : '>> textfield[itemId=password]',
text : 'passwd[ENTER]'
}
)
})
});
с этим harness.start() conf:
harness.start(
'010_sanity.t.js',
{
group : 'Login/Logout',
items : [
{
enablePageRedirect : true,
pageUrl : "https://mywebsite.com/Login",
url : "020_login.t.js"
},
{
enablePageRedirect : true,
pageUrl : "https://mywebsite.com/",
url : "021_logout.t.js"
}
]
},
...
);
И я столкнулся с проблемой. Даже если для параметра enablePageRedirect задано значение true, тесты, похоже, не сохраняются с первой страницы до следующей. Напротив, в области регистрации интерфейса тестирования сиесты (в середине) я вижу, что тест перезапускается с нуля, когда страница изменилась. С бесконечной спиннером.
Как сделать такой простой межстраничный тест с сиестой? Документ мне не очень помог: http://www.bryntum.com/docs/siesta/
заранее спасибо
1 ответ
Каждый тест должен начинаться с новой страницы и быть автономным, поэтому каждый из ваших тестов должен начинаться с нового входа в приложение. Включение перенаправления страниц просто означает, что после входа в систему приложение может продолжить тестирование после перехода на следующую страницу. Вот пример того, как мы пишем это в наших тестах:
test.chain(
// Enter username
{
action: 'type',
target: '#user_id',
text: 'ACCOUNTNAMEHERE'
},
// Enter password
{
action: 'type',
target: '#password',
text: 'PASSWORDHERE'
},
// Set up detection of the page changing.
// The trigger specifies what action will cause the
// page to change. The timeout is the maximum length
// to wait for the navigation to occur.
{
waitFor: 'PageLoad',
timeout: 20000,
trigger: {
click: 'input[type=submit]'
}
}
);