parameterization qtp explained with examples qtp tutorial 19
=> Щракнете тук за серията учебни уроци за QTP
Какво ще научите:
- Какво е QTP параметризация?
- Видове параметризация в QTP
- Параметризиране в QTP с помощта на таблица с данни с пример
- Препоръчително четене
Какво е QTP параметризация?
Понякога приложението не приема дублирани записи на данни. В този случай, ако стартирате същия тестов скрипт с фиксиран набор от входни данни, приложението може да изведе грешка поради дублиране на данни. За да се избегне този проблем, QTP предоставя начини за приемане на различни тестови входове в тестовия скрипт.
Този процес на предоставяне на различни входни стойности чрез външни параметри се нарича Параметризация
най-доброто приложение за изтегляне на видеоклипове в YouTube
Видове параметризация в 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
Проверих стойността на параметъра ON и след това има място в полето Datatable след името.
Име Съответното име на колона в таблицата с данни, откъдето трябва да се вземат данните. По подразбиране QTP ще предложи име. Имате възможност да го запазите както е предложено или да го промените според нуждите.
Глобален Лист: Този лист с данни е достъпен за всички действия в един тест.
Текущ лист за действие или локален лист: както подсказва името, това е листът с данни, който е достъпен за определено действие.
Отивам на няколко реда данни в глобалния лист с данни. Тук е полезен инструментът за кодиране на пароли. Можете да въведете криптирани стойности във вашия лист с данни, които получавате от този инструмент.
Ето как изглежда моят лист с данни:
какво може да отвори eps файл
След параметризацията така изглежда кодът:
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 реда данни в глобалния лист, ако на следващия екран задам опцията „Изпълнение на всички редове“ ВКЛ:
За всеки случай, ако не искате да използвате горния екран, за да решите колко реда трябва да бъде изпълнен кодът, можете да го направите програмно. За това трябва да изберете опцията „Изпълни само една итерация“ на горния екран и да напишете кода по следния начин:
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’?
Моля, обърнете внимание, че в горната част от кода не декларирах променливите в този тест, отстъпвах отчетите или предоставях коментари. Това е умишлено, тъй като не исках да разреждам същността на твърденията. Следващата концепция ще отговори на тези въпроси:
Състояние на вашия AUT:
Основното правило е - Всяка итерация трябва да започва с това, че AUT е едно и също състояние и завършва в същото състояние.
- Ако изявлението за отваряне на страницата gmail.com е извън цикъла for, тестът ще се изпълни добре за първата итерация, но за следващата страницата gmail.com няма да бъде отворена и тестът ще се провали.
- Ако изявлението за затваряне на браузъра не е включено в теста, тогава тестът ще отвори браузър с всяка итерация и в крайна сметка ще имате толкова отворени екземпляри на браузъра до броя редове в таблицата с данни.
- Представете си, ако инструкцията за затваряне е извън цикъла 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 # 20
- QTP уроци - 25+ Micro Focus Quick Test Professional (QTP) учебни уроци
- Намиране на елемент от селен чрез урок с текст с примери
- Уроци за задълбочено затъмнение за начинаещи
- Урок за QTP # 18 - Управлявани от данни и хибридни рамки, обяснени с примери за QTP
- Урок за QTP # 6 - Разбиране на настройките за запис и стартиране на QTP за първия ни тест
- QTP урок # 24 - Използване на виртуални обекти и сценарии за възстановяване в QTP тестове
- Описателно програмиране в QTP и връзка с база данни в QTP - Урок # 25