descriptive programming qtp
В този урок ще научите какво е описателното програмиране в QTP , и Връзка с база данни в QTP т.е. как да се свържете с външни източници на данни като бази данни и MS Excel листове с помощта на QTP.
Описателното програмиране е механизъм за създаване на тестове, при които използвате „Програмно описание“ на обекти, вместо да ги записвате.
=> Щракнете тук за серията учебни уроци за QTP
Кратка бележка за тази поредица от статии за QTP, преди да преминем към подробности за този урок:
Това е последният урок от нашата онлайн QTP серия за обучение. Надявам се, че всички сте се радвали на тези уроци и сте започнали да се учите от тях.
Изпратете ни обратна връзка:
Търся вашите отзиви не само за тази поредица с уроци, но и за цялостния сайт. Моля те кликнете тук, за да споделите вашите мисли за този уебсайт. Едва ли ще отнеме няколко минути, за да завършите. Ние ценим вашите отзиви и предложения. Кажете ни какво можем да направим, за да подобрим вашето преживяване със SoftwareTestingHelp.com
какво се използва c ++ за днес
Какво ще научите:
Описателно програмиране в QTP
Описателното програмиране е механизъм за създаване на тестове, при които използвате „Програмно описание“ на обекти, вместо да ги записвате.
С помощта на тази техника може да се направи QTP за идентифициране на обекти, които не са в хранилището.
Има 2 варианта на описателното програмиране:
- Статично описателно програмиране
- Динамично описателно програмиране
Статично описателно програмиране
Статичният метод е, когато се опитвате да получите достъп до обект, като използвате набор от свойства и стойности директно в VB израз.
Синтаксис: TestObject (“Име на свойството1: = стойност на свойството”, “Име на свойството 2: = стойност на свойството”, ... .n)
Ето как го използвате:
безплатно приложение за планиране на публикации в Instagram
Browser(“creationtime:=0”).Page(“title:=Google”).WebButton(“name:=Google Search”)
Динамично описателно програмиране
Това работи чрез създаване на обект за описание. Погледнете следния пример за създаване на обект webButton.
Set Testdesc=description.create Testdesc(“micClass”).value= “webButton”
- micClass се отнася до предварително дефинираните класове в QTP. Стойностите, които можете да зададете, могат да бъдат webbutton, weblist и др.
- В QTP 10 micClass стойностите са чувствителни към малки и големи букви, но при QTP 11 нататък те не са. Ако напишете уеб бутон в QTP 10, той няма да успее. Ще трябва да напишете webButton. Но същият уеб бутон ще премине в QTP 11.
Можете да извлечете всички обекти от определен клас на страница, като използвате следния израз:
Set ObjectList=Browser(“creationtime:=0”).Page(“title:=*”).ChildObjects(Testdesc) Msgbox ObjectList.count
Горният набор от инструкции ще извлече всички бутони на страница и ще ги съхрани в обекта ObjectList.
Универсалността на използването на описателно програмиране е, че тези редове код ще работят на всяка отворена страница. Можете да отворите google.com във вашия браузър и той ще преброи колко бутона са на тази страница. Ще работи точно по същия начин, ако сте отворили amazon.com или друг сайт.
Това е така, защото имаме името на заглавието на страницата, зададено на *, което е регулярен израз.
Така че можете да видите как можем да напишем код, който може да се използва повече от един път, като не се кодира трудно стойностите на свойствата и създаване на обекти по време на изпълнение .
Нека вземем нашия пример малко по-нататък. Кажете, че се опитвам да отпечатам имената на всички уеббутони на страницата едно след друго.
Ако на страницата има 4 бутона, можете да получите достъп до всеки един от тях по следния начин:
Msgbox ObjectList (0) .GetRoProperty (“name”) - Това ще отпечата името на първия бутон.
Msgbox ObjectList (1) .GetRoProperty („име“)
Msgbox ObjectList (2) .GetRoProperty („име“)
Msgbox ObjectList (3) .GetRoProperty („име“)
Отбележи, че:
- Индексът на дъщерните обекти започва от 0
- Тъй като обектът постига своите свойства по време на изпълнение, използваме метода GetRoProperty, за да извлечем същото.
Можем да променим горния код така, че да работи за произволен брой бутони на страницата, като използваме „For loop“ и повтаряме изявленията в „For block“, докато достигне края на броя на обектите.
For i=0 to ObjectList.count -1 to Step 1 Msgbox ObjectList (i).GetRoProperty(“name”) Next
Използването на „For loop“ е по-добре, защото в този случай не е необходимо да знаете колко обекта са във вашия обект за описание.
Няколко точки за отбелязване:
- Ще ви трябва практика, за да овладеете описателното програмиране. Без значение колко примери разглеждате и разбирате, ще ви е необходим практически опит, за да работите наистина с него.
- Като тестер не се очаква да знаете как са кодирани обектите във вашия AUT и на какви стойности са зададени. Затова използвайте ObjectSpy от време на време, за да изберете правилните свойства, за да ги видите.
- Резултатите от теста ще показват, че тестовият обект е създаден динамично по време на сесията на изпълнение, използвайки описание на програмирането или методите ChildObject.
Свързване към често използвани външни източници на данни от QTP
Ще има много случаи, докато подготвяте тестовете, които ще трябва да свържете с външна DB или някои други източници на данни. След като се свържете, вие също ще трябва да преместите данни към и от тези приложения в QTP и обратно.
Въпреки че е извън обхвата на тези статии, за да предоставим пълно ръководство за работа с външни интерфейси, ще разгледаме няколко, които са най-често използвани.
Връзка с база данни в QTP
За да се свържем с база данни, обикновено използваме обект за свързване ADO. ADO е ActiveX Data Objects на Microsoft.
Следват стъпките, които трябва да се следват:
# 1) Създайте DSN. Моля, обърнете се към урока за контролна точка на базата данни, за да видите как се прави това, или създайте такъв от контролния панел.
# две) Създайте обект за връзка:
Задайте conn = CreateObject (“ADODB.connection”)
# 3) Създайте обект на запис. Обектът Recordset съдържа резултатите от заявката, която ще изпълним.
Задайте rs = CreateObject (“ADODB.RecordSet”)
# 4) Отворете обекта за свързване и изпълнете заявката:
conn.Open „DSN = testDB2; UID = swatiseela; pwd = testing @ 123“
rs.Отворете “Select * from abc”, conn
# 5) Всички резултати от заявката вече могат да бъдат достъпни с помощта на обекта “rs”.
# 6) Например, ако искате да получите броя на върнатите редове, можете да използвате
rs.getrows
# 7) Например, таблицата има 2 реда и 3 колони (a, b, c), можете да получите достъп до стойностите, както следва:
Msgbox rs.fields (0) .a
Msgbox rs.fiels (0) .b
Msgbox rs.fields (0) .c
# 8) Можете да използвате инструкция за цикъл, ако има твърде много стойности за достъп.
# 9) Някои от функциите, които обектът от набор записи може да използва, са: rs.move, rs.movenext, rs.getrows, rs.close, rs.open и т.н.
Нека разгледаме целия код наведнъж:
Set conn=CreateObject(“ADODB.connection”) Set rs=CreateObject(“ADODB.RecordSet”) conn.Open “DSN=testDB2;UID=swatiseela;pwd=testing@123” rs.Open “Select * from abc”,conn msgbox rs.getrows Msgbox rs.fields(0).a Msgbox rs.fiels(0).b Msgbox rs.fields(0).c Msgbox rs.fields(1).a Msgbox rs.fiels(1).b Msgbox rs.fields(1).c rs.close conn.close
Свързване към MS Excel листове
Всички знаем, че когато отворим приложение на Excel, целият файл е работна книга, която има листове с колони и редове, където поставяме данните.
По-долу е кодът и коментарите, които ще ви помогнат да разберете как се прави.
‘Create an excel application object Set excelobj = CreateObject(“Excel.Application”) ‘Set it to visible, otherwise it will be visible in the task manager but you will not be able to view it but it continues to work in the background excelobj.visible = true ‘Opens a workbook at the path speficified. If you need to open a new workbook, use excelobj.workbooks.Add excelobj.workbooks.Open(“C:UsersSwatiDesktopQTP est.xls”) ‘Sets the current sheet as i. the sheet number starts from 1 i=1 Set sheet1 = excelobj.activeworkbook.sheets(i) ‘write to a cell in sheet 1. The cell is row 8 column 4, D8. excelobj.activeworkbook.sheets(1).cells(8,4) = “Test QTP Write to cell” ‘To get the data from sheet2 cell ID C6 testretrurnval = excelobj.activeworkbook.sheets(3).cells(6,3) ‘save changes excelobj.activeworkbook.save ‘close the workbook excelobj.activeworkbook.close ‘Close Excel application excelobj.quit ‘Clear memory Set excelobj = nothing
Освен горните функции, имаме и следните, които можем да използваме в зависимост от вашите нужди.
- excelobj.activeworkbook.sheets.add - За да добавите нов лист
- excelobj.activeworkbook.sheets (i) .delete - За да изтриете лист с индекс i
- excelobj.activeworkbook.sheeets (i) .name = „Име по ваш избор“ - За да промените името на лист с индекса i.
- x = excelobj.activeworkbook.sheets.count - за да получите броя на листите в работната книга
- excelobj. activeworkbook.saves “CompletePathWithNewName.xls” - за да запазите работната книга под ново име
Това завършва не само тази статия, но и нашата поредица от обучения за QTP. В следващата статия ще разгледаме някои по-важни Въпроси за QTP интервю с отговори . Моля, уведомете ни за вашите коментари и въпроси.
=> Посетете тук за серията учебни уроци за QTP
Следете за още полезни статии и уроци за тестване на софтуер! Ако не сте абонирани за нашия безплатен бюлетин по имейл, моля, направете го сега до щракнете тук .
каква програма отваря json файл
Препоръчително четене
- QTP уроци - 25+ Micro Focus Quick Test Professional (QTP) учебни уроци
- Параметризиране в QTP (част 2) - Урок за QTP # 20
- Урок за QTP # 18 - Управлявани от данни и хибридни рамки, обяснени с примери за QTP
- Параметризиране в QTP, обяснено с примери (част 1) - Урок за QTP # 19
- Урок за QTP # 6 - Разбиране на настройките за запис и стартиране на QTP за първия ни тест
- QTP урок # 24 - Използване на виртуални обекти и сценарии за възстановяване в QTP тестове
- MongoDB Създаване на урок за база данни
- Тестване на база данни с JMeter