Внедрение Data Driven подхода с использованием XML-хранилищ данных

Внедрение Data Driven подхода с использованием XML-хранилищ данных

Всем привет. Сегодня хочу вам рассказать о том, как внедрять Data-Driven подход и в качестве источника данных использовать XML-файлы. Язык С#.

В нашем случае будут задействованы следующие классы, методы и файлы:

  • XML-файл c тестовыми данными (Login.xml) – логином и паролем для входа на сайт.
  • Test Data Model (LoginModel.cs) – модель со свойствами и полями наших тестовых данных, хранящихся в предыдущем файле.
  • Test Data Builder (TestDataBuilder.cs) – класс для доступа к данным с нашего XML-файла.
  • UI Test (LoginDataDrivenUsage()) – метод с аннотациями ‘DeploymentItem’ и ‘DataSource’, в котором непосредственно отрабатывается сценарий входа на сайт.

Для внедрения этой логики нам будет достаточно использовать проект Unit test в Visual Studio:

1. К нему нужно добавить наш XML-файл с данными:

XML_Adding

В этом файле в свойстве ‘Copy to Output Directory’ нужно выбрать ‘Copy if newer’:

XML_Properties

и скопировать тестовые данные:

Название XML-файла мы будем использовать далее в аннотации ‘DeploymentItem’. Вы можете заметить, что для входа на сайт будут взяты следующие данные: логин -‘QAUser’ и пароль – ‘autotest123′.

2. Следующим шагом будет создание модели DataModel со свойствами логина и пароля:

Обратите внимание, что мы должны использовать идентичные XML-файлу (UserName и UserPass) имена свойств.

3. Класс Test Data Builder:

Это готовый для использования класс, которые использует TestContext и DataModel, который позволяет получать объект DataModel со всеми тестовыми данными с XML.

4. UI Test.

Также нам понадобится абстрактный класс TestContext, который используется для хранения информации, передаваемой для тестов:

Теперь мы можем использовать тестовые данные в нашем UI тесте:

Где DataModels\Login.xml – путь к XML-файлу в иерархии классов

“ValidDates” – соответствующий тег с XML-файла, который определяет тестовые данные

var testData = TestDataBuilder.GetTestData(TestContext, new LoginModel()) - получение тестовых данных с XML-файла

_baseTests.LoginTest(testData) – использование тестовых данных в тестах

Сам метод LoginTest класса BaseTests принимает нашу модель:

Для удобства я разбил фреймворк на два подпроекта и покажу его часть:

data-driven

Спасибо за внимание!

RelatedPost