selenium database testing using webdriver
V našem posledním selenovém výukovém programu jsme se naučili, jak na to řešení některých opakujících se problémů v selenových skriptech . Diskutovali jsme o některých pokročilých koncepcích, kde bychom se zabývali událostmi myši a klávesnice, přístupem k více odkazům implementací seznamů.
Pokračujeme s naším pokročilá témata ze série školení selenu , představili bychom vám koncept Testování databáze pomocí Selenium WebDriver.
Diskutovali bychom o základních procesech, jako je připojení k databázi, provádění dotazů, načítání dat a odpojování instancí databáze atd. Diskutovali bychom také o různých praktických implikacích, kde potřebujeme testování databáze s automatizovaným testováním, abychom mohli otestovat dokončete úplné scénáře.
Před pokračováním s technickými důsledky spojenými s automatizovaným testováním databáze. Pojďme diskutovat o několika scénářích, kde vyžadujeme provedení testování databáze spolu s automatizačním testováním. Ale předtím bych chtěl potvrdit, že testování databáze je velmi zvláštním typem testování, zatímco Selenium WebDriver je nástroj používaný k simulaci a automatizaci uživatelských interakcí s uživatelským rozhraním aplikace.
Technicky vzato tedy neprovádíme přesně Testování databáze, ale testujeme naši aplikaci ve spojení s Databází, abychom zajistili, že se změny projeví na obou koncích a tím včas identifikujeme vady.
Absolutně všechny webové aplikace potřebují pro ukládání dat backend. Databáze jako MySQL, Oracle a SQL Server jsou dnes poměrně populární.
Otázky a odpovědi s analytiky obchodních systémů
Nyní se vracíme k původnímu tématu, pojďme tedy probrat několik scénářů, abychom ilustrovali poptávku po testování databáze spolu s automatizačním testováním.
Co se naučíte:
- Zvažte následující scénáře
- Vytvoření testovacích dat v databázi
- Vytvoření nové databáze
- Závěr
- Doporučené čtení
Zvažte následující scénáře
# 1) Občas jsme povinni zajistit, aby se data zadaná z uživatelského rozhraní konzistentně odrážela v databázi. Načteme tedy informace z databáze a ověříme načtené informace proti informacím dodaným z uživatelského rozhraní. Například registrační formuláře, uživatelská data, uživatelské profily, aktualizace a mazání uživatelských dat. Automatizačním scénářem tedy může být „Ověření, že informace o uživateli jsou úspěšně uloženy do databáze, jakmile se uživatel zaregistruje v aplikaci“.
#dva) Další případ použití testování databáze pomocí Selenium WebDriver může nastat, když je uživateli nasměrováno načtení testovacích dat nebo očekávaných dat z databáze. V takovém případě by tedy uživatel navázal spojení s databází pomocí rozhraní API třetí strany, provedl dotazy k načtení dat z datové sady a poté uplatnil data získaná z databáze se skutečnými daty, která se naplní v uživatelském rozhraní aplikace. .
# 3) Dalším případem použití je provedení asociativního testování databáze. Předpokládejme, že jsme provedli operaci v uživatelském rozhraní aplikace a chceme otestovat odraz v databázi. Může se stát, že ovlivněná data budou umístěna v různých tabulkách databáze kvůli přidružení. Proto je vždy vhodné otestovat odraz dat ve všech ovlivněných oblastech.
Selen, jak jsem řekl, simuluje interakce uživatele s testovanou aplikací. Může simulovat události na klávesnici, akce myši atd. Pokud si však uživatel přeje automatizovat cokoli mimo dosah prohlížeče - interakce webových aplikací, pak selen nemůže být moc užitečný. Proto k provádění end-to-end testování vyžadujeme další nástroje nebo funkce.
Ve všech výše uvedených scénářích tedy můžeme požadovat provedení testování databáze spolu s automatizací uživatelského rozhraní. Můžeme zkontrolovat obchodní logiku manipulací s daty a ověřením jejich odrazu. Můžeme také zkontrolovat technické aspekty samotné databáze, jako je měkké odstranění, ověření pole atd.
Pojďme nyní pokročit ve skutečné implementaci. Před vývojem skriptů Selenium WebDriver pro extrakci dat ze zdroje dat vytvořme testovací data v databázi. Pro tento tutoriál bychom použili MySQL jako databázi.
Vytvoření testovacích dat v databázi
Pokud jste si databázi ještě nestáhli, stáhněte ji pomocí odkaz . Očekává se, že uživatel při stahování a instalaci databáze provede několik základních kroků.
= >> Přečtěte si tento návod pro stáhnout a nainstalovat MySQL databázi .
Jakmile je databáze úspěšně nainstalována, může uživatel spustit příkazový řádek MySQL, který by vypadal jako následující snímek obrazovky. Aplikace může požádat uživatele o zadání hesla. Výchozí heslo je „root“.
Poznámka : Uživatel může také najít klienty založené na grafickém uživatelském rozhraní přes internet a připojit se k databázi. Abychom jmenovali alespoň některé, může si uživatel stáhnout a nainstalovat Prohlížeč dotazů nebo Pracovní lavici.
Vytvoření nové databáze
Dalším krokem je vytvoření testovací databáze s několika tabulkami a záznamy uloženými v těchto tabulkách, aby bylo možné navázat spojení s databází a provádět dotazy.
Krok 1) Zadejte „zobrazit databáze“ a zobrazte všechny již dostupné databáze
zobrazit databáze;
Krok 2) Zadejte „vytvořit uživatele databáze;“ k vytvoření databáze s názvem „uživatel“.
vytvořit uživatele databáze;
Vezměte na vědomí, že název databáze, když je uživatel vytvořen, a lze jej vidět v seznamu databází.
Krok 3) Zadejte „použít uživatele;“ vyberte nově vytvořenou databázi. Zadejte také „zobrazit tabulky;“ pro zobrazení všech tabulek dostupných v databázi uživatelů.
používat uživatele;
zobrazit tabulky;
Vezměte na vědomí, že prázdná sada je zobrazena ve výsledku „zobrazit tabulky;“ dotaz, protože v databázi uživatelů nebyly k dispozici žádné tabulky.
Pojďme nyní několik tabulek a přidejte do nich záznamy.
Krok 4) Zadejte následující příkaz a vytvořte tabulku se 4 poli / sloupci (userId, userName, userAge, userAddress).
vytvořit tabulku userinfo
(
userId int,
uživatelské jméno varchar (255),
userAge int,
userAddress varchar (255)
);
Dalším krokem je přidání některých datových záznamů do tabulky „userinfo“.
Krok 5) Zadejte následující příkaz pro vložení dat do tabulky tabulku pro všechna čtyři pole 4 pole / sloupce (userId, userName, userAge, userAddress).
vložte do userinfo (userID, userName, userAge, userAddress) hodnoty („1“, „shruti“, „25“, „Noida“);
Chcete-li zobrazit přidaná data, zadejte následující příkaz:
vyberte * z userinfo;
Podobně můžete do tabulky přidat další data a můžete také vytvořit další tabulky.
Nyní, když jsme vytvořili naši databázi. Můžeme jít kupředu a porozumět implementace automatizovaných dotazů za účelem načtení záznamů z databáze.
Jak jsme také iterovali dříve, Selenium WebDriver je nástroj pro automatizaci uživatelského rozhraní. Samotný selenový WebDriver tedy není způsobilý k provádění testování databáze, ale to lze provést pomocí rozhraní Java Database Connectivity API (JDBC). API umožňuje uživateli připojit se a komunikovat se zdrojem dat a načíst data pomocí automatizovaných dotazů. Abyste mohli využívat API JDBC, je nutné mít v systému spuštěný Java Virtual Machine (JVM).
Pracovní postup JDBC
Zaměřili bychom naše zaměření na následující procesy:
- Vytváření připojení k databázi
- Provádění dotazů a aktualizačních příkazů za účelem extrakce / načtení dat (operace CRUD)
- Používání a manipulace s daty extrahovanými z databáze ve formě výsledkové sady. (Sada výsledků je soubor dat uspořádaných do řádků a sloupců)
- Odpojení připojení k databázi.
Jak již bylo řečeno dříve, abychom mohli automaticky testovat databázi z našich testovacích skriptů Selenium WebDriver, připojili bychom se k databázi prostřednictvím připojení JDBC v rámci našich testovacích skriptů. Po připojení můžeme v databázi spustit tolik operací CRUD (Vytvořit, Číst, Aktualizovat a Odstranit).
V tomto kurzu bychom diskutovali o „operaci čtení a jejích variantách“ a o jejich implementaci ve skriptu Selenium WebDriver. Předtím si ale ověříme testovací scénář ručně pomocí „příkazového řádku MySQL“.
Scénář:
nejlepší převodník z youtube na mp3 pro mac
1) Otevřete databázový server a připojte se k „uživatelské“ databázi.
2) Seznamte všechny záznamy z tabulky „userinfo“.
Syntax: vyberte * z userinfo;
3) Ukončete připojení k databázi.
Všimněte si, že přečtený dotaz vypíše všechna uživatelská data v tabulce userinfo. Tabulka se skládá z následujících sloupců.
- uživatelské ID
- uživatelské jméno
- userAge
- userAddress
Výsledek také ukazuje, že v tabulce je pouze jedna datová sada.
Nyní provedeme stejný scénář pomocí třídy Java.
Aby uživatel mohl přistupovat k databázi, je využíván k výběru mezi různými možnostmi konektorů, které jsou k dispozici pro připojení k databázi. Většina databázových konektorů je volně distribuována jako soubory „jar“. Protože používáme MySQL jako zdroj dat, je nutné si stáhnout soubor jar specifický pro MySQL.
Soubor jar lze stáhnout z: tady nebo tady.
Krok 1 : Prvním a nejdůležitějším krokem je konfigurace cesty sestavení projektu a přidání souboru „mysql-connector-java-3.1.13-bin.jar“ jako externí knihovny.
Krok 2 : Vytvořte třídu Java s názvem „DatabaseTesingDemo“.
aplikace pro stahování videa z YouTube pro PC
Krok 3 : Zkopírujte a vložte níže uvedený kód do třídy vytvořené ve výše uvedeném kroku.
Ukázka 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ýstupem výše uvedeného kódu je:
1 shruti 25 Noida
2 shrivastava 55 Mumbai
Přečtěte si varianty prohlášení
Kde klauzule s jedinou podmínkou
Řetězcový dotaz = “vyberte * z userinfo, kde userId = '” + 1 + “„ “;
ResultSet res = stmt.executeQuery (dotaz);
Výstup:
1 shruti 25 Noida
Kde klauzule s více podmínkami
Adresa řetězce = ”Mumbai”;
Řetězcový dotaz = “vyberte * z userinfo, kde userId = '” + 2 + “„ a userAddress =' “+ adresa +“ „“;
ResultSet res = stmt.executeQuery (dotaz);
Výstup:
2 shrivastava 55 Mumbai
Zobrazit ID uživatele
Řetězcový dotaz = „vyberte userId z userinfo“;
ResultSet res = stmt.executeQuery (dotaz);
Výstup:
jeden
dva
Zobrazit ID uživatele s klauzulí kde
Řetězcová adresa = „Noida“;
Řetězcový dotaz = “vyberte userId, userName z userinfo kde userAddress = '” + adresa + “„ “;
ResultSet res = stmt.executeQuery (dotaz);
Výstup:
dva
shrivastava
Uživatel tedy může stejným způsobem provádět různé dotazy na databázi.
S tímto pojďme osvětlit také metody přístupnosti výsledků.
Výsledek Metody přístupnosti:
Název metody | Popis |
---|---|
double getDouble () | Metoda se používá k načtení dat dvojitého typu ze sady výsledků |
Řetězec getString () | Metoda se používá k načtení dat typu řetězce z výsledkové sady |
int getInt () | Metoda se používá k načtení dat typu celého čísla z množiny výsledků |
boolean getBoolean () | Metoda se používá k načtení logické hodnoty ze sady výsledků |
float getFloat () | Metoda se používá k načtení dat typu float z výsledkové sady |
long getLong () | Metoda se používá k načtení dat dlouhého typu ze sady výsledků |
krátký getShort () | Metoda se používá k načtení dat krátkého typu ze sady výsledků |
Datum getDate () | Metoda se používá k načtení objektu typu Datum z množiny výsledků |
Výsledkové metody navigace:
Název metody | Popis |
---|---|
boolean next () | Metoda se používá k přechodu na další záznam v sadě výsledků |
boolean předchozí () | Metoda se používá k přechodu na předchozí záznam v sadě výsledků |
booleovský první () | Metoda se používá k přesunu na první záznam v sadě výsledků |
boolean last () | Metoda se používá k přesunu na poslední záznam v sadě výsledků |
booleovský absolutní (int číslo řádku) | Metoda se používá k přesunu na konkrétní záznam ve výsledkové sadě |
Závěr
Prostřednictvím tohoto tutoriálu jsme se pokusili seznámit vás s konceptem Automatizované testování databáze . Jasně jsme kladli důraz na technické důsledky a potřeby testování databáze.
Jelikož celá naše série byla zaměřena na selen, čtenář může být zmaten a může vytvořit dojem, že tento tutoriál by naučil provádět testování databáze pomocí selenu, ale jak jsem již několikrát zmínil, cokoli, co leží mimo periférii testování uživatelského rozhraní , nemůže být zpracováno selenem. Proto zavádíme rozhraní Java Database Connectivity (JDBC) API, abychom mohli provádět testování databáze vložením kódu do skriptů Selenium WebDriver.
JDBC umožňuje třídě Java připojit se k databázi, načíst data z databáze nebo ve skutečnosti provést jakoukoli z operací CRUD, manipulovat s výslednými daty a ukončit připojení.
Výukový program tedy představuje základní ukázkovou implementaci výše uvedeného procesu.
Další výuka # 29 : Pokročíme v pokročilých tématech selenu. V dalším kurzu se budeme věnovat Selenium GRID - který se používá, když musíte provést testování ve více prohlížečích a máte velký počet testovacích případů.
Doporučené čtení
- Testování databáze pomocí JMeter
- Integrace selenu s JMeter
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration
- Úvod do selenu WebDriver - Selenium Tutorial # 8
- Nejlepší nástroje pro testování softwaru 2021 (QA Test Automation Tools)
- Implementace našeho prvního skriptu WebDriver - výuka selenu WebDriver # 10
- Nejlepší online selenový WebDriver + JAVA školení
- Spock pro integraci a funkční testování se selenem