Selenium Adatbázis tesztelés (WebDriver és JDBC API használatával)
a legutóbbi Selenium oktatóanyagunkban megtanultuk, hogyan lehet elhárítani néhány visszatérő problémát a selenium szkriptekben. Megbeszéltünk néhány olyan előzetes koncepciót, amelyben az egér és a billentyűzet eseményeivel foglalkoznánk, több hivatkozás elérésével listák végrehajtásával.
a Selenium training sorozat fejlett témáival továbblépve bemutatjuk Önnek a Selenium WebDriver használatával végzett Adatbázis-tesztelés koncepcióját.
megvitatjuk az alapvető folyamatokat, mint az adatbázis-kapcsolat, a lekérdezések végrehajtása, az Adatok lekérése és az adatbázis-példányok leválasztása stb. Azt is megvitatják a különböző gyakorlati következményei, ahol szükségünk van Adatbázis tesztelés automatizálási tesztelés annak érdekében, hogy teszteljék a teljes end-to-end forgatókönyvek.
használatával, mielőtt továbblépne az automatizált Adatbázis-teszteléshez kapcsolódó technikai következményekkel. Beszéljünk meg néhány forgatókönyvet, ahol megköveteljük az adatbázis tesztelését az automatizálási teszteléssel együtt. De előtte szeretném itt megerősíteni, hogy az adatbázis-tesztelés egy nagyon sajátos tesztelési típus, míg a Selenium WebDriver egy olyan eszköz, amelyet a felhasználói interakciók szimulálására és automatizálására használnak az alkalmazás felhasználói felületével.
tehát technikailag nem pontosan végezzük az adatbázis-tesztelést, hanem az adatbázissal együtt teszteljük alkalmazásunkat annak biztosítása érdekében, hogy a változások mindkét végén tükröződjenek, ezáltal Korán azonosítva a hibákat.
abszolút minden webes alkalmazásnak szüksége van egy háttérrendszerre az adatok tárolásához. Az olyan adatbázisok, mint a MySQL, az Oracle és az SQL Server, meglehetősen népszerűek manapság.
most visszatérve az eredeti témához, beszéljünk meg néhány forgatókönyvet, amelyek példázzák az adatbázis-tesztelés és az automatizálási tesztelés iránti igényt.
vegye figyelembe a következő forgatókönyveket
#1) időnként meg kell győződnünk arról, hogy a felhasználói felületről bevitt adatok következetesen tükröződnek az adatbázisban. Így lekérjük az információkat az adatbázisból, és ellenőrizzük a letöltött információkat az UI-tól kapott információkkal. Például regisztrációs űrlapok, felhasználói adatok, felhasználói profilok, felhasználói adatok frissítése és törlése. Így az automatizálandó tesztforgatókönyv lehet “annak ellenőrzése, hogy a felhasználó adatai sikeresen mentésre kerültek-e az adatbázisba, amint a felhasználó regisztrál az alkalmazásban”.
#2) a Selenium Webdriverrel végzett adatbázis-tesztelés másik felhasználási esete akkor merülhet fel, amikor a felhasználót arra utasítják, hogy töltse be a tesztadatokat vagy a várt adatokat az adatbázisból. Így ilyen esetben a felhasználó egy harmadik fél API-jával hozná létre a kapcsolatot az adatbázissal, lekérdezéseket hajtana végre az adatok lekérésére az adatkészletből, majd az adatbázisból letöltött adatokat az alkalmazás felhasználói felületén kitöltött tényleges adatokkal érvényesítené.
#3) egy másik felhasználási eset az asszociatív Adatbázis-tesztelés elvégzése. Tegyük fel, hogy végrehajtottunk egy műveletet az alkalmazás felhasználói felületén, és tesztelni akarjuk a reflexiót az adatbázisban. Előfordulhat, hogy az érintett adatok a Társítás miatt az adatbázis különböző tábláiban találhatók. Ezért mindig tanácsos tesztelni az adatok visszaverődését az összes érintett területen.
a Selenium, mint mondtam, szimulálja a felhasználói interakciókat a vizsgált alkalmazással. Képes szimulálni a billentyűzet eseményeit, az egér műveleteit stb. De ha a felhasználó bármit automatizálni akar a böngésző-web alkalmazás interakciók közelében kívül, akkor a selenium nem lehet sok segítség. Ezért más eszközökre vagy képességekre van szükségünk a végpontok közötti tesztelés elvégzéséhez.
így a fenti forgatókönyvek mindegyikében szükség lehet Adatbázis-tesztelés elvégzésére a felhasználói felület automatizálásával együtt. Ellenőrizhetjük az üzleti logikát az adatok manipulálásával és azok tükröződésének ellenőrzésével. Ellenőrizhetjük az adatbázis technikai szempontjait is, mint például a puha Törlés, a mező érvényesítése stb.
most lépjünk előre a tényleges végrehajtással. A Selenium WebDriver szkriptek kifejlesztése előtt az adatok kinyerésére az adatforrásból, hozzunk létre tesztadatokat az adatbázisban. Ehhez az oktatóanyaghoz a MySQL-t használjuk adatbázisként.
tesztadatok létrehozása az adatbázisban
ha még nem töltötte le az adatbázist, töltse le a link segítségével. A felhasználónak néhány alapvető lépést kell követnie az adatbázis letöltéséhez és telepítéséhez.
=>> olvassa el ezt a bemutatót a MySQL adatbázis letöltéséhez és telepítéséhez.
az adatbázis sikeres telepítése után a felhasználó elindíthatja a MySQL parancssori parancsot, amely a következő képernyőképnek tűnik. Az alkalmazás kérheti a felhasználót, hogy adja meg a jelszót. Az alapértelmezett jelszó a “root”.
Megjegyzés: A felhasználó is megtalálja GUI alapú ügyfelek az Interneten keresztül csatlakozni az adatbázishoz. Hogy csak néhányat említsünk, a felhasználó letöltheti és telepítheti a lekérdezési böngészőt vagy a munkapadot.
új adatbázis létrehozása
a következő lépés a tesztadatbázis létrehozása néhány táblával és az azokban tárolt rekordokkal annak érdekében, hogy kapcsolatot létesítsen az adatbázissal és lekérdezéseket hajtson végre.
1. lépés) Írja be az “adatbázisok megjelenítése” parancsot az összes elérhető adatbázis megtekintéséhez
adatbázisok megjelenítése;
2. lépés) Írja be a “create database user;” nevű adatbázis létrehozásához “felhasználó”.
adatbázis-felhasználó létrehozása;
vegye figyelembe, hogy az adatbázis neve, mint a felhasználó jön létre, és látható az adatbázisok listáját.
3. lépés) Írja be a “use user;” parancsot az újonnan létrehozott adatbázis kiválasztásához. Írja be a “táblázatok megjelenítése;” parancsot is a felhasználói adatbázisban elérhető összes táblázat megtekintéséhez.
felhasználó használata;
táblázatok megjelenítése;
vegye figyelembe, hogy az üres halmaz megjelenik a “táblázatok megjelenítése;” lekérdezés eredményében, mivel a felhasználói adatbázisban nem voltak elérhető táblák.
most tegyünk néhány táblát, és adjunk hozzá rekordokat.
4. lépés) Írja be a következő parancsot egy táblázat létrehozásához 4 mezővel / oszlopmal (userId, felhasználónév, userAge, userAddress).
Táblázat létrehozása userinfo
(
userId int,
felhasználónév varchar (255),
useraddress varchar(255)
);
a következő lépés néhány adatrekord hozzáadása a” userinfo ” táblázatba.
5. lépés) Írja be a következő parancsot az adatok beillesztéséhez a táblázatba a táblázat mind a négy mezőhöz 4 mező/oszlop (userId, felhasználónév, userAge, userAddress).
insert into userinfo (userID, userName, userAge, userAddress) értékek (‘1’, ‘shruti’, ’25’, ‘Noida’);
a hozzáadott adatok megtekintéséhez írja be a következő parancsot:
select * from userinfo;
hasonlóképpen további adatokat is hozzáadhat a táblához, és létrehozhat más táblákat is.
most, hogy létrehoztuk az adatbázisunkat. Előre léphetünk, és megérthetjük az automatizált lekérdezések végrehajtását, hogy lekérjük a rekordokat az adatbázisból.
amint azt korábban is megismételtük, a Selenium WebDriver egy eszköz a felhasználói felület automatizálásához. Így a Selenium WebDriver önmagában nem alkalmas adatbázis-tesztelés elvégzésére, de ezt Java Database Connectivity API (JDBC) segítségével lehet elvégezni. Az API lehetővé teszi a felhasználó számára az adatforráshoz való kapcsolódást és interakciót, valamint az adatok automatikus lekérdezések segítségével történő lekérését. A JDBC API kihasználásához szükség van Java virtuális gép (JVM) fut a rendszeren.
JDBC munkafolyamat
fókuszunkat a következő folyamatokhoz igazítjuk:
- kapcsolat létrehozása az adatbázissal
- lekérdezések és frissítési utasítások végrehajtása az adatok kinyerése/lekérése érdekében (CRUD műveletek)
- az adatbázisból kinyert adatok felhasználása és manipulálása eredményhalmaz formájában. (Az eredményhalmaz a sorokba és oszlopokba rendezett adatok gyűjteménye)
- az adatbázis-kapcsolat leválasztása.
mint korábban említettük, ahhoz, hogy automatikusan tesztelhessük az adatbázist a Selenium WebDriver teszt szkriptjeinkből, csatlakoznánk az adatbázishoz a teszt szkriptjeinken belüli JDBC kapcsolaton keresztül. Post a kapcsolatot, akkor kiválthatja annyi CRUD (Create, Read, Update, Delete) műveletek az adatbázisban.
ebben az oktatóanyagban a “Read művelet és annak változatai” és a Selenium WebDriver scriptben való végrehajtásukról beszélünk. De ezt megelőzően ellenőrizzük a teszt forgatókönyvet manuálisan a “MySQL parancssor” segítségével.
forgatókönyv:
1) Nyissa meg az adatbázis-kiszolgálót, és csatlakozzon a “felhasználó” adatbázishoz.
2) sorolja fel az összes rekordot a “userinfo” táblából.
szintaxis: válasszon * – tól userinfo;
3) zárja be az adatbázis-kapcsolatot.
vegye figyelembe, hogy az olvasási lekérdezés felsorolja a userinfo táblában található összes felhasználói adatot. A táblázat a következő oszlopokból áll.
- userId
- felhasználónév
- userAge
- userAddress
az eredmény azt is mutatja, hogy csak egyetlen adathalmaz van jelen a táblázatban.
most hajtsuk végre ugyanazt a forgatókönyvet a Java osztály használatával.
ahhoz, hogy hozzáférhessen az adatbázishoz, a felhasználó kihasználhatja, hogy az adatbázishoz való csatlakozáshoz rendelkezésre álló különböző csatlakozóopciók közül választhat. Az adatbázis-csatlakozók többsége szabadon terjeszthető “jar” fájlként. Mivel a MySQL-t adatforrásként használjuk, ezért le kell töltenünk a MySQL-re jellemző jar fájlt.
a jar fájl letölthető innen: itt vagy itt.
1.lépés: az első és legfontosabb lépés a projekt építési útvonalának konfigurálása és a “MySQL-connector-java-3.1.13-bin” hozzáadása.jar ” fájl külső könyvtárként.
2.lépés: Hozzon létre egy “DatabaseTesingDemo”nevű java osztályt.
3. lépés: másolja be az alábbi kódot a fenti lépésben létrehozott osztályba.
kódminta
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("\t" + res.getString(2)); System.out.print("\t" + res.getString(3)); System.out.println("\t" + res.getString(4)); } } catch(Exception e) { e.printStackTrace(); } } @After public void tearDown() throws Exception { // Close DB connection if (con != null) { con.close(); } }}
a fenti kód kimenete:
1 shruti 25 Noida
2 shrivastava 55 Mumbai
olvassa el az Utasításváltozatokat
Where záradék egyetlen feltétellel
String query = ” select * from userinfo where userId='” + 1 + “‘”;
ResultSet res = stmt.executeQuery(query);
kimenet:
1 shruti 25 Noida
ahol záradék több feltétel
String Address =”Mumbai”;
String query = “select * from userinfo where userId='” + 2 + “‘ and userAddress='”+Address+”‘”;
ResultSet res = stmt.executeQuery (lekérdezés);
kimenet:
2 shrivastava 55 Mumbai
felhasználói azonosító megjelenítése
String query = “userid kiválasztása a userinfo-ból”;
ResultSet res = stmt.executeQuery (lekérdezés);
kimenet:
1
2
userid megjelenítése where záradékkal
String Address =”Noida”;
String query = “userid kiválasztása,felhasználónév a userinfo-ból, ahol userAddress='”+Address+”‘”;
ResultSet res = stmt.executeQuery (query);
kimenet:
2
shrivastava
így ugyanúgy a felhasználó különböző lekérdezéseket hajthat végre az adatbázisban.
ezzel, hadd némi fényt eredmény kisegítő módszerek is.
Eredmény Kisegítő Módszerek:
módszer neve | leírás |
---|---|
String getString() | a módszer a string típusú adatok lekérésére szolgál az eredményhalmazból |
az int getInt () | metódus az egész típusú adatok lekérésére szolgál az eredményhalmazból |
logikai getBoolean () | metódus a logikai érték lekérésére szolgál az eredményhalmazból |
float getFloat () | módszer a float típusú adatok lekérésére szolgál az eredményhalmazból |
hosszú a getlong () | metódus a hosszú típusú adatok lekérésére szolgál az eredményhalmazból |
a short getshort() | metódus a rövid típusú adatok lekérésére szolgál az eredményhalmazból |
double getDouble() | metódus a kettős típusú adatok lekérésére szolgál az eredményhalmazból |
Date getDate() | a módszer a dátum típusú objektum lekérésére szolgál az eredménykészletből |
eredmény navigációs módszerek:
módszer neve | leírás |
---|---|
a boolean next() | metódus az eredményhalmaz következő rekordjára való ugráshoz használható |
logikai előző () | metódus az eredményhalmaz előző rekordjára való áttéréshez használható |
boolean first () | metódus az eredményhalmaz első rekordjára való áttéréshez használható |
logikai last () | metódus az eredményhalmaz utolsó rekordjára való lépéshez használható |
logikai abszolút (int sorszám) |
a módszer az eredményhalmaz adott rekordjára való áttéréshez használható |
következtetés
ezzel a bemutatóval megpróbáltuk megismerni az automatizált Adatbázis-tesztelés fogalmát. Egyértelműen hangsúlyt fektettünk az adatbázis-tesztelés technikai következményeire és igényeire.
mivel az egész sorozatunk a szelénre összpontosított, az olvasó félrevezethet, és azt a benyomást keltheti, hogy ez az oktatóanyag megtanítja az adatbázis tesztelését a szelén használatával, de mint korábban már többször említettem, bármi, ami a felhasználói felület tesztelésének perifériáján kívül esik, a szelén nem kezelhető. Ezért bevezetjük a Java Database Connectivity (JDBC) API-t az adatbázis-tesztelés elvégzéséhez a kód beágyazásával a Selenium WebDriver szkriptekbe.
a JDBC lehetővé teszi a java osztály számára, hogy csatlakozzon az adatbázishoz, adatokat szerezzen be az adatbázisból, vagy ténylegesen elvégezze a CRUD műveleteket, manipulálja az eredményül kapott adatokat és lezárja a kapcsolatot.
így az oktatóanyag képezi a fent említett folyamat alapvető mintájának megvalósítását.
következő bemutató #29: haladunk előre a fejlett szelén témákkal. A következő oktatóanyagban a Selenium GRID – et fogjuk lefedni-amelyet akkor használunk, ha több böngészős tesztelést kell végrehajtanunk, és nagyszámú tesztesettel rendelkezünk.
Utolsó Frissítés: November 29, 2021