Всем привет! В предыдущем уроке мы рассмотрели создание простого Coded UI теста для вычисления суммы двух чисел используя стандартный калькулятор Windows. Теперь мы используем Data-Driven подход и как источник данных будем использовать .csv файл.
Создание источника данных
1. Возьмите предыдущий проект AutoQACodedUISample и добавьте в него data.csv.
2. Наполните .csv данными:
Обратите внимание, что важно сохранить файл .csv в правильной кодировке. Для этого выберите меню FILE в Visual Studio, выберите Advanced Save Options и Unicode (UTF-8 without signature) – Codepage 65001.
Также файл должен иметь право на копирование внути проекта. Для этого используйте окно свойств.
Источник данных мы создали. Теперь подключем его к нашему проекту.
Подключение источника данных к тестовому методу
Для связывания источника данных нужно добавить атрибут DataSource в существующей аннотации [TestMethod].
1 2 3 4 5 6 7 |
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\data.csv", "data#csv", DataAccessMethod.Sequential), DeploymentItem("data.csv"), TestMethod] public void CodedUITestMethod1() { // To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items. this.UIMap.AddTwoNumbers(); this.UIMap.ValidateSumTwoNumbers(); } |
Источник данных теперь доступен для использования в тестовом методе.
Использование данных с data.csv файла в coded UI тесте
1. Добавьте Microsoft.VisualStudio.TestTools.UITesting.WinControls в верхней части файла CodedUITest.cs:
1 |
using Microsoft.VisualStudio.TestTools.UITesting.WinControls; |
2. Добавьте TestContext.DataRow[] в методе CodedUITestMethod1(), который теперь будет получать значение с нашего источника. Значения с data.csv теперь будут присваиваться контролам, которые находятся с помощью SearchProperties:
1 2 3 4 5 6 7 8 9 |
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\data.csv", "data#csv", DataAccessMethod.Sequential), DeploymentItem("data.csv"), TestMethod] public void CodedUITestMethod1() { this.UIMap.UICalculatorWindow.UIItemWindow.UIItem7Button.SearchProperties[WinButton.PropertyNames.Name] = TestContext.DataRow["Num1"].ToString(); this.UIMap.UICalculatorWindow.UIItemWindow2.UIItem8Button.SearchProperties[WinButton.PropertyNames.Name] = TestContext.DataRow["Num2"].ToString(); this.UIMap.AddTwoNumbers(); this.UIMap.ValidateSumTwoNumbersExpectedValues.UIItem15TextDisplayText1 = TestContext.DataRow["Sum"].ToString(); this.UIMap.ValidateSumTwoNumbers(); } |
Для определения, какие именно свойства (search properties) использовать, нужно использовать Coded UI Test Editor.
Выберите действие на UI и определите соответствующий ему промапленый контрол UI. Например, кнопке “7” соответствует this.UIMap.UICalculatorWindow.UIItemWindow.UIItem7Button.
Присвойте этому значению название первой колонки UIItem7Button.SearchProperties[WinButton.PropertyNames.Name] = TestContext.DataRow[“Num1″].ToString(). В трех итерациях значение кнопок будет изменено 2, потом 7 и 1.
Запуск data-driven теста
Проверьте, что наш тест теперь data-driven, запустив тест снова.
Можно уидеть, что тест запустился в три итерации, используя данные с .csv файла. Проверки также работают и все итерации пройдены успешно.
Сам проект можно скачать по ссылке.