Робота з Test Studio
У цьому швидкому огляді, ви створюватимете тести для компонованої програми під назвою Kudos. Крім того, ви зможете дізнатися про основні поняття тестування, ознайомитися з ними та застосовувати їх для створення тестів для компонованих програм. Демонстраційна програма Kudos — це частина набору програм для мотивації співробітників, який можна завантажити зі Стартового комплекту взаємодії працівників.
Перегляньте це відео та дізнайтеся, як працювати з Test Studio
Відкрийте Test Studio
Увійти до Power Apps.
Створіть нову програму або відредагуйте наявну програму.
Збережіть програму до Power Apps, щоб відкрити Test Studio.
Примітка
Перш ніж писати тести для програми, необхідно зберегти програму.
Виберіть Розширені інструменти в області переходів ліворуч.
Виберіть Відкрити тести, щоб відкрити Test Studio для цієї програми. Ця дія відкриває Test Studio в новій вкладці браузера.
Примітка
Тести публікуються та зберігаються в пакеті програм. Експортування та імпортування пакета компонованої програми до іншого середовища також включатиме всі визначення тестів, таких, як тестові набори та тестові випадки, створені вами.
Створення тестового набору
За замовчуванням у Test Studio створюватиметься тестовий набір і тестовий випадок. Тестові набори використовуються для впорядкування тестових випадків. Програма може включати один або кілька тестових наборів. Ви можете почати писати тести негайно, використовуючи тестовий набір і випадки за замовчуванням, або створити новий тестовий набір.
Виберіть Новий набір.
Оновіть Назву та опис тестового набору, вибравши поля в основній сітці.
Створення тестового випадку
Залежно від способу впорядкування або групування тестів, ви можете створити кілька тестових випадків у тестовому наборі. Кожен випадок може слугувати для тестування певної функції або підмножини функціональних можливостей у вашій програмі.
- Виберіть тестовий набір.
- У верхньому меню виберіть Новий випадок, щоб створити новий випадок.
- Оновіть Назву та опис тестового випадку, вибравши поля в основній сітці.
Запис тестового випадку
Тестовий випадок складається з тестових кроків, які містять дії. Тестові дії складаються із використанням виразів Power Apps, які виконують певне завдання. Використовуючи засіб запису, ви можете автоматично створювати тестові кроки під час взаємодії з програмою. Після завершення запису ви можете змінити тестовий випадок, додати нові кроки, видалити кроки та написати тестові твердження, щоб перевірити результат тесту.
Примітка
У режимі запису можна відтворювати тільки опубліковані програми. Опублікуйте усі останні зміни, внесені в програму, перш ніж почати запис тестового випадку. Запис без публікації нещодавніх змін призведе до того, що у режимі запису відтворюватиметься остання опублікована версія програми.
Виберіть Запис у верхньому меню. Ця дія відкриває опубліковану програму в режимі запису в новій вкладці браузера.
Важливо
Запис, запущений для наявного тестового випадку, скасовує всі тестові кроки, що вже були присутні.
Взаємодійте з програмою. Ваші дії будуть записуватись в області ліворуч.
Після завершення виберіть Готово. Ви можете також вибрати Скасувати, щоб повернутися до Test Studio, не зберігаючи ваші взаємодії.
Перегляньте тестові кроки і вирази, які було автоматично створено у Test Studio.
За необхідності відредагуйте текст опису кроку в основній сітці. Крім того, ви можете оновити дії для тестового кроку, вибравши відповідну формулу в основній сітці.
Додавання тестових кроків та тестових тверджень
Кожен тестовий випадок повинен мати очікуваний результат. У прикладі Kudos один з очікуваних результатів надсилання пошани — це створення нового запису у базі даних Microsoft Dataverse (Dataverse). Тепер можна оновити тестовий випадок і додати інші тестові кроки, щоб перевірити, чи запис створено успішно.
Виконайте наведені нижче кроки, щоб підтвердити успішне створення запису.
- Створіть нову змінну для підрахунку пошан у базі даних на початку тестового випадку.
- Створіть іншу змінну для підрахунку пошан у базі даних наприкінці тестового випадку.
- Напишіть вираз тестового твердження, щоб перевірити збільшення на одиницю. Якщо кількість не збільшується на один, то тестове твердження не буде виконано, як і ваш тестовий випадок.
Щоб додати тестові кроки та тестові твердження в програмі Kudos, виконайте зазначені нижче дії.
Виберіть Крок 1 або крок, перед яким потрібно вставити новий крок.
У верхньому меню виберіть Вставити крок вище, або виберіть цей варіант у активному рядку. Ця діє створює порожній крок.
Примітка
Коли ви вибираєте Вставити крок вище, над поточним кроком додається новий порожній крок. Ви можете використовувати також і дії Assert, SetProperty, Select або Trace. Це додасть крок із формулою для відповідної дії, яку можна редагувати.
Оновіть опис кроку. Наприклад, «Порахувати окремі похвали у базі даних».
Перш ніж запускати тестування, введіть вираз або формулу, що підрахує записи в базі даних, в поле дії.
Ви можете використовувати будь-який підтримуваний вираз. Крім того, можна надсилати запити до будь-яких джерел даних, колекцій, змінних або запускати потоки, що містяться в програмі, і створювати нові глобальні змінні чи колекції для використання в тестах.
Set(kudosBeforeTest, CountRows(Filter(Kudos, Receiver.Email = "someone@example.com")))```
Select Step 2 or the step above which you want to insert a new step.
Select Insert a step above from the top menu or by selecting the option from the active row. This action creates an empty step.
Enter an expression or formula in the action input to Trace and write the kudosBeforeTest value to test the results record.
Trace("kudosBeforeTest : " & kudosBeforeTest);
Перейдіть донизу тестового випадку вставте новий крок, який рахуватиме записи у базі даних після завершення тестування.
Set(kudosAfterTest, CountRows(Filter(Kudos, Receiver.Email = "someone@example.com")))```
Add a final step to validate that the record count in the database has increased by a count of 1, and enter the following assertion action to verify:
Assert(kudosAfterTest = kudosBeforeTest + 1, "Kudos count incorrect. Expected : " & kudosBeforeTest + 1 & " Actual :" & kudosAfterTest)
Збережіть тестовий випадок (у меню згори праворуч в Test Studio).
Відтворення тестового випадку
Записане тестування можна відтворювати для перевірки функціональних можливостей програми. Ви можете відтворити усі тести з одного тестового набору або окремий тестовий випадок.
Перш ніж відтворювати записи для останніх змін, необхідно опублікувати програму.
Важливо
Якщо пропустити публікацію, відтворення запису не враховуватиме останніх змін в тестуванні. До програми застосовуватиметься останній опублікований тестовий випадок або тестовий набір.
Виберіть Опублікувати, щоб автоматично зберегти та опублікувати тест.
Виберіть тестовий набір або окремий тестовий випадок.
Виберіть Відтворити. Опублікована програма відкриється в режимі Відтворення, і ви побачите, як автоматично відтворюються ваші кроки тестування. Зелена галочка вказує на те, що тестовий крок було виконано успішно. Якщо крок завершається помилкою, відобразиться червоний індикатор помилки і повідомлення про помилку.
Виберіть Готово, щоб повернутися до Test Studio.
Невдале твердження
У цьому розділі ми змінимо тестове твердження, щоб побачити, що відбувається, коли тестування невдале.
Відредагуйте крок твердження, вибравши поле із виразом.
Змініть у тестовій дії
+ 1
на+ 2
. Це оновлення означає, що цей тест очікує на створення двох записів, а це не так. Якщо тестування успішне, має створюватись лише один запис у базі даних.Assert(kudosAfterTest = kudosBeforeTest + 2, "Kudos count incorrect. Expected : " & kudosBeforeTest + 2 & " Actual :" & kudosAfterTest)
Виберіть Опублікувати.
Виберіть Відтворити.
Перегляньте, як відтворюється тестування. Заключний крок тепер невдалий і показує помилку, а також повідомлення, яке ви вказали на кроці твердження.
Відтворення тестувань у браузері
Можна скопіювати посилання, щоб відтворити тест в окремому браузері за межами Test Studio. Це допомагає інтегрувати тести в безперервний процес створення та випуску, як-от Azure DevOps.
Посилання на відтворення для вибраного тестування є постійним. Воно не змінюється для конкретного тестового набору або тестового випадку. Ви можете оновлювати тестування, не змінюючи процес розробки та випуску.
Щоб відтворити тестування в браузері, виконайте зазначені нижче дії.
Виберіть тестовий набір або тестову справу в області праворуч.
Виберіть Копіювати посилання на відтворення.
.
Відобразиться запит на публікацію тестів за наявності неопублікованих змін.
Ви можете пропустити процес публікації та скопіювати посилання на гру. Якщо пропустити публікацію, нові зміни до тестування не відтворяться.
.
Відкрийте веб-переглядач і вставте URL-адресу в адресний рядок, щоб відтворити тестування.
Перегляньте, як відтворюється ваше тестування.
Настроювання тестів
Властивість OnTestCaseStart тестового набору можна використовувати для настроювання вашого тестування. Вираз, введений для цієї властивості, запускається для кожного тестового випадку в наборі, перш ніж почнеться виконання випадку. OnTestCaseStart допомагає уникнути написання одних і тих самих тестових кроків на початку кожного випадку. Цю властивість можна налаштувати на виконання завдань із настроювання, які є спільними для всіх випадків у наборі, наприклад:
- Завжди починати виконання тестів на першому екрані.
- Виконувати ініціалізацію спільних колекцій або змінних.
- Отримувати тестові дані з джерела даних для поточного запущеного тесту
Запис TestCaseInfo містить докладну інформацію про тест, який виконується. Він містить такі властивості:
- TestCaseName — назва тестового випадку.
- TestCaseDescription – опис тестового випадку.
- TestCaseId — ідентифікатор тестового випадку.
- TestSuiteName — назва тестового набору, до якого належить випадок.
- TestSuiteDescription – опис тестового набору.
- TestSuiteId — ідентифікатор тестового набору, до якого належить випадок.
У наведеному нижче прикладі можна настроїти властивість OnTestCaseStart, щоб кожен тестовий випадок починався з першого екрана в програмі. Крім того, можна отримати тестові дані з джерела даних, на які можна посилатися в кроках для тестового випадку.
Виберіть Тестування в області ліворуч або Перегляд у заголовку набору.
Виберіть дію OnTestCaseStart.
Введіть вираз для переходу до першого екрана та отримання тестових даних для вашого тестування.
//Start every cases on the first screen in the Kudos app Navigate('Dashboard Screen'); //Initialize my test data for the current case. Set(currentTestData, LookUp(KudosTestData, TestCase = TestCaseInfo.TestCaseName)); //Set kudosBeforeTest to 0 Set(kudosBeforeTest, 0)
Обробка результатів тестування
Панель тестування, яка відображається під час відтворення тестів у Test Studio, невидима під час використання браузера. Через таку поведінку не можна визначити, який конкретно крок тестування виконується, і чи тестування пройдено, чи ні.
Для визначення результатів тестування за межами Test Studio існують дві властивості, що називаються OnTestCaseComplete і OnTestSuiteComplete і доступні в об’єкті тестування для обробки результатів тестувань. При інтегруванні тестувань у безперервний виробничий процес розробки та випуску, наприклад, у Azure DevOps, ці властивості допоможуть визначити, чи слід починати розгортання програми.
Вираз, введений для цих властивостей, виконується після завершення кожного з випадків або наборів. Ці властивості можна настроїти таким чином, щоб обробляти результати тестувань та відправляти їх до різноманітних джерел даних або служб, наприклад, до таких, що перелічено нижче.
- SQL Server.
- Dataverse.
- Power Automate.
- Повідомлення електронної пошти за допомогою Office 365.
Ці параметри застосовуються до кожного тестового набору або тестового випадку у програмі. Після завершення кожного тестового набору або тестового випадку результати тестування та повідомлення трасування, що містяться в тестуваннях, стають доступні в записах TestCaseResult і TestSuiteResult.
Запис TestCaseResult містить перелічені нижче властивості.
- TestCaseName — назва тестового випадку.
- TestCaseDescription – опис тестового випадку.
- TestCaseId — ідентифікатор тестового випадку.
- TestSuiteName — назва тестового набору, до якого належить випадок.
- TestSuiteDescription – опис тестового набору.
- TestSuiteId — ідентифікатор тестового набору, до якого належить випадок.
- StartTime — час початку тестування.
- EndTime — час завершення тестування.
- Traces — результат будь-яких тестових тверджень і повідомлення від функції Trace.
- Success — вказує на те, що тестовий випадок завершився успіхом.
- TestFailureMessage — повідомлення про помилку, якщо випадок завершився невдачею.
Запис TestSuiteResult містить перелічені нижче властивості.
- TestSuiteName — назва тестового набору.
- TestSuiteDescription – опис тестового набору.
- TestSuiteId — ідентифікатор тестового набору.
- StartTime — час початку виконання тестового набору.
- EndTime — час завершення виконання тестового набору.
- TestsPassed — кількість тестових випадків з набору, що були виконані успішно.
- TestsFailed — кількість тестових випадків з набору, що завершилися невдачею.
У цьому посібнику зі швидкого початку ви створите дві настроювані таблиці у базі даних Dataverse, щоб зберігати результати тесту, а для цього настроїте властивості OnTestCaseComplete і OnTestSuiteComplete:
Виберіть Тестування в області ліворуч або Перегляд у заголовку набору.
Виберіть дію OnTestCaseComplete.
Введіть вираз для обробки результатів тестування. Наведений нижче зразок зберігає результати тестування кожного інциденту в настроювану таблицю AppTestResults у Dataverse. Результати тестування можуть, за потреби, бути збережені в SQL, SharePoint або будь-якому іншому джерелі даних. Можливо, доведеться належним чином задати або збільшити значення поля Trace в джерелі даних.
Примітка
Наведені нижче зразки підключаються до Microsoft Dataverse. Можна створити просту програму або створити програму з нуля, використовуючи Dataverse. Крім того, перегляньте опису функції Patch для отримання додаткових відомостей про змінення записів у джерелі даних, тому що ця процедура використовується в зазначених нижче зразках.
//Save to Dataverse Patch(AppTestResults , Defaults(AppTestResults) , { TestPass: TestCaseResult.TestCaseName & ":" & Text(Now()) ,TestSuiteId: TestCaseResult.TestSuiteId ,TestSuiteName: TestCaseResult.TestSuiteName ,TestCaseId: TestCaseResult.TestCaseId ,TestCaseName: TestCaseResult.TestCaseName ,StartTime: TestCaseResult.StartTime ,EndTime: TestCaseResult.EndTime ,TestSuccess: TestCaseResult.Success ,TestTraces: JSON(TestCaseResult.Traces) ,TestFailureMessage: TestCaseResult.TestFailureMessage } );
Виберіть дію OnTestSuiteComplete.
Введіть вираз для обробки результатів тестування. У наведеному нижче зразку ви зберігаєте результати кожної серії тестів в настроювану таблицю AppTestSuiteResults у Dataverse.
//Save to Dataverse Patch(AppTestSuiteResults , Defaults(AppTestSuiteResults) , { TestSuiteId: TestSuiteResult.TestSuiteId ,TestSuiteName: TestSuiteResult.TestSuiteName ,StartTime: TestSuiteResult.StartTime ,EndTime: TestSuiteResult.EndTime ,TestPassCount: TestSuiteResult.TestsPassed ,TestFailCount: TestSuiteResult.TestsFailed } );
Інші приклади виразів, які можна використовувати у цих властивостях, наведено нижче.
Надішліть результати до потоку в Power Automate.
MyTestResultsFlow.Run(JSON(TestCaseResult))
Надсилайте результати електронною поштою.
Office365.SendMailV2("someone@example.com", "Test case results", JSON(TestCaseResult, JSONFormat.IndentFour))
Отримайте повідомлення у програмі про результати тестування.
Наприклад, отримайте сповіщення про завершення тестування при відтворення тестування в браузері, за межами Test Studio.
Notify(TestCaseResult.TestCaseName & " : " & If( TestCaseResult.Success , " Passed" , TestCaseResult.TestFailureMessage) ,If( TestCaseResult.Success , NotificationType.Success , NotificationType.Error) )
Функції тестування
Крім функцій, доступних у Power Apps, є ще типові функції, які зазвичай використовуються під час створення тестів:
Наступні кроки
Примітка
Розкажіть нам про свої уподобання щодо мови документації? Візьміть участь в короткому опитуванні. (зверніть увагу, що це опитування англійською мовою)
Проходження опитування займе близько семи хвилин. Персональні дані не збиратимуться (декларація про конфіденційність).