qtp descriptive programming (russian)

60
DP 101 в 60-ти простых слайдах www.AdvancedQTP.com

Upload: yaron-assa

Post on 25-Dec-2014

4.088 views

Category:

Self Improvement


3 download

DESCRIPTION

Translated by Sergey Talalaev (Thanks!)Quicktest professional - descriptive programming 101.www.AdvancedQTP.com

TRANSCRIPT

Page 1: Qtp Descriptive Programming (Russian)

DP 101 в 60-ти простых слайдах

www.AdvancedQTP.com

Page 2: Qtp Descriptive Programming (Russian)

Что такое DP?

DP - это

Дескрипторное Программирование

Page 3: Qtp Descriptive Programming (Russian)

Но что ОЗНАЧАЕТ

DP?

Это классная возможность работать без QTP-шного

Объектного Репозитория (OR)

Page 4: Qtp Descriptive Programming (Russian)

Почему бы мне этого хотелось?

Page 5: Qtp Descriptive Programming (Russian)

Есть много причин

Page 6: Qtp Descriptive Programming (Russian)

Вам придется

Функции и Сценарии восстановления работают с

разными акциями

Разные акции = Разные ORs

Page 7: Qtp Descriptive Programming (Russian)

Я тебя знаю?

Не уверен…

Page 8: Qtp Descriptive Programming (Russian)

Вам придется

Невозможно записать определенные объекты

Auto-hide панели

Объекты с изменяющейся иерархией

Вложенные внутренние объекты, подменю

Page 9: Qtp Descriptive Programming (Russian)

Всё еще висим, черт побери!

В тот момент когда вы уже думаете, что получили его – все свойства обнуляются

Page 10: Qtp Descriptive Programming (Russian)

Простота

Зачем убивать муху атомной бомбой?

Нет необходимости использовать OR для каждого одиночного нажатия кнопки в приложении

Page 11: Qtp Descriptive Programming (Russian)

и,Вы можете делать ОЧЕНЬ крутые

вещи с помощью DP

Page 12: Qtp Descriptive Programming (Russian)

OK, начнём

Page 13: Qtp Descriptive Programming (Russian)

Во-первых, нам необходимо лучше понять Объектный Репозиторий

Что такое OR

Как работает OR

Page 14: Qtp Descriptive Programming (Russian)

Я думал, что DP это всё, что НЕ касается

OR…

Page 15: Qtp Descriptive Programming (Russian)

Вообще да, но внутри DP и OR работают одинаково

То есть понимать OR – это значит понимать DP

Page 16: Qtp Descriptive Programming (Russian)

Что такое OR?

Page 17: Qtp Descriptive Programming (Russian)

Это мистическое существо, которое записывает объекты, чтобы

использовать их в дальнейшем

Page 18: Qtp Descriptive Programming (Russian)

Что значит записать объект?

Описать как идентифицировать его

Page 19: Qtp Descriptive Programming (Russian)

Кто ты?

=Как я могу распознать тебя?

Page 20: Qtp Descriptive Programming (Russian)

Идентификация выполнятся через

свойства и значения

Page 21: Qtp Descriptive Programming (Russian)

Кто ты?

=Твоя высота = 400

Твой заголовок = “NotePad”

Ты видимый (=True)

Page 22: Qtp Descriptive Programming (Russian)

Итак, что же ЗНАЧИТ OR?

Это коллекции свойств и соответствующих им значений

Каждая такая коллекция определят объект

Никакого мистического существа

Page 23: Qtp Descriptive Programming (Russian)

OK, что же ЗНАЧИТ тогда DP?

DP это вариант определения свойств и значений без использования

интерфейса OR

Опять никакого мистического существа

Page 24: Qtp Descriptive Programming (Russian)

OK, Я уловил, это не более чем свойства и их значения

Может мы приступим к работе?

Page 25: Qtp Descriptive Programming (Russian)

Как я РЕАЛЬНО могу использовать DP?

Есть два варианта

Page 26: Qtp Descriptive Programming (Russian)

1Вставка свойств и значений

напрямую в команду

Page 27: Qtp Descriptive Programming (Russian)

Это старый добрый известный вам синтаксис за исключением того, что строка в () – это не

OR.

Это идентификационная строка вида свойство:=значение

Page 28: Qtp Descriptive Programming (Russian)

Но это вроде ограничение

Что если я хочу использовать множество свойств?

Page 29: Qtp Descriptive Programming (Russian)

Нет проблем:

VBWindow(“height:=400”, “title:=New Document”).Maximize

Вы можете использовать столько свойств, сколько пожелаете

Page 30: Qtp Descriptive Programming (Russian)

Все замечательно но, что если я захочу использовать регулярные

выражения?

Page 31: Qtp Descriptive Programming (Russian)

Нет проблем:

VBWindow(“title:=.*Document.*”).Maximize

Значения свойств автоматически интерпретируются как регулярные выражения

Page 32: Qtp Descriptive Programming (Russian)

2Оформление свойств и значений в Description объект и вставка ЕГО в

команду

Page 33: Qtp Descriptive Programming (Russian)

В этом случае значения интерпретируются тоже как регулярные выражения. Чтобы

отключить это используйте

oDesc(“Property1”).RegularExpression = False

Page 34: Qtp Descriptive Programming (Russian)

Метод 1 - быстрее, наиболее применим для одной-двух команд

Page 35: Qtp Descriptive Programming (Russian)

Если вы хотите выполнить несколько команд над объектом, метод 2 более

предпочтителен

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

Page 36: Qtp Descriptive Programming (Russian)

Вы можете использовать

DP вместе с OR

VBWindow(“OR”).VBButton(“text:=OK”).Click

или (если oDesc - Description объект):

VBWindow(“OR”).VBButton(oDesc).Click

Page 37: Qtp Descriptive Programming (Russian)

НО, вы только можете начать с OR и продолжить с DP

То есть это не сработает:

VBWindow(“title:=notgood”).VBButton(“clickme”).Click

Page 38: Qtp Descriptive Programming (Russian)

И на этом всё

Вы можете использовать каждый из методов (или комбинировать их), и вы сможете использовать объекты,

которые не сохранены в OR

Page 39: Qtp Descriptive Programming (Russian)

Вы говорили, что я смогу делать действительно

крутые вещи с DP!

Page 40: Qtp Descriptive Programming (Russian)

Ты прав

Мы рассмотрим некоторые наиболее популярные трюки и

примеры

Эти примеры – только верхушка айсберга. Поработайте с ними и вы увидите истинную

мощь DP.

Page 41: Qtp Descriptive Programming (Russian)

Сила строки

DP – это не более чем просто строки

Но мы можем делать такие интересные вещи со строками…

Page 42: Qtp Descriptive Programming (Russian)

Сила строки

Скажем у нас есть приложение с 5 checkboxes, check0, …, check4

Мы можем установить их все с помощью простого цикла:

Page 43: Qtp Descriptive Programming (Russian)

Сила строки

Очень сложные проблемы идентификации могут быть решены манипуляциями со строками

Попробуйте различные варианты самостоятельно

Page 44: Qtp Descriptive Programming (Russian)

Дублированные объекты

Когда QTP находит два объекта удовлетворяющие одному описанию, он зависает

Это засада

Page 45: Qtp Descriptive Programming (Russian)

?

Page 46: Qtp Descriptive Programming (Russian)

В DP есть волшебное свойство: “index”, которое позволяет нам обращаться к дублированным

объектам раздельно

Index – это начинающийся с нуля счетчик

Page 47: Qtp Descriptive Programming (Russian)

Всё в порядке

Page 48: Qtp Descriptive Programming (Russian)

Получение коллекций объектов

Эта функциональность настолько крута, что заслуживает своего отдельного заголовка

Page 49: Qtp Descriptive Programming (Russian)

САМАЯ крутая вещь, которую вы можете

делать с DP - это получение коллекций объектов, удовлетворяющих условию отбора

Page 50: Qtp Descriptive Programming (Russian)

Я не знаю кто вы или сколько вас, но я хочу отметить вас всех!

Обычный DP не поможет – не знает как идентифицировать каждый checkbox

Page 51: Qtp Descriptive Programming (Russian)

Коллекции объектов идут на помощь!

Шаг 1: Определяем Description объект

Page 52: Qtp Descriptive Programming (Russian)

Коллекции объектов идут на помощь!

Шаг 2: Получаем все подходящие объекты

Page 53: Qtp Descriptive Programming (Russian)

Коллекции объектов идут на помощь!

Шаг 3: Используем коллекцию

oChildren сейчас содержит коллекцию всех checkboxes

И первый checkbox доступен как: oChildren(0)

Page 54: Qtp Descriptive Programming (Russian)

Что мы можем с ней делать?

Всё, что пожелаете

Page 55: Qtp Descriptive Programming (Russian)

Пример использования

Отметка всех Checkboxes

Отметка всех checkboxes с определенным свойством (в том числе RO)

Page 56: Qtp Descriptive Programming (Russian)

Возможности безграничны

Случайное заполнение полей

Заполнение только обязательных полей

Нулевая поддержка (новые поля добавляются автоматически , не замечая изменений UI)

Выбор объектов по сложным критериям (написание собственных механизмов идентификации)

Список можно продолжать и продолжать…

Page 57: Qtp Descriptive Programming (Russian)

OK, это несомненно круто, но все это позволяет нам манипулировать объектами внутри данного

окна.

А можем ли мы также работать с окнами самого приложения?

Page 58: Qtp Descriptive Programming (Russian)

Конечно

Page 59: Qtp Descriptive Programming (Russian)

Итак, с DP вы можете работать без OR

Иногда вы просто должны использовать его

В других случаях это забавно и полезно

DP также привносит множество бонусов, что делает его неотъемлемой частью качественной

QTP автоматизации

Пробуйте его, Экспериментируйте с ним, Изучайте его,

Используйте его, Любите его

Это стоит вашего времени

Page 60: Qtp Descriptive Programming (Russian)

Это был DP в 60-ти слайдах