selenium database testing using webdriver
V našom poslednom výučbe selénu sme sa naučili ako na to vyriešiť niektoré opakujúce sa problémy v skriptoch selénu . Diskutovali sme o niekoľkých pokrokových konceptoch, v ktorých by sme sa zaoberali udalosťami myši a klávesnice, prístupom k viacerým odkazom implementáciou zoznamov.
Napredujeme s našimi pokročilé témy zo série školení o seléne , predstavili by sme vám koncept Testovanie databázy pomocou nástroja Selenium WebDriver.
Diskutovali by sme o základných procesoch, ako je pripojenie k databáze, vykonávanie dotazov, načítanie údajov a odpojenie inštancií databázy, atď. Tiež by sme diskutovali o rôznych praktických implikáciách, kde potrebujeme testovanie databázy s automatizovaným testovaním, aby sme mohli otestovať kompletné scenáre.
Pred pokračovaním v riešení technických dôsledkov spojených s testovaním automatizovanej databázy. Poďme diskutovať o niekoľkých scenároch, v ktorých vyžadujeme vykonávanie testovania databázy spolu s testovaním automatizácie. Ale predtým by som chcel potvrdiť, že testovanie databázy je veľmi zvláštny typ testovania, zatiaľ čo Selenium WebDriver je nástroj používaný na simuláciu a automatizáciu používateľských interakcií s používateľským rozhraním aplikácie.
Takže technicky vzaté, nevykonávame presne Testovanie databázy, skôr testujeme našu aplikáciu v spojení s Databázou, aby sme zaistili, že sa zmeny prejavia na oboch koncoch, čím včas identifikujeme chyby.
Absolútne všetky webové aplikácie potrebujú na ukladanie údajov backend. Databázy ako MySQL, Oracle a SQL Server sú v dnešnej dobe pomerne populárne.
Ak sa teraz vraciame k pôvodnej téme, poďme diskutovať o niekoľkých scenároch, ktoré ukážu dopyt po testovaní databázy spolu s testovaním automatizácie.
Čo sa dozviete:
- Zvážte nasledujúce scenáre
- Vytváranie testovacích údajov v databáze
- Vytvorenie novej databázy
- Záver
- Odporúčané čítanie
Zvážte nasledujúce scenáre
# 1) Občas sa od nás vyžaduje, aby sme sa ubezpečili, že údaje zadané z používateľského rozhrania sa v databáze dôsledne odrážajú. Takto načítame informácie z databázy a overíme načítané informácie oproti informáciám poskytnutým z používateľského rozhrania. Napríklad registračné formuláre, údaje používateľa, profily používateľov, aktualizácie a vymazania údajov používateľa. Automatizovaným testovacím scenárom teda môže byť „Overiť, či sa informácie o používateľovi úspešne ukladajú do databázy, akonáhle sa používateľ zaregistruje v aplikácii“.
#dva) Iný prípad použitia vykonania testovania databázy pomocou nástroja Selenium WebDriver môže vzniknúť, keď je používateľovi nariadené načítať testovacie údaje alebo očakávané údaje z databázy. V takom prípade by teda používateľ nadviazal spojenie s databázou pomocou rozhrania API tretej strany, vykonal dotazy na získanie údajov z množiny údajov a potom uplatnil údaje získané z databázy so skutočnými údajmi, ktoré sú vyplnené v používateľskom rozhraní aplikácie .
# 3) Ďalším prípadom použitia je vykonanie asociatívneho testovania databázy. Predpokladajme, že sme vykonali operáciu v používateľskom rozhraní aplikácie a chceme otestovať odraz v databáze. Môže sa stať, že ovplyvnené údaje sa kvôli priradeniu nachádzajú v rôznych tabuľkách databázy. Preto je vždy vhodné otestovať odraz údajov vo všetkých ovplyvnených oblastiach.
Selén, ako som už povedal, simuluje interakcie používateľa s testovanou aplikáciou. Môže simulovať udalosti na klávesnici, akcie myši atď. Ak však používateľ chce automatizovať čokoľvek mimo dosahu prehliadača - interakcie webových aplikácií, selén mu nemôže veľmi pomôcť. Preto na vykonávanie testovania typu end-to-end požadujeme ďalšie nástroje alebo schopnosti.
Vo všetkých vyššie uvedených scenároch teda môžeme vyžadovať vykonanie Testovania databázy spolu s Automatizáciou používateľského rozhrania. Môžeme skontrolovať obchodnú logiku manipuláciou s údajmi a overením ich odrazu. Môžeme tiež skontrolovať technické aspekty samotnej databázy, ako je mäkké odstránenie, overenie poľa atď.
Poďme teraz vpred so skutočnou implementáciou. Pred vývojom skriptov Selenium WebDriver na extrakciu údajov zo zdroja údajov vytvorme testovacie údaje v databáze. Pre tento tutoriál by sme použili MySQL ako databázu.
Vytváranie testovacích údajov v databáze
Ak ste si databázu ešte nestiahli, stiahnite si ju pomocou odkaz . Od používateľa sa očakáva, že pri sťahovaní a inštalácii databázy vykoná niekoľko základných krokov.
= >> Prečítajte si tento návod pre stiahnuť a nainštalovať databázu MySQL .
.torrent súbory ako otvoriť
Po úspešnej inštalácii databázy môže používateľ spustiť príkazový riadok MySQL, ktorý by vyzeral ako na nasledujúcom obrázku. Aplikácia môže požiadať používateľa o zadanie hesla. Predvolené heslo je „root“.
Poznámka : Používateľ môže tiež nájsť klientov založených na grafickom používateľskom rozhraní cez internet na pripojenie k databáze. Aby sme vymenovali aspoň niektoré, používateľ si môže stiahnuť a nainštalovať Prehliadač dotazov alebo Pracovnú lavicu.
Vytvorenie novej databázy
Ďalším krokom je vytvorenie testovacej databázy s niekoľkými tabuľkami a záznamami uloženými v týchto tabuľkách s cieľom nadviazať spojenie s databázou a vykonávať dotazy.
Krok 1) Zadaním príkazu „zobraziť databázy“ zobrazíte všetky už dostupné databázy
zobraziť databázy;
Krok 2) Zadajte príkaz „create user user;“ vytvoriť databázu s názvom „užívateľ“.
vytvoriť užívateľa databázy;
Vezmite na vedomie, že názov databázy, keď je používateľ vytvorený, je možné vidieť v zozname databáz.
Krok 3) Zadajte príkaz „use user;“ vyberte novovytvorenú databázu. Zadajte tiež „zobraziť tabuľky;“ Ak chcete zobraziť všetky tabuľky dostupné v databáze používateľov.
používať používateľa;
zobraziť tabuľky;
Upozorňujeme, že prázdna množina sa zobrazuje vo výsledku „Zobraziť tabuľky;“ dopyt, pretože v databáze používateľov neboli k dispozícii žiadne tabuľky.
Poďme teraz niekoľko tabuliek a pridajme do nich záznamy.
Krok 4) Zadaním nasledujúceho príkazu vytvorte tabuľku so 4 poľami / stĺpcami (userId, userName, userAge, userAddress).
vytvoriť tabuľku userinfo
(
userId int,
meno používateľa varchar (255),
userAge int,
userAddress varchar (255)
);
Ďalším krokom je pridanie niektorých údajových záznamov do tabuľky „userinfo“.
Krok 5) Zadajte nasledujúci príkaz na vloženie údajov do tabuľky, tabuľky pre všetky štyri polia, 4 polia / stĺpce (userId, userName, userAge, userAddress).
vložte do userinfo (userID, userName, userAge, userAddress) hodnoty ('1', 'shruti', '25', 'Noida');
Ak chcete zobraziť pridané údaje, zadajte nasledujúci príkaz:
vyberte * z userinfo;
Podobne môžete do tabuľky pridať ďalšie údaje a môžete vytvoriť aj ďalšie tabuľky.
Teraz, keď sme vytvorili našu databázu. Môžeme napredovať a porozumieť implementácia automatizovaných dotazov na načítanie záznamov z databázy.
Ako sme už iterovali skôr, Selenium WebDriver je nástroj na automatizáciu používateľského rozhrania. Samotný selénový webový disk teda nie je spôsobilý na vykonávanie testovania databázy, ale je to možné pomocou rozhrania Java Database Connectivity API (JDBC). Rozhranie API umožňuje používateľovi pripojiť sa a pracovať so zdrojom údajov a načítať údaje pomocou automatizovaných dotazov. Aby bolo možné využívať API JDBC, je potrebné, aby bol v systéme spustený Java Virtual Machine (JVM).
Pracovný tok JDBC
Zamerali by sme naše zameranie na nasledujúce procesy:
- Vytvára sa spojenie s databázou
- Vykonávanie dotazov a aktualizačných príkazov na extrahovanie / načítanie údajov (operácie CRUD)
- Používanie a manipulácia s údajmi extrahovanými z databázy vo forme výsledkovej sady. (Sada výsledkov je zbierka údajov usporiadaných do riadkov a stĺpcov)
- Odpojenie pripojenia k databáze.
Ako už bolo povedané, aby sme mohli automaticky testovať databázu z našich testovacích skriptov Selenium WebDriver, pripojili by sme sa k databáze prostredníctvom pripojenia JDBC v rámci našich testovacích skriptov. Po pripojení môžeme v databáze spustiť toľko operácií CRUD (vytvorenie, čítanie, aktualizácia a odstránenie).
V tomto tutoriáli by sme diskutovali „Operácia čítania a jej varianty“ a o ich implementácii v skripte Selenium WebDriver. Predtým však skontrolujme testovací scenár manuálne pomocou príkazového riadku „MySQL“.
Scenár:
1) Otvorte databázový server a pripojte sa k „užívateľskej“ databáze.
dva) Uveďte všetky záznamy z tabuľky „userinfo“.
Syntax: vyberte * z userinfo;
3) Ukončite pripojenie k databáze.
Všimnite si, že prečítaný dotaz vypíše všetky používateľské údaje nachádzajúce sa v tabuľke userinfo. Tabuľka sa skladá z nasledujúcich stĺpcov.
- ID používateľa
- používateľské meno
- userAge
- userAddress
Výsledok tiež ukazuje, že v tabuľke je prítomný iba jeden súbor údajov.
Teraz vykonajme rovnaký scenár pomocou triedy Java.
Na získanie prístupu k databáze je používateľ vybraný z rôznych možností konektora, ktoré sú k dispozícii na pripojenie k databáze. Väčšina databázových konektorov je voľne distribuovaná ako súbory „jar“. Pretože používame MySQL ako zdroj údajov, je od nás požadované, aby sme stiahli súbor jar špecifický pre MySQL.
Súbor jar je možné stiahnuť z: tu alebo tu.
Krok 1 : Prvým a najdôležitejším krokom je konfigurácia cesty zostavenia projektu a pridanie súboru „mysql-connector-java-3.1.13-bin.jar“ ako externej knižnice.
Krok 2 : Vytvorte triedu Java s názvom „DatabaseTesingDemo“.
Krok 3 : Skopírujte a vložte nasledujúci kód do triedy vytvorenej v predchádzajúcom kroku.
Ukážka kódu
import org.junit.After; import org.junit.Before; import org.junit.Test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class DatabaseTesingDemo { // Connection object static Connection con = null; // Statement object private static Statement stmt; // Constant for Database URL public static String DB_URL = 'jdbc:mysql://localhost:3306/user'; // Constant for Database Username public static String DB_USER = 'root'; // Constant for Database Password public static String DB_PASSWORD = 'root'; @Before public void setUp() throws Exception { try{ // Make the database connection String dbClass = 'com.mysql.jdbc.Driver'; Class.forName(dbClass).newInstance(); // Get connection to DB Connection con = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); // Statement object to send the SQL statement to the Database stmt = con.createStatement(); } catch (Exception e) { e.printStackTrace(); } } @Test public void test() { try{ String query = 'select * from userinfo'; // Get the contents of userinfo table from DB ResultSet res = stmt.executeQuery(query); // Print the result untill all the records are printed // res.next() returns true if there is any next record else returns false while (res.next()) { System.out.print(res.getString(1)); System.out.print(' ' + res.getString(2)); System.out.print(' ' + res.getString(3)); System.out.println(' ' + res.getString(4)); } } catch(Exception e) { e.printStackTrace(); } } @After public void tearDown() throws Exception { // Close DB connection if (con != null) { con.close(); } } }
Výstup z vyššie uvedeného kódu je:
1 shruti 25 Noida
2 shrivastava 55 Bombaj
Prečítajte si Varianty výpisu
Kde klauzula s jedinou podmienkou
Reťazec query = “select * from userinfo where userId = '” + 1 + “‘ ”;
ResultSet res = stmt.executeQuery (dopyt);
Výkon:
1 shruti 25 Noida
Kde klauzula s viacerými podmienkami
Adresa reťazca = ”Mumbai”;
Reťazec query = “select * from userinfo where userId = '” + 2 + “‘ and userAddress =' ”+ Address +“ ‘”;
ResultSet res = stmt.executeQuery (dopyt);
Výkon:
2 shrivastava 55 Bombaj
Zobraziť ID používateľa
Reťazcový dopyt = „vyberte ID užívateľa z userinfo“;
ResultSet res = stmt.executeQuery (dopyt);
Výkon:
1
dva
Zobraziť ID užívateľa s klauzulou kde
Reťazcová adresa = „Noida“;
Reťazec query = “vyberte userId, userName z userinfo kde userAddress = '” + adresa + ”“ ”;
ResultSet res = stmt.executeQuery (dopyt);
Výkon:
dva
shrivastava
Rovnakým spôsobom tak môže užívateľ vykonávať rôzne dotazy na databázu.
Týmto poďme objasniť aj metódy prístupnosti výsledkov.
Metódy prístupu k výsledkom:
Názov metódy | Popis |
---|---|
double getDouble () | Metóda sa používa na načítanie údajov dvojitého typu z množiny výsledkov |
Reťazec getString () | Metóda sa používa na načítanie údajov typu reťazca z množiny výsledkov |
int getInt () | Metóda sa používa na načítanie údajov celého čísla z množiny výsledkov |
boolean getBoolean () | Metóda sa používa na získanie boolovskej hodnoty z množiny výsledkov |
float getFloat () | Metóda sa používa na získanie údajov typu float z množiny výsledkov |
long getLong () | Metóda sa používa na načítanie údajov dlhého typu z množiny výsledkov |
krátke getShort () | Metóda sa používa na načítanie údajov krátkeho typu z množiny výsledkov |
Dátum getDate () | Metóda sa používa na načítanie objektu typu Dátum z množiny výsledkov |
Metódy navigácie k výsledkom:
Názov metódy | Popis |
---|---|
boolean next () | Metóda sa používa na prechod na ďalší záznam v sade výsledkov |
booleovský predchádzajúci () | Metóda sa používa na prechod na predchádzajúci záznam v množine výsledkov |
boolean first () | Metóda sa používa na presun na prvý záznam v sade výsledkov |
boolean last () | Metóda sa používa na presun na posledný záznam v sade výsledkov |
boolovský absolútna (int číslo riadku) | Metóda sa používa na presun na konkrétny záznam v sade výsledkov |
Záver
Prostredníctvom tohto tutoriálu sme sa vás pokúsili oboznámiť s konceptom Automatizované testovanie databázy . Jasne sme kládli dôraz na technické dôsledky a potreby testovania databázy.
Pretože celá naša séria bola zameraná na selén, čitateľ môže byť uvedený do omylu a môže vytvoriť dojem, že tento výukový program by naučil vykonávať testovanie databázy pomocou selénu, ale ako som už niekoľkokrát spomínal, čokoľvek, čo leží mimo periférie testovania používateľského rozhrania , nemôže byť spracované selénom. Preto zavádzame rozhranie Java Database Connectivity (JDBC) API, aby sme mohli vykonať testovanie databázy vložením kódu do skriptov Selenium WebDriver.
JDBC umožňuje triede java pripojiť sa k databáze, načítať údaje z databázy alebo v skutočnosti vykonať ktorúkoľvek z operácií CRUD, manipulovať s výslednými údajmi a ukončiť spojenie.
Výukový program teda predstavuje základnú ukážkovú implementáciu vyššie uvedeného procesu.
Nasledujúci návod č. 29 : Budeme napredovať v pokročilých selénových témach. V ďalšom návode sa budeme venovať selénovému GRIDu - ktorý sa používa, keď musíte vykonať testovanie pomocou viacerých prehliadačov a máte veľké množstvo testovacích prípadov.
Odporúčané čítanie
- Testovanie databázy pomocou JMeter
- Integrácia selénu s JMeter
- Výukový program Cucumber Selenium: Cucumber Java Selenium WebDriver Integration
- Úvod do softvéru Selenium WebDriver - Výučba selénu č. 8
- Najlepšie nástroje na testovanie softvéru 2021 (QA Test Automation Tools)
- Implementácia nášho prvého skriptu WebDriver - výučba selénu WebDriver č. 10
- Najlepší online selenium WebDriver + výcvikový kurz JAVA
- Spock pre integráciu a funkčné testovanie so selénom