Как мы можем сделать кипарис-скрипты легко поддерживаемыми, как POM, в других инструментах, таких как selenium - PullRequest
0 голосов
/ 10 января 2019

Это всего лишь общее пояснение о построении фреймворка с использованием cypress.io. В кипарисах мы можем написать тестовый фреймворк, подобный объектной модели страницы в селене? Эти модели облегчают поддержание тестов в нашей жизни. Например, если идентификатор или класс конкретного элемента, который используется в нескольких тестах / файлах, изменился с новой версией приложения-в кипарисе, трудно перейти к нескольким тестовым файлам / тестам и изменить идентификатор правильно? Можем ли мы следовать той же концепции объектной модели страницы, как объявление всех элементов в качестве переменных на каждой странице и использование имен переменных в тестах / функциях? Также можем ли мы использовать эти переменные в разных тестовых файлах .js? Если да - пожалуйста, дайте образец Спасибо

1 Ответ

0 голосов
/ 10 января 2019

Я видел только несколько человек, использующих концепцию 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'));

  })
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...