Я тестирую сайт, который требует аутентификации с разными пользователями. Он работает большую часть времени, но иногда происходит сбой входа в систему, и Testcafé не обнаруживает его перед запуском реального тестового кода. Вместо того, чтобы выдавать ошибку в метод входа в систему, происходит сбой при поиске элемента DOM на тестовой странице. Таким образом, он хранит неверную информацию для входа в систему, и другие тесты с тем же пользователем также не пройдут.
Я знаю способ обнаружения ошибки входа в систему на моем веб-сайте, но не могу сказать Testcafé:
«Привет! Что-то не так добавляется при входе в систему, не сохраняйте информацию для этого пользователя и повторите попытку в следующих тестах»
EDIT:
Вместо использования жестко закодированной информации для входа в систему я использую отдельный файл logins.ts
со следующей структурой и адаптирую его для добавления полей loggedIn
и role
:
adminUserCredentials: { login: 'mylogin', pwd: 'mypass', role: null, loggedIn: false }
Тогда я использую его следующим образом:
function createUserForSpecificEnv(user: User, baseUrl: string): Role {
if(!user.loggedIn) {
user.role = Role(baseUrl, async t => {
await t
.wait(1000)
.typeText('#loginInput', user.login)
.typeText('#passwordInput', user.pwd)
.click('#Btn')
if(await Selector('#user-info').visible) {
user.loggedIn = true
}
})
}
return user.role
}
const adminUserRole = getRole(adminUserCredentials)
test("test 1", async t => {
t.useRole(adminUserRole)
}) // The test go on the login page, auth failed (expected) and can't find #user-info (expected)
test("test 2", async t => {
t.useRole(adminUserRole)
}) // The test doesn't go to the login page and directly says : can't find #user-info
Но это все еще не работает ... TestCafe пытается войти в первый тест, а затем напрямую использует ту же самую регистрационную информацию.
Любая помощь будет принята с благодарностью! Спасибо :-)
РЕДАКТИРОВАТЬ 2
Я проясняю тот факт, что я использую переменную для хранения роли (см. Комментарии)