selenium framework creation
W ostatnim samouczku zapoznaliśmy Cię z podstawy ram automatyzacji testów , jego składniki i typy. Frameworki zilustrowane w poprzednim samouczku były jednymi z najpopularniejszych frameworków używanych przez fraterię testującą.
Krótko omówiliśmy ramy oparte na modułach, ramy oparte na architekturze bibliotek, ramy oparte na słowach kluczowych, ramy oparte na danych i ramy hybrydowe. W tym miejscu są również różne inne ramy.
Proszę zwrócić uwagę, że będziemy adoptować Struktura automatyzacji testów oparta na danych w pozostałych samouczkach.
W aktualnej tutorial z tej serii , zapoznamy Cię z plikiem przykładowy framework, Excels, który będzie przechowywać dane testowe i ich manipulacje w Excelu . Z tego samego powodu będziemy iść naprzód i wprowadzać nowe strategie i zasoby, aby dopracować nasze ramy.
Nauczmy się więc:
- Strategia tworzenia frameworka przy użyciu przykładowego projektu
- Uzyskaj dostęp do danych testowych przechowywanych w zewnętrznym źródle danych
Idąc dalej, zaczniemy od opisu hierarchii projektu, którą będziemy tworzyć w celu segregacji różnych komponentów projektu.
Na poniższym obrazku przedstawiono hierarchię projektu utworzoną dla przykładowego projektu. Poniższy projekt java można łatwo stworzyć w ramach zaćmienia, tak jak stworzyliśmy projekty we wcześniejszych tutorialach.
Czego się nauczysz:
- Struktura folderów projektu Selenium - przewodnik
- Tworzenie danych testowych
- Wniosek:
- rekomendowane lektury
Struktura folderów projektu Selenium - przewodnik
# 1) src - Folder zawiera wszystkie skrypty testowe, typy generyczne, czytniki i narzędzia. Wszystkie te zasoby to nic innego jak proste klasy Java. W folderze źródłowym (src) utworzyliśmy hierarchię folderów.
Badanie - Folder „test” składa się głównie z dwóch składników - zestawu testów oraz folderów reprezentujących różne moduły testowanej aplikacji. Dlatego każdy z tych folderów zawiera skrypty testowe specyficzne dla modułu, z którym jest powiązany. Testsuite to logiczne połączenie więcej niż jednego skryptu testowego. W ten sposób użytkownik może zaznaczyć wpis dowolnego ze skryptów testowych w zestawie testów, który chce wykonać w kolejnych przebiegach.
jak wyświetlić plik .dat
b) media - Folder „narzędzia” składa się z różnych typów ogólnych, stałych, czytników i klas do implementacji wyjątków zdefiniowanych przez użytkownika. Każdy z folderów w ramach narzędzi ma swoje znaczenie.
- Excel Reader - Utworzono klasę ogólną i wspólną do odczytywania danych testowych (parametrów wejściowych i oczekiwanych wyników) z arkuszy Excel
- Środowisko Stałe - Folder jest integracją klas Java, które przechowują zmienne statyczne odwołujące się do ścieżek i innych szczegółów środowiskowych. Te szczegóły mogą być adresem URL aplikacji, adresem URL baz danych, poświadczeniami baz danych i adresem URL dowolnego używanego narzędzia innej firmy. Różne adresy URL aplikacji można ustawić dla różnych środowisk (programowanie, produkcja, testowanie, master, slave itp.).
- DataSetters - Folder zawiera klasy, które implementują metody pobierające i ustawiające dane testowe pobrane z programu Excel. Aby załadować wiele zestawów danych testowych, tworzymy ArrayLists.
- Role użytkowników - Folder zawiera klasy, które zajmują się kryteriami dostępu opartymi na rolach, jeśli istnieją dla użytkowników instynktownych.
- Biblioteka funkcji - Folder składa się z klas, które zawierają funkcje i metody, które mogą być współużytkowane i używane przez wiele klas. Bardzo często mamy wykonać pewne procedury przed i po rzeczywistym wykonaniu testu, takie jak logowanie do aplikacji, konfigurowanie środowisk, czynności związane z rolkami, manipulacje danymi, zapisywanie wyników, metody generujące warunki wstępne / końcowe do innych metod . Ponieważ mamy tendencję do wykonywania tych czynności dla całego lub większości skryptu testowego. Dlatego zawsze zaleca się utworzenie osobnej klasy dla takich działań, zamiast kodowania ich wielokrotnie w każdym ze skryptów testowych.
- PreConditionalMethods
- PostConditionalMethods
Bardzo często mamy wykonać pewne procedury przed i po rzeczywistym wykonaniu testu, takie jak logowanie do aplikacji, konfigurowanie środowisk, czynności związane z rolami użytkownika, manipulacje danymi, zapisywanie wyników, metody generujące warunki przed / po innym metody. Ponieważ mamy tendencję do wykonywania tych czynności dla wszystkich lub większości skryptu testowego, zawsze zaleca się utworzenie oddzielnej klasy dla takich działań, zamiast kodowania ich wielokrotnie w każdym ze skryptów testowych.
CommonMethods
Podobnie jak warunki wstępne i końcowe, mogą istnieć metody i funkcje, z których można korzystać w więcej niż jednym skrypcie testowym. W związku z tym metody te są zgrupowane w klasie. Skrypt testowy może uzyskać dostęp do tych metod przy użyciu obiektu wspólnej klasy.
# 2) Pliki Excela - Pliki programu Excel są uważane za źródła danych / dostawców danych do wykonywania skryptów testowych. Te pliki przechowują dane testowe w parach klucz-wartość. Zwróć uwagę, że tworzymy osobny arkusz Excela dla każdego skryptu testowego, tj. Każdy skrypt testowy ma swój własny plik danych testowych. Nazwa skryptu testowego i odpowiadające mu pliki danych testowych / arkusz programu Excel zostały zachowane z perspektywy identyfikowalności. Sprawdź przykładowy format danych testowych poniżej:
Format danych testowych
Każda z kolumn reprezentuje klucz, a każdy z wierszy reprezentuje dane / wartość testową. Określ wiele wierszy, aby wykonać ten sam skrypt testowy z wieloma zestawami danych.
Zaznacz, że formaty danych testowych są zdefiniowane wyłącznie przez użytkownika. W związku z tym w oparciu o własne wymagania można dostosować pliki danych testowych.
# 3) biblioteka - Folder działa jako repozytorium / artefaktura dla wszystkich wymaganych plików jar, bibliotek, sterowników itp., Aby pomyślnie zbudować środowisko testowe i wykonać skrypty testowe. Skorzystaj z poniższego rysunku, aby sprawdzić biblioteki, w których będziemy zatrudnieni w naszym projekcie.
# 4) Dzienniki - Folder zawiera plik .txt, który przechowuje informacje logowania po każdym wykonaniu.
# 5) materiał testowy - Folder zawiera rzeczywiste dane testowe, które należy przesłać, jeśli takie istnieją. Ten folder pojawiłby się, gdy natkniemy się na scenariusze testowe, w których użytkownik jest zobowiązany do przesłania plików, dokumentów, zdjęć, raportów itp.
# 6) build.xml - Plik xml jest używany przez „Ant Server” do automatyzacji całego procesu budowania.
# 7) log4j.xml - Ten plik XML jest używany przez narzędzie Java o nazwie „Log4j” do generowania dzienników wykonywania.
Uwaga : Więcej informacji na temat dzienników, wyjątków zdefiniowanych przez użytkownika i programu Ant można znaleźć w nadchodzących samouczkach. Więc nie panikuj, jeśli pomylisz się między pojęciami.
Teraz, idąc naprzód, zrozummy zjawisko, w którym uzyskujemy dostęp do plików programu Excel i umieszczamy dane testowe w naszych skryptach testowych.
Aby łatwiej zrozumieć proces, podzielilibyśmy go na następujące kroki.
Tworzenie danych testowych
Krok 1 : Pierwszym i najważniejszym krokiem jest stworzenie danych testowych, za pomocą których wykonywalibyśmy skrypty testowe. Biorąc pod uwagę wyżej wymieniony format danych testowych, stwórzmy plik Excela o nazwie „TestScript1”. Podaj wartości w elementach.
Krok 2 : Następnym krokiem jest pobranie standardowego interfejsu API / biblioteki opartego na Javie o nazwie „Java Excel Library” (jxl), aby mieć dostęp do już utworzonych ogólnych metod manipulacji programem Excel.
Krok 3 : Utwórz ogólną klasę czytników programu Excel o nazwie „ExcelReader.java”. Skopiuj poniższy kod do pliku ExcelReader.java.
package Utilities; import java.io.File; import java.io.IOException; import java.util.Hashtable; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; /** * This is a utility class created to read the excel test data file before performing the test steps. * This class loads the excel file and * reads its column entries. * */ public class ExcelReader { /** * The worksheet to read in Excel file */ public static Sheet wrksheet; /** * The Excel file to read */ public static Workbook wrkbook = null; /** * Store the column data */ public static Hashtable dict = new Hashtable(); /** * Create a Constructor * * @param ExcelSheetPath * @throws BiffException * @throws WeblivException */ public ExcelReader(String ExcelSheetPath) throws IOException, BiffException { // Initialize try { wrkbook = Workbook.getWorkbook(new File(ExcelSheetPath)); wrksheet = wrkbook.getSheet('Sheet1'); } catch (IOException e) { throw new IOException(); } } /** * Returns the Number of Rows * * @return Rows */ public static int RowCount() { return wrksheet.getRows(); } /** * Returns the Cell value by taking row and Column values as argument * * @param column * @param row * @return Cell contents */ public static String ReadCell(int column, int row) { return wrksheet.getCell(column, row).getContents(); } /** * Create Column Dictionary to hold all the Column Names */ public static void ColumnDictionary() { // Iterate through all the columns in the Excel sheet and store the // value in Hashtable for (int col = 0; col Krok 4 : Utwórz klasę ogólną - „CommonMethods.java”. Utwórz w klasie wspólną metodę, która odczyta komórki z arkusza programu Excel przy użyciu metod zaimplementowanych w ExcelReader.java.
/** * Read the test data from excel file * * @param data The TestData data object */ public void readExcelData (TestData data) { ArrayList browser = new ArrayList(); ArrayList username = new ArrayList(); ArrayList password = new ArrayList(); ArrayList element1 = new ArrayList(); ArrayList element2 = new ArrayList(); ArrayList element3 = new ArrayList(); // Get the data from excel file for (int rowCnt = 1; rowCnt Krok 5 : Utwórz nową klasę Java o nazwie „TestData.java”. Ta klasa działałaby jako metoda pobierająca i ustawiająca dane programu Excel. Skopiuj i wklej następujący kod w klasie TestData.java.
package Utilities.dataSetters; import java.util.ArrayList; public class TestData { private ArrayList loginUser = null; private ArrayList password = null; private ArrayList browser = null; private ArrayList element1 = null; private ArrayList element2 = null; private ArrayList element3 = null; /** * @return loginUser */ public ArrayList getLoginUser() { return loginUser; } /** * @param loginUser */ public void setLoginUser(ArrayList loginUser) { this.loginUser = loginUser; } /** * @return password */ public ArrayList getPassword() { return password; } /** * @param password */ public void setPassword(ArrayList password) { this.password = password; } /** * @return browser */ public ArrayList getBrowser() { return browser; } /** * @param browser */ public void setBrowser(ArrayList browser) { this.browser = browser; } /** * @return element1 */ public ArrayList getElement1() { return element1; } /** * @param element1 */ public void setElement1(ArrayList element1) { this.element1 = element1; } /** * @return element2 */ public ArrayList getElement2() { return element2; } /** * @param element2 */ public void setElement2(ArrayList element2) { this.element2 = element2; } /** * @return element3 */ public ArrayList getElement3() { return element3; } /** * @param element3 */ public void setElement3(ArrayList element3) { this.element3 = element3; } }
Krok 6 : Następnym krokiem jest utworzenie instancji klas java „TestData.java” i „CommonMethods.java” w skrypcie testowym w celu uzyskania dostępu do danych testowych i ich zapełnienia. Zapoznaj się z poniższym fragmentem kodu do inicjowania obiektu, odczytywania danych programu Excel i wypełniania wartości tam, gdzie jest to wymagane.
jaki jest najlepszy darmowy program do pobierania youtube?
// Create Objects public ExcelReader excelReaderObj; CommonMethods commonMethodobj = new CommonMethods(); TestData td = new TestData(); // Load the excel file for testing excelReaderObj = new ExcelReader(Path of the excel); // Load the Excel Sheet Col in to Dictionary for use in test cases excelReaderObj.ColumnDictionary(); // Get the data from excel file commonMethodobj.readExcelData (td); // Populate the username driver.findElement(By.id('idofElement')).sendKeys(data.getLoginUser().get(0));
Dlatego używając instancji klasy testData.java w połączeniu z metodami pobierającymi, w skrypcie można umieścić dowolną wartość danych testowych.
Wniosek:
Samouczek dotyczył głównie takich pojęć, jak tworzenie ram i uzyskiwanie dostępu do danych testowych z programu Excel. Zapoznaliśmy Cię ze strategią tworzenia frameworka na przykładowym projekcie. Pokrótce przedstawiliśmy różne komponenty i aspekty naszej struktury.
Aby uzyskać dostęp do danych testowych przechowywanych w zewnętrznym źródle danych, użyliśmy API opartego na Javie - jxl. Stworzyliśmy również przykładowy kod do odczytywania i wypełniania danych programu Excel w skryptach testowych.
Następny samouczek # 22 : W następnym samouczku opieramy nasz samouczek na koncepcje generyków i mechanizm ich dostępności . Utworzylibyśmy kilka przykładowych metod ogólnych, a następnie uzyskalibyśmy do nich dostęp w ramach skryptów testowych. Chcielibyśmy również przedstawić koncepcję Testsuite i przykładowego tworzenia kodu.
rekomendowane lektury
- Wprowadzenie do JUnit Framework i jego wykorzystanie w skrypcie Selenium - Samouczek Selenium # 11
- Data Driven Framework w Selenium WebDriver przy użyciu Apache POI
- Cucumber Selenium Tutorial: Integracja Cucumber Java Selenium WebDriver
- Wprowadzenie do Selenium WebDriver - samouczek Selenium # 8
- Dogłębne samouczki dotyczące Eclipse dla początkujących
- Jak używać platformy TestNG do tworzenia skryptów selenium - Samouczek TestNG Selenium nr 12
- Efektywne skrypty Selenium i scenariusze rozwiązywania problemów - samouczek Selenium nr 27
- Debugowanie skryptów Selenium za pomocą dzienników (samouczek Log4j) - samouczek Selenium # 26