Selenium Easy

jak víme, každá aplikace musí udržovat databázi, jako je můj SQL, Oracle nebo jiné databáze pro ukládání všech svých dat. A kde jako selen Webdriver se používá pro testování webových aplikací a provádíme mnoho operací, jako je odesílání informací a někdy získávání informací a jejich ověření.

v selenových skriptech, když je potřeba získat Data z databáze, možná budeme muset použít API, která pomáhají komunikovat s databází, jako je JDBC.

Java Database Connectivity(JDBC) je Java API, které se používá pro připojení a interakci s databází.

proč používáme JDBC místo ODBC?

ODBC je vyvíjen a napsán v jazyce C, který je nezávislý na platformě. kde jako JDBC API je SPECIFIKACE poskytuje sadu rozhraní, které jsou psány a vyvíjeny v programovacím jazyce Java.

jak se připojit k databázi pomocí JDBC?

Níže jsou uvedeny kroky pro připojení k databázi, než budete pokračovat, musíte mít konektor MySQL. Zde si můžete stáhnout zde stáhnout MySQL Connector Jar a přidat ji stavět cestu, jak přidáme selen webdriver jar.

1. Načíst a zaregistrovat ovladač
2. Navázání Spojení.
3. Vytvoření Objektu Příkazu
4. Proveďte příkaz
5. Zavření spojení.

1. Načíst a zaregistrovat ovladač:

pro registraci ovladače načteme třídu ovladače metodou forName ().

forName () je statická tovární metoda, která je přítomna v předdefinované třídě nazvané „Class“. Tato metoda načte třídu, která je uvedena jako parametr.

Class.forName("com.mysql.jdbc.Driver");// class.forName load the Driver class

interně tato třída ovladačů zaregistruje ovladač pomocí statické metody nazvané registerDriver().

2. Navázání spojení:

pro navázání spojení s databází nazýváme statickou metodu getConnection(…) přítomný ve třídě DriverManager. Tato metoda obsahuje tři argumenty typu řetězce. URL, uživatelské jméno a heslo

DriverManager.getConnection("jdbc:mysql://localhost:3306/Employee","root","root"); 

URL obsahuje „jdbc(main protocol):mysql(sub protocol for mySql)://localhost:3306(sub name for mysql (host:prot))/Employee(database)“ a tato metoda návratový typ je Connection Object tj.,

Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Employee","root","root"); 

3. Vytvoření objektu příkazu:

pro vytvoření objektu příkazu musíme zavolat metodu nazvanou createStatement (), která je přítomna v rozhraní připojení.

con.createStatement();

a tato metoda vrací objekt příkazu a není to žádná metoda argumentu.

Statement st= con.createStatement();

4.Provádění dotazů:

pro provádění dotazů existují různé metody v rozhraní příkazů pro načítání záznamů a aktualizaci záznamů.

načítání záznamů:
pro provádění select dotazů(pro načítání záznamů) voláme metodu nazvanou executeQuery(String qry) tím, že řetězec jako parametr.

st.executeQuery("Select * from Employee");

tato metoda vrací objekt ResultSet.

Resultset rs= st.executeQuery("Select * from Employee");// once executeQuery() executes the query and stores the records in to ResultSet object. 

nyní musíme získat záznamy z objektu ResultSet. Pro přístup k objektu resultset používá metodu nazvanou next (), která je prezentována v rozhraní ResultSet.

ve výchozím nastavení odkaz Resultset ‚ rs ‚ ukazuje na před prvním řádkem. přesune rs do dalšího řádku a vrátí true. Když vrátí true, načteme data v prvním řádku. další () vrátí false, když rs ukazuje na po posledním řádku. toto další() opakuje spuštění pomocí smyčky while, dokud se nevrátí false.

pro získání dat z řádků používáme getXxx(..) přičemž řetězec nebo celé číslo jako parametry. Celé číslo zde znamená pozici sloupce a řetězec znamená název sloupce záznamu. xxx označuje primitivní datové typy nebo řetězec objektu.

while(rs.next()) {int EmpId= rs.getInt("EmpId");String EmpName= rs.getString("EmpName");String EmpAddress=rs.getString(3);Double EmpSal= rs.getDouble(4);String EmpDept=rs.getString("EmpDept");System.out.println(EmpId+"\t"+EmpName+"\t"+EmpAddress+"\t"+EmpSal+"\t"+EmpDept);}

aktualizace záznamů:
pro aktualizaci záznamů v tabulce používáme metodu nazvanou executeUpdate (String str)

st.executeUpdate("update Employee set EmpName='Robert' where EmpId=2");

který vrací celočíselnou hodnotu jako kolik záznamů bylo aktualizováno.

int result = st.executeUpdate("update Employee set EmpName='Robert' where EmpId=2");System.out.println("number of records updated is" +result);

5. Uzavření připojení:

jakmile byly dokončeny všechny příkazy, musíme zavřít všechna připojení pomocí metody zvané close() přítomné v rozhraní připojení

con.close();

databáze, kterou používáme, má například následující záznamy v tabulce „zaměstnanec“
 testování databáze se selenem

nyní je čas podívat se do níže uvedeného jednoduchého příkladu programu a později skočíme do příkladu rámce : – V dalším tutoriálu se pokusíme vzít příklad, který bude mít parametry (jako pověření databáze, podrobnosti o prostředí atd.) ze souborů vlastností a pokračovat v testu na základě zadaných parametrů.

/** * Created by VISISHTA on 12/17/2015. */import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;import java.sql.*;public class SeleniumDataBaseTesting { private Connection connection; private static Statement statement; private static ResultSet rs; @BeforeClass public void setUp() { String databaseURL = "jdbc:mysql://localhost:3306/easy"; String user = "root"; String password = "root"; connection = null; try { Class.forName("com.mysql.jdbc.Driver"); System.out.println("Connecting to Database..."); connection = DriverManager.getConnection(databaseURL, user, password); if (connection != null) { System.out.println("Connected to the Database..."); } } catch (SQLException ex) { ex.printStackTrace(); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } } @Test public void getEmployeesFromDataBase() { try { String query = "select * from employee"; statement = connection.createStatement(); rs = statement.executeQuery(query); while(rs.next()){ int EmpId= rs.getInt("EmpId"); String EmpName= rs.getString("EmpName"); String EmpAddress=rs.getString(3); String EmpDept=rs.getString("EmpDept"); Double EmpSal= rs.getDouble(5); System.out.println(EmpId+"\t"+EmpName+"\t"+EmpAddress+"\t"+EmpSal+"\t"+EmpDept); } } catch (SQLException ex) { ex.printStackTrace(); } } @AfterClass public void tearDown() { if (connection != null) { try { System.out.println("Closing Database Connection..."); connection.close(); } catch (SQLException ex) { ex.printStackTrace(); } } }}

ve výše uvedeném příkladu máme, setUp() vytvoří připojení k databázi a v @testovací metodě provedeme a iterujeme tabulku pro tisk všech hodnot v databázi. A poslední tearDown() má úzké spojení, které zavře připojení k databázi, pokud je otevřeno.

výstup výše uvedeného programu by měl vypadat níže:

 výsledky testování databáze se selenem

až dosud jsme viděli příklad, jak přistupovat k databázi, nyní se podívejme, jak skutečně provádíme testování databáze pomocí selenu.

existují hlavně dvě věci, které bychom mohli chtít otestovat, abychom ověřili databázi selenem.

Za prvé, po provedení jakékoli akce ve webové aplikaci (Front-end), možná budeme chtít zkontrolovat databázi, pokud jsou všechny údaje, které jsme zadali, uloženy správně. Nyní například při vytváření účtu zadáme některé datové e-mailové Id, uživatelské jméno atd. Abychom se ujistili, že je vytvořen účet, můžeme zkontrolovat záznam vytvořený v databázi se všemi údaji, které uživatel poskytl.

jiný případ může být jako, po provedení jakékoli akce, můžeme chtít zkontrolovat data zobrazená v uživatelském rozhraní je správná porovnáním databáze.

doufám, že vám tento článek pomůže. Dejte nám vědět, pokud jste při práci s výše uvedeným programem narazili na nějaké potíže a zpětná vazba je také vítána.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.