O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Qtp Descriptive Programming (Russian)

Ad

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

Ad

<ul><li>Что такое  DP? </li></ul><ul><li>DP  - это </li></ul><ul><li>Дескрипторное   Программирование </li></ul>

Ad

<ul><li>Но что ОЗНАЧАЕТ  </li></ul><ul><li>DP? </li></ul><ul><li>Это классная возможность работать без  QTP -шного   </li>...

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Próximos SlideShares
Javascript testing
Javascript testing
Carregando em…3
×

Confira estes a seguir

1 de 60 Anúncio
1 de 60 Anúncio

Qtp Descriptive Programming (Russian)

  1. 1. <ul><li>DP 101 в 60 -ти простых слайдах </li></ul><ul><li>www.AdvancedQTP.com </li></ul>
  2. 2. <ul><li>Что такое DP? </li></ul><ul><li>DP - это </li></ul><ul><li>Дескрипторное Программирование </li></ul>
  3. 3. <ul><li>Но что ОЗНАЧАЕТ </li></ul><ul><li>DP? </li></ul><ul><li>Это классная возможность работать без QTP -шного </li></ul><ul><li>Объектного Репозитория ( OR ) </li></ul>
  4. 4. <ul><li>Почему бы мне этого хотелось ? </li></ul>
  5. 5. <ul><li>Есть много причин </li></ul>
  6. 6. <ul><li>Вам придется </li></ul><ul><li>Функции и Сценарии восстановления работают с разными акциями </li></ul><ul><li>Разные акции = Разные ORs </li></ul>
  7. 7. Я тебя знаю ? Не уверен …
  8. 8. <ul><li>Вам придется </li></ul><ul><li>Невозможно записать определенные объекты </li></ul><ul><li>Auto-hide панели </li></ul><ul><li>Объекты с изменяющейся иерархией </li></ul><ul><li>Вложенные внутренние объекты , подменю </li></ul>
  9. 9. Всё еще висим, черт побери ! В тот момент когда вы уже думаете, что получили его – все свойства обнуляются
  10. 10. <ul><li>Простота </li></ul><ul><li>Зачем убивать муху атомной бомбой ? </li></ul><ul><li>Нет необходимости использовать OR для каждого одиночного нажатия кнопки в приложении </li></ul>
  11. 11. <ul><li>и , </li></ul><ul><li>Вы можете делать ОЧЕНЬ крутые вещи с помощью DP </li></ul>
  12. 12. <ul><li>OK, начнём </li></ul>
  13. 13. <ul><li>Во-первых , нам необходимо лучше понять Объектный Репозиторий </li></ul><ul><li>Что такое OR </li></ul><ul><li>Как работает OR </li></ul>
  14. 14. <ul><li>Я думал, что DP это всё, что НЕ касается OR… </li></ul>
  15. 15. <ul><li>Вообще да , но внутри DP и OR работают одинаково </li></ul><ul><li>То есть понимать OR – это значит понимать DP </li></ul>
  16. 16. <ul><li>Что такое OR? </li></ul>
  17. 17. <ul><li>Это мистическое существо, которое записывает объекты , чтобы использовать их в дальнейшем </li></ul>
  18. 18. <ul><li>Что значит записать объект ? </li></ul><ul><li>Описать как идентифицировать его </li></ul>
  19. 19. <ul><li>Кто ты ? </li></ul>= Как я могу распознать тебя ?
  20. 20. <ul><li>Идентификация выполнятся через </li></ul><ul><li>свойства и значения </li></ul>
  21. 21. <ul><li>Кто ты ? </li></ul>= Твоя высота = 400 Твой заголовок = “NotePad” Ты видимый (=True)
  22. 22. <ul><li>Итак, что же ЗНАЧИТ OR? </li></ul><ul><li>Это коллекции свойств и соответствующих им значений </li></ul><ul><li>Каждая такая коллекция определят объект </li></ul><ul><li>Никакого мистического существа </li></ul>
  23. 23. <ul><li>OK, что же ЗНАЧИТ тогда DP? </li></ul><ul><li>DP это вариант определения свойств и значений без использования интерфейса OR </li></ul><ul><li>Опять никакого мистического существа </li></ul>
  24. 24. <ul><li>OK, Я уловил , это не более чем свойства и их значения </li></ul><ul><li>Может мы приступим к работе ? </li></ul>
  25. 25. <ul><li>Как я РЕАЛЬНО </li></ul><ul><li>могу использовать DP? </li></ul><ul><li>Есть два варианта </li></ul>
  26. 26. <ul><li>1 </li></ul><ul><li>Вставка свойств и значений напрямую в команду </li></ul>
  27. 27. Это старый добрый известный вам синтаксис за исключением того, что строка в () – это не OR. Это идентификационная строка вида свойство := значение
  28. 28. <ul><li>Но это вроде ограничение </li></ul><ul><li>Что если я хочу использовать множество свойств ? </li></ul>
  29. 29. <ul><li>Нет проблем : </li></ul><ul><li>VBWindow(“height:=400”, “title:=New Document”).Maximize </li></ul><ul><li>Вы можете использовать столько свойств, сколько пожелаете </li></ul>
  30. 30. <ul><li>Все замечательно но, что если я захочу использовать регулярные выражения ? </li></ul>
  31. 31. <ul><li>Нет проблем : </li></ul><ul><li>VBWindow(“title:=.*Document.*”).Maximize </li></ul><ul><li>Значения свойств автоматически интерпретируются как регулярные выражения </li></ul>
  32. 32. <ul><li>2 </li></ul><ul><li>Оформление свойств и значений в Description объект и вставка ЕГО в команду </li></ul>
  33. 33. В этом случае значения интерпретируются тоже как регулярные выражения . Чтобы отключить это используйте oDesc(“Property1”).RegularExpression = False
  34. 34. <ul><li>Метод 1 - быстрее , наиболее применим для одной-двух команд </li></ul>
  35. 35. <ul><li>Если вы хотите выполнить несколько команд над объектом , метод 2 более предпочтителен </li></ul><ul><li>( позволяет , единожды определив , использовать многократно ) </li></ul>
  36. 36. <ul><li>Вы можете использовать </li></ul><ul><li>DP вместе с OR </li></ul><ul><li>VBWindow(“OR”).VBButton(“text:=OK”).Click </li></ul><ul><li>или ( если oDesc - Description объект ): </li></ul><ul><li>VBWindow(“OR”).VBButton(oDesc).Click </li></ul>
  37. 37. <ul><li>НО , вы только можете начать с OR и продолжить с DP </li></ul><ul><li>То есть это не сработает : </li></ul><ul><li>VBWindow(“title:=notgood”).VBButton(“clickme”).Click </li></ul>
  38. 38. <ul><li>И на этом всё </li></ul><ul><li>Вы можете использовать каждый из методов ( или комбинировать их) , и вы сможете использовать объекты, которые не сохранены в OR </li></ul>
  39. 39. <ul><li>Вы говорили, что я смогу делать действительно крутые вещи с DP! </li></ul>
  40. 40. <ul><li>Ты прав </li></ul><ul><li>Мы рассмотрим некоторые наиболее популярные трюки и примеры </li></ul><ul><li>Эти примеры – только верхушка айсберга . Поработайте с ними и вы увидите истинную мощь DP . </li></ul>
  41. 41. <ul><li>Сила строки </li></ul><ul><li>DP – это не более чем просто строки </li></ul><ul><li>Но мы можем делать такие интересные вещи со строками … </li></ul>
  42. 42. <ul><li>Сила строки </li></ul><ul><li>Скажем у нас есть приложение с 5 checkboxes, check0, …, check4 </li></ul><ul><li>Мы можем установить их все с помощью простого цикла : </li></ul>
  43. 43. <ul><li>Сила строки </li></ul><ul><li>Очень сложные проблемы идентификации могут быть решены манипуляциями со строками </li></ul><ul><li>Попробуйте различные варианты самостоятельно </li></ul>
  44. 44. <ul><li>Дублированные объекты </li></ul><ul><li>Когда QTP находит два объекта удовлетворяющие одному описанию , он зависает </li></ul><ul><li>Это засада </li></ul>
  45. 45. ?
  46. 46. <ul><li>В DP есть волшебное свойство : “index”, которое позволяет нам обращаться к дублированным объектам раздельно </li></ul><ul><li>Index – это начинающийся с нуля счетчик </li></ul>
  47. 47. Всё в порядке
  48. 48. <ul><li>Получение коллекций объектов </li></ul><ul><li>Эта функциональность настолько крута , что заслуживает своего отдельного заголовка </li></ul>
  49. 49. <ul><li>САМАЯ крутая вещь, которую вы можете делать с DP - это получение коллекций объектов, удовлетворяющих условию отбора </li></ul>
  50. 50. Я не знаю кто вы или сколько вас , но я хочу отметить вас всех ! Обычный DP не поможет – не знает как идентифицировать каждый checkbox
  51. 51. <ul><li>Коллекции объектов идут на помощь ! </li></ul><ul><li>Шаг 1: Определяем Description объект </li></ul>
  52. 52. <ul><li>Коллекции объектов идут на помощь ! </li></ul><ul><li>Шаг 2: Получаем все подходящие объекты </li></ul>
  53. 53. <ul><li>Коллекции объектов идут на помощь ! </li></ul><ul><li>Шаг 3: Используем коллекцию </li></ul><ul><li>oChildren сейчас содержит коллекцию всех checkboxes </li></ul><ul><li>И первый checkbox доступен как : oChildren(0) </li></ul>
  54. 54. <ul><li>Что мы можем с ней делать ? </li></ul><ul><li>Всё, что пожелаете </li></ul>
  55. 55. <ul><li>Пример использования </li></ul><ul><li>Отметка всех Checkboxes </li></ul><ul><li>Отметка всех checkboxes с определенным свойством ( в том числе RO) </li></ul>
  56. 56. <ul><li>Возможности безграничны </li></ul><ul><li>Случайное заполнение полей </li></ul><ul><li>Заполнение только обязательных полей </li></ul><ul><li>Нулевая поддержка ( новые поля добавляются автоматически , не замечая изменений UI) </li></ul><ul><li>Выбор объектов по сложным критериям ( написание собственных механизмов идентификации ) </li></ul><ul><li>Список можно продолжать и продолжать … </li></ul>
  57. 57. <ul><li>OK, это несомненно круто , но все это позволяет нам манипулировать объектами внутри данного окна . </li></ul><ul><li>А можем ли мы также работать с окнами самого приложения ? </li></ul>
  58. 58. <ul><li>Конечно </li></ul>
  59. 59. <ul><li>Итак , с DP вы можете работать без OR </li></ul><ul><li>Иногда вы просто должны использовать его </li></ul><ul><li>В других случаях это забавно и полезно </li></ul><ul><li>DP также привносит множество бонусов, что делает его неотъемлемой частью качественной QTP автоматизации </li></ul><ul><li>Пробуйте его , Экспериментируйте с ним , Изучайте его , </li></ul><ul><li>Используйте его , Любите его </li></ul><ul><li>Это стоит вашего времени </li></ul>
  60. 60. <ul><li>Это был DP в 60 -ти слайдах </li></ul>

×