Как вызвать имена пользователей и пароль из файла фикстуры в тестовый сценарий в Cypress

У меня есть рабочий сценарий тестирования входа в систему. Я удалил свое имя пользователя и пароль для файла фикстуры, который затем хочу вызвать, чтобы заполнить поля имени пользователя и пароля. Может ли кто-нибудь указать мне в правильном направлении, как это должно быть сделано? Ниже приведен мой тестовый сценарий, в котором вызывается прибор для заполнения полей.

describe('My Login Test', function (){
it('Visit Risk App Landing Page', function (){
cy.visit('site url')
cy.get('button').click()
cy.get('a.auth0-lock-alternative-link').contains('Not your account?').click()
cy.get('input.auth0-lock-input').first()
.type(cy.fixture('loginUser').email)
cy.get('input.auth0-lock-input').last()
.type(cy.fixture('loginUser').password)
cy.get('button').click()
cy.url().should('eq','site url')
})
})

Какая у вас ошибка?

demouser123 02.05.2018 14:51
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
2 527
2

Ответы 2

Я бы рекомендовал использовать псевдоним прибора.

см .: Доступ к данным прибора

Сначала создайте локальную переменную для прибора:

cy.fixture('loginUser').as('myUser');

затем, когда вы хотите получить доступ к его свойствам, это просто this.myUser.email или что-то в этом роде. Это изменит ваш тест на:

.type(this.myUser.email)

Надеюсь, это поможет с вашими проблемами? Но, как упоминал demouser123, нам понадобится фактическая ошибка, чтобы помочь вам.

Я получаю другую ошибку, когда пробую разные методы, когда я пробую метод Стивенса: cy.get ('input.auth0-lock-input'). Last () cy.fixture ('loginUser'). As ('myUser' ) .type (this.myUser.email) Тест не запускается, и я получаю сообщение «TypeError: невозможно прочитать свойство 'email' of undefined»

Adam A 08.05.2018 11:55

Вы используете «Толстые стрелы»? Псевдонимы требуют стандартных функций. (Я сам на днях столкнулся с этим) См .: github.com/cypress-io/cypress/issues/1641

Steven Stark 09.05.2018 20:01

Мне ответил кто-то в чате gitter:

describe('My Login Test', function (){
it('Visit Risk App Landing Page', function (){
    cy.visit('https://bvt-riskassessment.lmkcloud.net')
    cy.get('button').click()
    cy.get('a.auth0-lock-alternative-link').contains('Not your account?').click()
    cy.fixture('loginUser').as('myUserFixture');
    cy.get('@myUserFixture').then(user => {
    cy.get('input.auth0-lock-input').first().type(user.email);
    cy.get('input.auth0-lock-input').last().type(user.password);
    cy.get('button').click()
    cy.url().should('eq','https://bvt-riskassessment.lmkcloud.net/workflow')

Теперь я могу войти в систему, используя это, не имея имени пользователя или пароля в каждом тестовом сценарии.

Другие вопросы по теме