Споделяне чрез


Работа със Test Studio

В този бърз старт ще създадете тестове за приложение за платно, наречено Kudos. Можете също така да изследвате и откривате тестови концепции и да ги прилагате за писане на тестове за вашите собствени приложения за платно. Примерното приложение Kudos е част от набор от приложения за ангажиране на служители, достъпни за изтегляне отСтартов комплект за опит на служителите.

Гледайте това видео, за да научите как да работите с Test Studio:

Отворете Test Studio

  1. Влезте в Power Apps.

  2. Създайте ново приложение или редактирайте съществуващо приложение.

  3. Запазете приложението си в Power Apps, за да отворите Test Studio.

    Бележка

    Трябва да запазите приложение, преди да можете да пишете тестове за него.

  4. Изберете Разширени инструменти в лявата навигационна лента.

  5. Изберете Отваряне на тестове, за да отворите Студиото за тестове за това приложение. Това действие отваря Студиото за тестове в нов раздел на браузъра.

    Отворете студиото за тестове.

Бележка

Тестовете се публикуват и съхраняват в пакета с приложения. Експортирането и импортирането на пакет от приложения за платно в друга среда също ще включва всички тестови дефиниции като тестови пакети и тестови каси, които сте създали.

Създаване на тестов набор

По подразбиране тест пакет и тестов казус са създадени за вас в Test Studio. Тестовите пакети се използват за организиране на вашите тестови случаи. Приложение може да съдържа един или повече тестови пакета. Можете да използвате стандартния тестов пакет и случай, за да започнете незабавно да пишете своите тестове или да създадете нов тестов пакет.

  1. Изберете Нов набор.

  2. Актуализирайте Име и описание на тестовия пакет, като изберете полетата в основната мрежа.

    Нов тестов набор.

Създаване на тестов случай

В зависимост от това как искате да организирате или групирате вашите тестове, можете да създадете множество тестови случаи в тестов пакет. Всеки случай може да тества конкретна функция или подмножество от функции във вашето приложение.

  1. Изберете тестов пакет.
  2. Изберете Нов случай в горното меню, за да създадете нов случай.
  3. Актуализирайте Име и описание на тестовия случай, като изберете полетата в основната мрежа.

Нов тестов случай.

Запишете тестов случай

Тестовият случай се състои от тестови стъпки, които съдържат действия. Тестовите действия се пишат с помощта на изрази на Power Apps, които изпълняват задача. Можете да използвате рекордера, за да генерирате автоматично тестовите стъпки, докато взаимодействате с приложението си. След като запишете, можете да актуализирате тестовия случай, да добавите нови стъпки, да изтриете стъпки и да напишете тестови твърдения, за да потвърдите резултата от вашия тест.

Бележка

Само публикувано приложение играе в режим на запис. Публикувайте всички скорошни промени в приложението, преди да започнете да записвате тестов случай. Записването без публикуване на последните промени води до възпроизвеждане на последната версия на приложението в режим на запис.

  1. Изберете Запис от горното меню. Това действие отваря публикуваното приложение с режим на запис в нов раздел на браузъра.

    Важно

    Записването върху съществуващ тестов случай отменя всички вече съществуващи тестови стъпки.

    Записване на тестове.

  2. Взаимодействайте с приложението си. Вашите действия са записани в левия прозорец.

  3. След като взаимодействието приключи, изберете Готово. По желание можете да изберете Отмяна, за да се върнете в Студиото за тестове без вашите взаимодействия да бъдат записани.

    Записване на запис.

  4. Прегледайте стъпките на теста и изразите, които са генерирани автоматично за вас в Студиото за тестове.

  5. Ако е необходимо, редактирайте текста на описанието на стъпките в основната мрежа. Можете също да актуализирате стъпките на тестовите стъпки, като изберете формулата в основната мрежа.

    Актуализиране на тестов случай.

Добавете тестови стъпки и тестови твърдения

Всеки тестов случай трябва да има очакван резултат. В примера на Kudos, един от очакваните резултати от изпращането на кудо е създаването на нов запис в базата данни на Microsoft Dataverse (Dataverse). Сега ще актуализирате тестовия случай и ще добавите допълнителни тестови стъпки, за да проверите дали записът е създаден успешно.

Следвайте тези стъпки, за да проверите успешното създаване на записи:

  • Инициализирайте променлива за броя на kudo записи в базата данни в началото на тестовия случай.
  • Инициализирайте променлива за броя на kudo записи в базата данни в края на тестовия случай.
  • Напишете израз на тестово твърдение, за да го утвърдите, увеличен с един брой. Ако броят не се увеличи с единица, тестовото твърдение се проваля и тестовият ви случай се проваля.

За да добавите тестови стъпки и тестови твърдения в приложението Kudos:

  1. Изберете стъпка 1 или стъпката, над която искате да поставите нова стъпка.

  2. Изберете Поставете стъпка по-горе от горното меню или като изберете опцията от активния ред. Това действие създава празна стъпка.

    Вмъкване на стъпка.

    Бележка

    Когато изберете Поставете стъпка по-горе, над текущата стъпка се добавя нова празна стъпка. Можете също да използвате действия Твърдение, SetProperty, Избор или Следа вместо това. Това добавя стъпка със съответна формула за действие, която можете да редактирате.

  3. Актуализиране на описанието на стъпката. Например "Брой Кудо в базата данни".

  4. Въведете израз или формула във входа за действие, за да преброите записите в базата данни, преди да извършите теста.

    Можете да използвате всеки поддържан израз. Можете също така да питате всички източници на данни, колекции, променливи или да изпълнявате потоци, които се съдържат в приложението ви, и да създавате нови глобални променливи или колекции, които да използвате във вашите тестове.

    Set(kudosBeforeTest, CountRows(Filter(Kudos, Receiver.Email = "someone@example.com")))```
    
    
  5. Select Step 2 or the step above which you want to insert a new step.

  6. Select Insert a step above from the top menu or by selecting the option from the active row. This action creates an empty step.

  7. Enter an expression or formula in the action input to Trace and write the kudosBeforeTest value to test the results record.

    Trace("kudosBeforeTest : " & kudosBeforeTest);
    

    Kudos преди тест.

  8. Отидете до дъното на тестовия случай и поставете нова стъпка, за да преброите записите в базата данни след приключване на теста.

    Set(kudosAfterTest, CountRows(Filter(Kudos, Receiver.Email = "someone@example.com")))```
    
    
  9. 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)
    

    Kudos след потвърждение на теста.

  10. Запазете тестовия случай от горното дясно меню в Студиото за тестове.

Възпроизведете теста си

Можете да възпроизведете записания си тест, за да потвърдите функционалността на приложението. Можете да възпроизведете всички тестове в рамките на един тестов пакет или в един тестов случай.

Преди да възпроизведете записа назад с последните промени, трябва да публикувате приложението:

Възпроизвеждане без публикуване.

Важно

Ако пропуснете публикуването, възпроизвеждането на записа няма да съдържа последните ви тестови промени. Последният публикуван тестов случай или пакет ще играе срещу приложението.

  1. Изберете публикуване за автоматично запазване и публикуване на вашия тест.

    Публикуване на промени.

  2. Изберете или тестов пакет, или единичен тестов случай.

  3. Изберете Възпроизвеждане. Публикуваното приложение се отваря в режим Възпроизвеждане и можете да видите своите тестови стъпки, които се възпроизвеждат автоматично. Зелената отметка показва, когато тестовата стъпка се изпълни успешно. Ако стъпка не успее, се показва червен индикатор за грешка заедно със съобщение за грешка.

    Режим на възпроизвеждане.

  4. Изберете Готово, за да се върнете в Студиото за тестове.

Неуспешно твърдение

В този раздел ще промените твърдението на теста, за да изпитате неуспешен тест:

  1. Редактирайте стъпката на твърдение, като изберете полето за изразяване.

  2. Актуализирайте + 1 на + 2 в тестово действие. Тази актуализация означава, че тестът очаква да бъдат създадени два записа, което е неправилно. Ако тестът е успешен, в базата данни трябва да се създаде само един запис.

    Assert(kudosAfterTest = kudosBeforeTest + 2, "Kudos count incorrect. Expected : " & kudosBeforeTest + 2  & " Actual :" & kudosAfterTest)
    

    Актуализация на броя на потвържденията.

  3. Изберете Публикуване.

  4. Изберете Възпроизвеждане.

  5. Вижте възпроизвеждането на теста. Последната стъпка се проваля и показва грешка и съобщението, което сте предоставили в стъпката на твърдение.

    Грешка при възпроизвеждане.

Възпроизвеждане на тестове в браузър

Можете да копирате връзка, за да играете тест в отделен браузър извън Test Studio. Той помага да се интегрират вашите тестове в непрекъснат тръбопровод за изграждане и пускане, като например Azure DevOps.

Връзката за възпроизвеждане на избрания тест се запазва. Не се променя за тестовия комплект или тестовия случай. Можете да актуализирате вашите тестове, без да е необходимо да променяте процесите на изграждане и пускане.

За да играете тестове във вашия браузър:

  1. Изберете тестов пакет или тестов случай в десния прозорец.

  2. Изберете Копирайте връзката за възпроизвеждане.

    Копирайте връзката за възпроизвеждане.

  3. Ще бъдете подканени да публикувате тестовете си, ако има непубликувани промени.

    Публикуване преди връзка за копиране.

  4. Можете да изберете да пропуснете процеса на публикуване и да копирате връзката за възпроизвеждане. Новите промени в теста не се възпроизвеждат, ако прескочите.

    Връзката за възпроизвеждане е копирана.

  5. Отворете браузър и поставете URL адреса в адресната лента, за да играете теста.

  6. Вижте възпроизвеждането на теста си.

Настройте вашите тестове

Свойството OnTestCaseStart на комплекта за тестове може да се използва за настройка на вашия тест. Изразът, въведен за това свойство, се задейства за всеки тестов случай в пакет, преди случаят да започне да се изпълнява. OnTestCaseStart ви помага да избегнете писането на едни и същи тестови стъпки в началото на всеки случай. Можете да персонализирате това свойство да изпълнява зададени задачи, които са общи за всички случаи в пакета, като например:

  • Винаги стартирайте тестовото изпълнение от първия екран.
  • Инициализиране на общи колекции или променливи.
  • Извличане на тестови данни от източник на данни за текущия тест за изпълнение

Записът TestCaseInfo съдържа подробности за текущия тест, който се изпълнява. Съдържа следните свойства:

  • TestCaseName - името на тестовия случай.
  • TestCaseDescription - описанието на тестовия случай.
  • TestCaseId - ИД на тестовия случай.
  • TestSuiteName - името на тестовия набор, към който принадлежи случаят.
  • TestSuiteDescription - описанието на тестовия комплект.
  • TestSuiteId - името на ИД, към който принадлежи случаят.

В примера по-долу ще персонализирате свойството OnTestCaseStart, така че всеки тестов случай започва от първия екран в приложението ви. Вие също ще получите данните от теста от източник на данни, които могат да бъдат посочени в стъпките за тестовия случай.

  1. Изберете Тест в левия прозорец или изглед върху заглавката на пакета.

    Тествайте или преглеждайте зададеното свойство.

  2. Изберете действието OnTestCaseStart.

  3. Въведете израз за навигация до първия екран и извлечете данните от теста за вашия тест.

    //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)
    

    Пример за OnTestCaseStart.

Обработка на тестови резултати

Тестовият панел, който се вижда при възпроизвеждане на тестове в Test Studio, не се вижда при използване на браузър. Поради това поведение не можете да определите конкретната стъпка на тест, която се изпълнява, или ако тестът премине или се провали.

За да определите резултатите от теста извън Студиото за тестове, се наричат две свойства OnTestCaseComplete и OnTestSuiteComplete, налични в тестовия обект, който можете да използвате за обработка на резултатите от вашите тестове. При интегриране на тестове в непрекъснато изграждане и пускане на конвейер като Azure DevOps, тези свойства могат да се използват, за да се определи дали трябва да продължите с внедряването на приложението.

Изразът, въведен за тези свойства, се задейства, когато всеки случай или пакет завърши. Можете да персонализирате тези свойства, за да обработвате и изпращате резултатите от вашите тестове до различни източници на данни или услуги като:

  • SQL Server.
  • Dataverse.
  • Power Automate.
  • Имейл, който използва Office 365.

Тези настройки се прилагат за всеки тестов комплект или тестов случай в приложението ви. След приключване на всеки тестов набор или тестов случай, резултатите от теста и всички съобщения за следи, съдържащи се в тестовете, са налични в записите TestCaseResult и TestSuiteResult.

Записът TestCaseResult съдържа следните свойства:

  • TestCaseName - името на тестовия случай.
  • TestCaseDescription - описанието на тестовия случай.
  • TestCaseId - ИД на тестовия случай.
  • TestSuiteName - името на тестовия набор, към който принадлежи случаят.
  • TestSuiteDescription - описанието на тестовия комплект.
  • TestSuiteId - името на ИД, към който принадлежи случаят.
  • StartTime - началното време за изпълнение на теста.
  • EndTime - краен час за изпълнение на теста.
  • Следи - резултат от всякакви тестови твърдения и всякакви съобщения от функцията „Проследяване”.
  • Успех - показва дали тестовият случай е завършен успешно.
  • TestFailureMessage - ако случаят е неуспешен, съобщението за грешка.

Записът TestSuiteResult съдържа следните свойства:

  • TestSuiteName - името на тестовия пакет.
  • TestSuiteDescription - описанието на тестовия комплект.
  • TestSuiteId - идентификационния номер на тестовия пакет.
  • StartTime - началното време за изпълнение на тестовия набор.
  • EndTime - краен час за изпълнение на тестовия набор.
  • TestsPassed - броя на тестовите случаи, завършили успешно в пакета.
  • TestsFailed - броя на тестовите случаи, завършили неуспешно в пакета.

В този бърз старт ще създадете две потребителски таблици в Dataverse база данни за съхраняване на резултатите от теста чрез персонализиране на OnTestCaseComplete и OnTestSuiteComplete свойства:

  1. Изберете Тест в левия прозорец или изглед върху заглавката на пакета.

    Тествайте или преглеждайте зададеното свойство.

  2. Изберете действието OnTestCaseComplete.

  3. Въведете израз, за да обработите резултатите от вашия тест. Следващата проба запазва резултатите от всеки тестов случай в персонализираната таблица AppTestResults в Dataverse. Резултатите от теста могат по желание да се съхраняват в SQL, SharePoint или друг източник на данни. Може да се наложи да зададете или увеличите полето „Следа” във вашия източник на данни според изискванията.

    Бележка

    Следните проби се свързват с Microsoft Dataverse. Можете да създадете обикновено приложение или изградете приложение от нулата използвайки Dataverse. Също така се обърнете към функцията Корекция за функция за повече подробности за промяна на записи на източник на данни, използвани в следните образци.

    //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
    }
    );
    

    Пример за OnTestCaseComplete.

  4. Изберете действието OnTestSuiteComplete.

  5. Въведете израз, за да обработите резултатите от вашия тест. В следващата проба ще запишете резултатите от всеки тестов случай в персонализираната таблица 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
        }
    );
    

    Пример за OnTestSuiteComplete.

Други примери за изрази, които бихте могли да използвате в тези свойства са:

  • Изпращане на резултати в поток в Power Automate.

    MyTestResultsFlow.Run(JSON(TestCaseResult))
    
  • Изпратете вашите резултати по имейл.

    Office365.SendMailV2("someone@example.com", "Test case results", JSON(TestCaseResult, JSONFormat.IndentFour))
    
  • Получавайте известие за приложението за резултата от теста.

    Например, получавайте известие след приключване на теста, когато играете теста в браузър, извън Студиото за тестове.

    Notify(TestCaseResult.TestCaseName & " : "
            & If( TestCaseResult.Success
                , " Passed"
                , TestCaseResult.TestFailureMessage)
            ,If(  TestCaseResult.Success
                , NotificationType.Success
                , NotificationType.Error)
    )
    

Тестови функции

В допълнение към наличните функции в Power Apps, следните общи функции, които обикновено използвате при създаване на тестове:

Следващи стъпки

Бележка

Можете ли да ни споделите повече за езиковите си предпочитания за документацията? Попълнете кратко проучване. (имайте предвид, че това проучване е на английски език)

Проучването ще отнеме около седем минути. Не се събират лични данни (декларация за поверителност).