parameterization qtp explained with examples qtp tutorial 19
=> Клацніть тут для серії навчальних посібників з QTP
Що ви дізнаєтесь:
- Що таке параметризація QTP?
- Типи параметризації в QTP
- Параметризація в QTP з використанням таблиці даних на прикладі
- Рекомендована література
Що таке параметризація QTP?
Іноді програма не приймає дублікати записів даних. У цьому випадку, якщо ви запускаєте той самий тестовий сценарій із фіксованим набором вхідних даних, програма може спричинити помилку через дублювання даних. Щоб уникнути цієї проблеми, QTP надає способи приймати різні тестові вхідні дані до тестового сценарію.
Цей процес надання різних вхідних значень через зовнішні параметри називається параметризацією
як відтворити торрент-файл -
Типи параметризації в QTP
Значенням змінної може бути або типи параметрів:
- Параметри таблиці даних
- Параметри тесту / дії
- Змінні параметри середовища
- Параметри випадкових чисел
У цьому підручнику з QTP ми зосередимося головним чином на параметризації за допомогою Datatable. Ми пояснимо інші типи методів параметризації в наступному навчальному посібнику.
Параметризація в QTP
Скажімо, ви намагаєтеся написати програму, яка перевіряє значення входу для кількох користувачів на gmail.com. Далі наведено код, який ви маєте для одного користувача, але ви хочете, щоб той самий приймав різні значення кожного разу. Як ти це робиш?
Код для входу в Gmail для одного користувача:
SystemUtil.Run 'iexplore.exe', 'http://www.gmail.com' Browser('Gmail: Email from Google').page('Gmail: Email from Google').Sync Browser('Gmail: Email from Google').Page('Gmail: Email from Google').WebEdit('Email').Set 'swatiseela' Browser('Gmail: Email from Google').Page('Gmail: Email from Google').WebEdit('Passwd').SetSecure 'sfgs686898' Browser('Gmail: Email from Google').Page('Gmail: Email from Google').WebButton('Sign in').Click Browser('Gmail: Email from Google').Page('Gmail - Inbox').Link('Sign out').Click
Тепер перейдіть до подання Ключове слово та клацніть на стовпець значення для ідентифікатора електронної пошти та набору паролів.
Типовий екран, який з’являється, коли ви намагаєтеся параметризувати:
Як бачите, значенням може бути або константа, «swatiseela», в цьому випадку ідентифікатор для входу.
Або якщо ви вибрали параметризувати параметр, тоді активуються відповідні поля на екрані.
На цьому екрані ви можете параметризувати вибране значення як значенням таблиці даних, змінною середовища, так і випадковим числом. Оскільки найбільш часто використовуваним джерелом є таблиця даних, ми обговоримо це спочатку.
Крім них, ви можете використовувати вхідні та вихідні значення певної дії як параметр для значення. Ми також обговоримо це через деякий час.
Параметризація в QTP з використанням таблиці даних на прикладі
Параметризація в QTP за допомогою Excel
Я перевірив значення параметра УВІМКНЕНО, а потім у полі Datatable є місце, розташоване після імені.
Ім'я Відповідне ім'я стовпця в таблиці даних, звідки дані потрібно брати. За замовчуванням QTP запропонує ім’я. У вас є можливість зберегти його як запропоновано або змінити за потреби.
Глобальний Аркуш: Цей аркуш даних доступний для всіх дій у тесті.
Поточний аркуш дій або локальний аркуш: як випливає з назви, це аркуш даних, який доступний для певної дії.
Я збираюся перейти до декількох рядків даних до глобальної таблиці даних. Тут дуже до речі інструмент кодування паролів. Ви можете ввести зашифровані значення у свою таблицю даних, які ви отримуєте за допомогою цього інструменту.
Ось як виглядає мій паспорт даних:
як запустити торрент-файл -
Після параметризації ось як виглядає код:
SystemUtil.Run 'iexplore.exe', 'http://www.gmail.com' Browser('Gmail: Email from Google').page('Gmail: Email from Google').Sync Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebEdit('Email').Set DataTable('SignInName', dtGlobalSheet) Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebEdit('Passwd').SetSecure DataTable('GPassword', dtGlobalSheet) Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebButton('Sign in').Click Browser('Gmail: Email from Google').Page('Gmail - Inbox').Link('Sign out').Click Browser('Gmail: Email from Google').page('Gmail: Email from Google').Sync Browser('Gmail: Email from Google').Close
У наведеному вище коді ви побачите, що значення для ідентифікатора електронної пошти та пароля беруться з таблиці даних.
Цей код буде запущений для всіх 4 рядків даних у загальному аркуші, якщо на наступному екрані я встановлю опцію «Запустити на всіх рядках» ON:
запитання та відповіді технічної служби довідкової служби
Про всяк випадок, якщо ви не хочете використовувати наведений вище екран, щоб вирішити, скільки рядків потрібно виконати код, ви можете зробити це програмно. Для цього вам потрібно вибрати опцію “Запустити лише одну ітерацію” на екрані вище та написати код таким чином:
for i=1 to datatable.GetRowCount SystemUtil.Run 'iexplore.exe', 'http://www.gmail.com' Browser('Gmail: Email from Google').page('Gmail: Email from Google').Sync datatable.SetCurrentRow(i) varName=datatable.value('SignInName') varPwd=datatable.Value('GPassword') Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebEdit('Email').Set varName Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebEdit('Passwd').SetSecure varPwd Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebButton('Sign in').Click Browser('Gmail: Email from Google').Page('Gmail - Inbox').Link('Sign out').Click Browser('Gmail: Email from Google').page('Gmail: Email from Google').Sync Browser('Gmail: Email from Google').Close next
При виконанні тесту, який виконується протягом 2 ітерацій, ось так буде виглядати екран результатів тесту:
Я хотів би витратити якийсь час на вивчення коду та намагання зрозуміти, чому кожен рядок та його порядок важливі для успішного виконання тесту:
- Чому я відкриваю браузер у циклі «for»?
- Чому всюди є оператори синхронізації?
- Чому ми програмно закриваємо браузер наприкінці, замість того, щоб дозволити “Запис і запуск налаштувань - Закрити браузер при закритті тесту”, щоб подбати про це для нас?
- Знову ж таки, чому оператор close знаходиться всередині циклу «for»?
Зверніть увагу, що у наведеному вище фрагменті коду я не оголошував змінні в цьому тесті, не робив відступів тверджень та не давав коментарів. Це свідомо, оскільки я не хотів розбавляти суть висловлювань. Наступна концепція відповість на ці запитання:
Штат вашого AUT:
Основне правило - кожна ітерація повинна починатися з того, що AUT є однаковим станом і закінчується в тому ж стані.
- Якби оператор для відкриття сторінки gmail.com знаходився поза циклом for, тест би працював нормально для першої ітерації, але для наступної сторінка gmail.com не була б відкрита, і тест провалився.
- Якщо твердження про закриття браузера не включене в тест, тоді тест відкриє браузер з кожною ітерацією, і в кінцевому підсумку у вас буде стільки екземплярів браузера, відкритих до кількості рядків у таблиці даних.
- Уявіть, якщо оператор close знаходився поза циклом for, то у вас також з’явиться забагато браузерів.
- Заява про синхронізацію: це змушує тест QTP чекати, поки певна сторінка повністю завантажиться, перш ніж вона почне виконувати певну операцію над нею.
Завжди намагайтеся повернути свою заявку до того стану, де вона розпочалася. Це забезпечить однаковий інтерфейс для кожної з ваших ітерацій для взаємодії.
Нижче наведено шматок коду, коли ви використовуєте локальний аркуш замість глобального:
Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebEdit('Email').Set DataTable('Name', dtLocalSheet) Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebEdit('Passwd').SetSecure DataTable('Pwd', dtLocalSheet) Browser('Gmail: Email from Google').page('Gmail: Email from Google').WebButton('Sign in').Click
У QTP ви можете параметризувати значення:
- КПП.
- Властивості об’єкта для вибраного кроку.
- Аргументи операції, визначені для вибраного кроку.
- Одне або декілька властивостей об’єкта, що зберігається у локальному сховищі об’єктів у діалоговому вікні «Властивості об’єкта» або у вікні «Сховище об’єктів».
Вищезазначене також є прикладом даних, що проводять певний тест. Ми побачимо, як параметризувати за допомогою інші типи параметрів у наступній статті.
=> Завітайте сюди, щоб ознайомитись із серіями навчальних посібників з QTP
Рекомендована література
- Параметризація в QTP (Частина 2) - Підручник з QTP No20
- Підручники QTP - 25+ навчальних посібників з мікрофокусу з швидких тестів (QTP)
- Знайти елемент селену за текстовим посібником із прикладами
- Поглиблені підручники Eclipse для початківців
- Підручник QTP # 18 - Управління даними та гібридні фреймворки, пояснені на прикладах QTP
- Підручник QTP №6 - Розуміння параметрів запису та запуску QTP для нашого першого тесту
- Підручник QTP №24 - Використання віртуальних об’єктів та сценаріїв відновлення в тестах QTP
- Описове програмування в QTP та підключення до бази даних у QTP - Підручник # 25