Перейти к содержимому

Фотография

TestComplete. Сокращаем названия полей в тестах

testcompete вопрос сокращение полей

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 Prospero

Prospero

    Новый участник

  • Members
  • Pip
  • 5 сообщений

Отправлено 02 июля 2016 - 11:36

Всем доброго дня и хорошего настроения!

 

Не так давно начала заниматься автоматизированным тестированием десктопного приложения (написано оно на Delfi, на всякий случай), для этого был выбран TestComplete 7.5. В программировании у меня имеются кое-какие знания, но в целом приходится разбираться по ходу написания тестов. Ранее работала с Selenium на C# (но там мне помогали ещё и программисты). Здесь же я выбрала JScript. По старой памяти хотелось бы и в TestComplete избежать повторения кода и разбить его по максимуму на классы.

Теперь к сути.

В разных тестах часто повторяются одни и те же кнопки и поля. Я решила их вынести в отдельный скриптовый файл Fields. Это позволило бы избежать повторения и длинных строк в самих тестах. По моей задумке при выполнении теста, TestComplete ссылался бы на этот Fields. В случае изменения дерева поля или кнопки - я бы редактировала только одну строку, а не в каждом тесте.

Т.е. раньше было в тесте: Sys.Process...<...>.Keys("1333");

Теперь: в классе Fields: button = Sys.Process...<...>;

А в классе с тестами уже так: button.Click(); 

В fields я просто создавала глобальные переменные и указывала процесс.

В какой-то момент выяснилось, что так оно не работает. TestCompete теперь перед запуском теста начал искать все процессы из Fields. А некоторые из них были недоступны в данный момент времени (т.е. в программе надо было кликать на какие-то кнопки и вызывать другие формы, которые были скрыты). Я-то полагала, что он будет обращаться к этим переменным только когда в тесте до них дойдёт, а не перед тестом. 

Теперь вопрос. Можно ли как-то решить эту проблему? Чтобы он не искал процессы из Fields перед запуском теста? Или же нужно каждое поле прописывать в отдельных function и предусматривать ещё действия с каждой function(то кликнуть, то ввести с клавиатуры, то проверить существование)?  


  • 0

#2 Сергей

Сергей

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 245 сообщений
  • Город:Москва

Отправлено 04 июля 2016 - 08:08

Нет, так не надо. Создайте общие файлы, в которых опишите объекты вашего приложения через объекты jscript. Как создать объекты в jscript можно нагуглить)


  • 0

"Если ты хороший плотник и делаешь красивую тумбочку, ты не будешь прибивать сзади фанеру, даже несмотря на то, что задняя часть повернута к стене, и никто ее не видит. Ты будешь хорошо спать ночью, только если тебе удалось воплотить в своем произведении эстетическую красоту и качество." © Стив Джобс


#3 Сергей

Сергей

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 245 сообщений
  • Город:Москва

Отправлено 04 июля 2016 - 08:50

Можно ещё пару быстрых и красивых вариантов - 1. мапинг имен 2. ODT. Но я предпочитаю предыдущий вариант с описанием объектов. Он конечно не лишен недостатков, но мне подходит в связи с использованием одних и тех же объектов в разных проектах с полным контролем (например на маппинг нельзя ссылаться в новом проекте - либо копию делать либо новый создавать, в ODT тоже не увидел преимуществ).


  • 0

"Если ты хороший плотник и делаешь красивую тумбочку, ты не будешь прибивать сзади фанеру, даже несмотря на то, что задняя часть повернута к стене, и никто ее не видит. Ты будешь хорошо спать ночью, только если тебе удалось воплотить в своем произведении эстетическую красоту и качество." © Стив Джобс


#4 Prospero

Prospero

    Новый участник

  • Members
  • Pip
  • 5 сообщений

Отправлено 04 июля 2016 - 11:00

Спасибо за помощь! Буду делать через объекты :)


  • 0



Темы с аналогичным тегами testcompete, вопрос, сокращение полей

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных