parameterization qtp explained with examples qtp tutorial 19
=> Kliknij tutaj, aby zapoznać się z serią samouczków szkoleniowych QTP
Czego się nauczysz:
- Co to jest parametryzacja QTP?
- Rodzaje parametryzacji w QTP
- Parametryzacja w QTP z wykorzystaniem danych z przykładem
- rekomendowane lektury
Co to jest parametryzacja QTP?
Czasami aplikacja nie akceptuje zduplikowanych rekordów danych. W takim przypadku, jeśli uruchomisz ten sam skrypt Test ze stałym zestawem danych wejściowych, aplikacja może zgłosić błąd z powodu duplikacji danych. Aby uniknąć tego problemu, QTP zapewnia sposoby akceptowania różnych danych wejściowych testowych do skryptu testowego.
Ten proces dostarczania różnych wartości wejściowych za pośrednictwem parametrów zewnętrznych nazywa się parametryzacją
plsql pytania do wywiadu i odpowiedzi dla doświadczonych
Rodzaje parametryzacji w QTP
Wartością zmiennej może być lub typami parametrów mogą być:
- Parametry tabeli danych
- Parametry testu / działania
- Parametry zmiennych środowiskowych
- Parametry liczb losowych
W tym samouczku dotyczącym QTP skupimy się głównie na parametryzacji przy użyciu Datatable. W następnym samouczku wyjaśnimy inne rodzaje metod parametryzacji.
Parametryzacja w QTP
Załóżmy, że próbujesz napisać program, który sprawdza wartości logowania kilku użytkowników w witrynie gmail.com. Poniżej znajduje się kod, który masz dla jednego użytkownika, ale chcesz, aby ten sam za każdym razem przyjmował inne wartości. Jak Ty to robisz?
Kod do logowania się do Gmaila dla jednego użytkownika:
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
Teraz przejdź do widoku Słowa kluczowe i kliknij kolumnę wartości, aby ustawić identyfikator adresu e-mail i zestaw haseł.
Typowy ekran, który pojawia się podczas próby parametryzacji:
Lista prywatnych serwerów World of Warcraft
Jak widać, wartością może być stała, w tym przypadku „swatiseela”, identyfikator logowania.
Lub jeśli wybierzesz opcję parametryzacji, zostaną aktywowane odpowiednie pola na ekranie.
Na tym ekranie można wybrać sparametryzowanie wybranej wartości za pomocą wartości z tabeli danych, zmiennej środowiskowej lub liczby losowej. Ponieważ najczęściej używanym źródłem jest tabela danych, omówimy to najpierw.
Oprócz tego możesz użyć wartości wejściowych i wyjściowych określonej akcji jako parametru dla wartości. O tym też porozmawiamy za chwilę.
Parametryzacja w QTP z wykorzystaniem danych z przykładem
Parametryzacja w QTP za pomocą Excela
Sprawdziłem wartość parametru ON, a po nazwie znajduje się lokalizacja w polu Datatable.
Nazwa Odpowiednia nazwa kolumny w tabeli danych, z której mają zostać pobrane dane. Domyślnie QTP zasugeruje nazwę. Możesz zachować to zgodnie z sugestią lub zmienić w razie potrzeby.
Światowy Arkusz: Ten arkusz danych jest dostępny dla wszystkich czynności w teście.
Bieżący arkusz akcji lub arkusz lokalny: jak sama nazwa wskazuje, jest to arkusz danych, który jest dostępny dla określonego działania.
Mam zamiar przejść do wielu wierszy danych do globalnego arkusza danych. W tym miejscu przydaje się narzędzie do kodowania haseł. Możesz umieścić zaszyfrowane wartości w swoim arkuszu danych, który otrzymujesz z tego narzędzia.
Tak wygląda mój arkusz danych:
Po parametryzacji kod wygląda tak:
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
W powyższym kodzie zobaczysz, że wartości identyfikatora e-mail i hasła są pobierane z tabeli danych.
Ten kod będzie działał dla wszystkich 4 wierszy danych w arkuszu globalnym, jeśli na następnym ekranie ustawię opcję „Uruchom we wszystkich wierszach” WŁĄCZONE:
grep w skrypcie powłoki unixowej
Na wszelki wypadek, jeśli nie chcesz używać powyższego ekranu do decydowania o liczbie wierszy, które kod ma zostać wykonany, możesz to zrobić programowo. W tym celu na powyższym ekranie wybierz opcję „Uruchom tylko jedną iterację” i napisz kod w następujący sposób:
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
Podczas wykonywania testu działającego przez 2 iteracje ekran wyników testu będzie wyglądał następująco:
Chciałbym poświęcić trochę czasu na zbadanie kodu i próbę zrozumienia, dlaczego każda linia i jej kolejność są ważne dla pomyślnego wykonania testu:
- Dlaczego otwieram przeglądarkę w pętli „for”?
- Dlaczego wszędzie są instrukcje synchronizacji?
- Dlaczego programowo zamykamy przeglądarkę na końcu, zamiast pozwolić, aby opcja „Zapisz i uruchom ustawienia - Zamknij przeglądarkę po zakończeniu testu” załatwiła to za nas?
- Ponownie, dlaczego instrukcja close znajduje się w pętli „for”?
Zwróć uwagę, że w powyższym fragmencie kodu nie deklarowałem zmiennych w tym teście, nie wcinałem instrukcji ani nie podawałem komentarzy. Jest to celowe, ponieważ nie chciałem osłabiać istoty wypowiedzi. Poniższa koncepcja odpowie na te pytania:
Stan Twojego AUT:
Podstawowa zasada jest taka - każda iteracja powinna zaczynać się od AUT będącego tym samym stanem i kończącego się w tym samym stanie.
- Gdyby instrukcja otwarcia strony gmail.com znajdowała się poza pętlą for, test działałby poprawnie w pierwszej iteracji, ale w następnej strona gmail.com nie zostałaby otwarta i test zakończyłby się niepowodzeniem.
- Jeśli polecenie zamknięcia przeglądarki nie jest uwzględnione w teście, test otworzyłby przeglądarkę przy każdej iteracji i w rezultacie miałbyś tyle instancji przeglądarki otwartej dla określonej liczby wierszy w tabeli danych.
- Wyobraź sobie, że instrukcja close znajdowała się poza pętlą for, to również skończysz ze zbyt wieloma przeglądarkami.
- Instrukcja synchronizacji: wymusza na teście QTP oczekiwanie, aż określona strona wczyta się całkowicie, zanim zacznie wykonywać na niej określoną operację.
Zawsze staraj się przywrócić aplikację do stanu, w którym została rozpoczęta. Dzięki temu zapewnisz ten sam interfejs dla każdej iteracji do interakcji.
Poniżej znajduje się fragment kodu, gdy używasz lokalnego arkusza zamiast globalnego:
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
W QTP można sparametryzować wartości:
- Punkty kontrolne.
- Właściwości obiektu dla wybranego kroku.
- Argumenty operacji zdefiniowane dla wybranego kroku.
- Co najmniej jedna właściwość obiektu przechowywana w lokalnym repozytorium obiektów w oknie dialogowym Właściwości obiektu lub w oknie Repozytorium obiektów.
Powyższe również jest przykładem danych napędzających pewien test. Zobaczymy, jak sparametryzować za pomocą inne typy parametrów w następnym artykule.
=> Odwiedź tutaj, aby zapoznać się z serią samouczków szkoleniowych QTP
rekomendowane lektury
- Parametryzacja w QTP (część 2) - samouczek QTP nr 20
- Samouczki QTP - ponad 25 samouczków szkoleniowych Micro Focus Quick Test Professional (QTP)
- Selenium Find Element By Text Samouczek z przykładami
- Dogłębne samouczki dotyczące Eclipse dla początkujących
- QTP Tutorial # 18 - Objaśnienie struktur opartych na danych i hybrydowych z przykładami QTP
- Samouczek QTP nr 6 - Zrozumienie ustawień nagrywania i uruchamiania QTP dla naszego pierwszego testu
- Samouczek QTP nr 24 - Używanie obiektów wirtualnych i scenariuszy odzyskiwania w testach QTP
- Programowanie opisowe w QTP i połączenie z bazą danych w QTP - samouczek nr 25