Тестирование калькулятора в TestComplete

Содержание
Введение
Запись Keyword теста
Конвертация в скрипт
Форматирование скрипта
Запуск скрипта
Похожие статьи

Введение

Про основы TestComplete можно прочитать здесь про Python здесь

В этой статье используется TestComplete версии 15, актуальной на 2023-й год.

Статья, вдохновившая на написание этой находится в песочнице Хабра по этой ссылке . Она написана в 2013-м году с применением TestComplete 9. Если вы автор той статьи или знаете его, отпишитесь в чат интересно узнать про ваш опыт с современнымы приложениями.

Запись простейшего теста

Кликните на New Project, либо FileNew Project, либо нажмите SHIFT + CTRL + N

Select project name, location and type of test to record TestComplete изображение с сайта www.andreyolegovich.ru
TestComplete - Project Name

Задайте название проекта, и выберите язык, на котором будет написан скрипт. В этом примере скрипт будет на Python

TestComplete изображение с сайта www.andreyolegovich.ru
TestComplete

Укажите расположение приложения

TestComplete изображение с сайта www.andreyolegovich.ru
TestComplete

calc.exe расположен в

C:\Windows\System32\

TestComplete изображение с сайта www.andreyolegovich.ru
TestComplete

TestComplete изображение с сайта www.andreyolegovich.ru
TestComplete

TestComplete изображение с сайта www.andreyolegovich.ru
TestComplete

Сложите 1 и 1

TestComplete изображение с сайта www.andreyolegovich.ru
TestComplete

TestComplete изображение с сайта www.andreyolegovich.ru
TestComplete

Конвертируйте тест в скрипт.

Keyword Test Log TestComplete изображение с сайта www.andreyolegovich.ru
TestComplete

Код скрипта будет расположен в файле Unit1.py по адресу

C:\Users\Andrei\Documents\TestComplete 15 Projects\Calculator\Calculator\Script

Изображение баннера

Выбор браузера Run Browser TestComplete изображение с сайта www.andreyolegovich.ru
Выбрать браузер TestComplete

Советую выбрать Yes

Keyword Test Log TestComplete изображение с сайта www.andreyolegovich.ru
TestComplete
Изображение баннера

Форматирование скрипта

TestComplete не соблюдает рекомендации по форматированию Python кода PEP 8, поэтому после # в комментариях нет пробелов. Я добавляю их самостоятально.

Полученный в результате конвертации и форматирования скрипт будет выглядеть следующим оригинальным образом.

def Test1(): # Runs the "calc" tested application. TestedApps.calc.Run() # Clicks the 'One' object. Aliases.Microsoft_WindowsCalculator.Calculator.NavView.LandmarkTarget.Number_pad.One.Click() # Clicks the 'Plus' object. Aliases.Microsoft_WindowsCalculator.Calculator.NavView.LandmarkTarget.Standard_operators.Plus.Click() # Clicks the 'One' object. Aliases.Microsoft_WindowsCalculator.Calculator.NavView.LandmarkTarget.Number_pad.One.Click() # Clicks the 'Equals' object. Aliases.Microsoft_WindowsCalculator.Calculator.NavView.LandmarkTarget.Standard_operators.Equals.Click()

Keyword Test Log TestComplete изображение с сайта www.andreyolegovich.ru
TestComplete

Keyword Test Log TestComplete изображение с сайта www.andreyolegovich.ru
TestComplete

Keyword Test Log TestComplete изображение с сайта www.andreyolegovich.ru
TestComplete

Имя объекта, который был выделен с помощью Object Spy

Aliases.Microsoft_WindowsCalculator.Calculator.NavView.LandmarkTarget.UIAObject("Display_is_0").UIAObject("TextContainer").UIAObject("NormalOutput")

У вас также может получится следующее имя

Aliases.Microsoft_WindowsCalculator.Calculator.NavView.LandmarkTarget.Display_is_30.TextContainer

Обратите внимание на имя объекта: там жёстко (особенно во втором случае) указано значение.

Это может сильно усложнить автоматизацию с генерацией тестовых данных.

Нас интересует аттрибут Text, который можно увидеть открыв Advanced view

Keyword Test Log TestComplete изображение с сайта www.andreyolegovich.ru
TestComplete

Получим значение этого аттрибута с помощью aqObject.GetPropertyValue()

result = aqObject.GetPropertyValue(Aliases.Microsoft_WindowsCalculator.Calculator.NavView.LandmarkTarget.UIAObject("Display_is_0").UIAObject("TextContainer").UIAObject("NormalOutput"), "Text") assert int(result) == 2

В оригинальном виде скрипт выглядит ужасно, поэтому можно переписать его с некоторыми изменениями

def Test1(): # Runs the "calc" tested application. TestedApps.calc.Run() # Defines objects one = Aliases.Microsoft_WindowsCalculator.Calculator.NavView.LandmarkTarget.Number_pad.One plus = Aliases.Microsoft_WindowsCalculator.Calculator.NavView.LandmarkTarget.Standard_operators.Plus equals = Aliases.Microsoft_WindowsCalculator.Calculator.NavView.LandmarkTarget.Standard_operators.Equals output = Aliases.Microsoft_WindowsCalculator.Calculator.NavView.LandmarkTarget.UIAObject("Display_is_0").UIAObject("TextContainer").UIAObject("NormalOutput") # Clicks the 'One' object. one.Click() # Clicks the 'Plus' object. plus.Click() # Clicks the 'One' object. one.Click() # Clicks the 'Equals' object. equals.Click() result = aqObject.GetPropertyValue(output, "Text") assert int(result) == 2

Если тест упадёт, предупреждение об ошибке будет зависеть от типа проверки. В нашем примере используется assert из Python, поэтому появится Python runtime error.

TestComplete Python runtime error изображение с сайта www.andreyolegovich.ru
TestComplete

Запуск скрипта

Чтобы запустить тест из скрипта нужно поместить курсор мыши в нужную функцию. Это может показать неочевидным на первый взгляд, но если поставить курсор куда-то не туда - тест не запуститься, или запустится какая-то второстепенная функция.

Похожие статьи
TesComplete
Основы
Файлы
Ошибки TestComplete
Тестирование
Автоматизация

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: