Я видел только несколько человек, использующих концепцию POM при создании инфраструктуры автоматизации с использованием Cypress. Желательно ли следовать модели POM, это зависит от чтения следующей ссылки от команды. Я бы сказал, что это может зависеть от средств автоматизации / архитектуры. По мнению команды Cypress, это не рекомендуется, может быть дискуссионной темой, прочитайте это: https://www.cypress.io/blog/2019/01/03/stop-using-page-objects-and-start-using-app-actions/#
Мы можем объявить имена переменных в Cypress.env.json file
или cypress.json
файле, как показано ниже:
{
"weight": "85",
"height": "180",
"age": "35"
}
Затем, если вы хотите использовать их в test-spec
, создайте новую переменную и получите ее, как показано ниже в test-spec.
const t_weight = Cypress.env('weight');
const t_height = Cypress.env('height');
Теперь вы можете использовать переменную для соответствующего textbox
ввода страниц, как показано ниже:
cy.get('#someheighttextfieldID').type(t_weight);
cy.get('#someweighttextfieldID').type(t_height);
или получите его напрямую;
cy.get('#someweighttextfieldID').type(Cypress.env('weight'));
Пример:
/ * объявить переменные в файле 'test-spec.js' * /
const t_weight = Cypress.env('weight');
const t_height = Cypress.env('height');
// Cypress test - нижеприведенный тест для проверки действия и получения переменной в текстовое поле
describe('Cypress test to receive variable', function(){
it('Cypress test to receive variable', function(){
cy.visit('/')
cy.get('#someweighttextfieldID').type(t_weight);
cy.get('#someheighttextfieldID').type(t_height);
//even receive the variable straight away
cy.get('#someweighttextfieldID').type(Cypress.env('weight'));
})
});