QTP: Універсальний клас для роботи з даними, Різне, Програмування, статті

Вплив світової кризи, на жаль, позначилося і на моїй персоні і мені треба було терміново і по можливості глибоко вивчити новий для себе фреймворк – Quick Test Professional. І душа рветься повідати про результати, які сподіваюся буду корисні не тільки мені одному.


Подвійне назва статті ніби говорить про те, що матеріалу накопичилося достатньо для невеликої серії статей і якщо сили і бажання не вичерпаються ще на першій статті, то є шанс побачити продовження …


1. Введення


У мене вже був досвід роботи з продуктами HP Mercury, але він ставився до попередньої лінійці, я маю на увазі WinRunner. Природно я очікував деякого подібності в процесах скріптостроенія та організації самого фреймворка. Тому по свіжих слідах постараюся викласти помічені мною цікаві моменти і привести свої приклади реалізації деяких функцій.


2. Робота з Excel-даними


Ще працюючи з WinRunner, я переконався, що вбудована реалізація Excel сховища не настільки гнучка, як мені б хотілося. Тому, як завжди, я приготувався до міграції своїх процедур для роботи з Excel. І був трохи здивований відсутності вбудованих засобів роботи з БД. Але це завдання цілком під силу, коли за плечима вся міць VB 🙂


2.1. Основні завдання


Отже, для початку визначимося, навіщо нам це потрібно.
Я завжди виступав за те, щоб підготовка тестових дані для автоматичних тестів була максимально спрощена з одного боку, і, по можливості, виключала можливість помилок при введенні з іншого.


Ці трудносовместімие речі відмінно реалізуються за допомогою вбудованої в Excel валідації вхідних даних і також прекрасно знищуються спробою редагування Excel таблиці безпосередньо з QTP.
Більш того знищується також будь кастомних форматування, без якого нормально читається таблиця перетворюється на картатий текст.


Було до втручання з QTP:



Стало після редагування з QTP:



Щоб уникнути подібних казусів я давно застосовую пряму вичитку з Excel файлів в масиви, використовуючи для цього стандартні ODBC джерела. Дана техніка успішно прижилася вже на наступних тестових фреймворку: Rational Robot, IBM Rational Functional Tester, WinRunner і сподіваюся QTP


Крім вирішення перерахованих вище проблем ми уникаємо також серйозного, на мій погляд, обмеження по використанню однієї таблиці для одного Excel sheet.


2.2. Попередні кроки


В Excel документах є функціональність яка дозволяє виділяти значущі для користувача підмножини ячееек в спеціальні структури. Такі структури звані “іменованими діапазонами” забезпечують можливість звертатися до них до них через логічні імена.
Крім того (що набагато більше значимо для нас) такі діапазони стають видні як стандартні ODBC таблиці із зовнішніх додатків.


Отже, для оформлення необхідної сукупності комірок в якості “іменованого діапазону” необхідно виконати следющим послідовність дій:




або безпосередньо ввівши ім’я діапазону в Navigation Bar.



Для перевірки коректності новоствореного іменованого діапазону – виділіть всі комірки діапазону і перевірте значення в Navigation Bar. Він повинен містити логічне ім’я замість A1 нотації.


Важливо відзначити одну вимогу обов’язково при використанні іменованих діапазонів в якості джерела даних:
– Перший рядок нашого діапазону повинна містити імена стовпців, а не дані


2.3. З боку функціональної бібліотеки


Після всіх підготовчих кроків залишилося зовсім небагато попрацювати руками, а точніше пописати код.


Раз вже QTP 9.5 надав нам чудову можливість працювати c “майже” об’єктами – гріх було б їй не скористатися. Тому весь наш функціонал ми гордо загорніть в клас з милозвучною назвою TestData.


Варто нагадати, що QTP не бачить безпосередньо класи, оголошені в зовнішніх бібліотеках, тому для кожного класу має бути присутня функція створення екземпляра класу, в даному випадку – CreateTestData


Крім того ми повинні мати можливість ініціювати наш клас не тільки через завантаження з Excel джерела але і безпосередньо з коду. Саме для цих цілей з’явилися два методи: SetData і GetData

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*