Selenium Easy

Come sappiamo, ogni applicazione deve mantenere un database come il mio SQL, Oracle o qualsiasi altro database per memorizzare tutti i suoi dati. E dove come Selenium Webdriver viene utilizzato per testare le applicazioni Web e eseguiamo molte operazioni come l’invio di informazioni e alcune volte il recupero di informazioni e la loro convalida.

Negli script selenium, quando è necessario ottenere i dati dal database, potremmo dover utilizzare API che aiutano a interagire con database come JDBC.

Java Database Connectivity (JDBC) è un’API Java che viene utilizzata per connettersi e interagire con il database.

Perché usiamo JDBC invece ODBC?

ODBC è sviluppato e scritto in C, che è indipendente dalla piattaforma. dove come API JDBC è una specifica fornisce set di interfacce che sono scritti e sviluppati in linguaggio di programmazione Java.

Come connettersi al database utilizzando JDBC?

Di seguito sono riportati i passaggi per connettersi al database, prima di procedere, è necessario disporre di MySQL Connector. Puoi scaricare da qui Scaricare MySQL Connector Jar e aggiungerlo al percorso di compilazione mentre aggiungiamo selenium webdriver jar.

1. Caricare e registrare il driver
2. Stabilire la connessione.
3. Creazione dell’oggetto Istruzione
4. Eseguire l’istruzione
5. Chiusura della connessione.

1. Caricare e registrare il driver:

Per la registrazione del driver carichiamo la classe del driver utilizzando il metodo forName ().

forName () è il metodo factory statico che è presente nella classe predefinita chiamata “Class”. Questo metodo carica la classe che è menzionata come parametro.

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

Internamente questa classe di driver registrerà il driver utilizzando il metodo statico chiamato registerDriver ().

2. Stabilire la connessione:

Per stabilire la connessione con il database chiamiamo metodo statico chiamato getConnection(…) presente nella classe DriverManager. Questo metodo contiene tre argomenti di tipo string. cioè, url, nome utente e password

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

URL contiene “jdbc(protocollo principale):mysql(sub protocollo per MySQL)://localhost: 3306 (sub nome per mysql (host: prot)) / Employee (database)” e questo tipo di ritorno metodo è Oggetto di connessione cioè.,

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

3. Creazione di Statement Object:

Per la creazione di statement object dobbiamo chiamare un metodo chiamato createStatement () che è presente nell’interfaccia di connessione.

con.createStatement();

E questo metodo restituisce oggetto Istruzione e non è un metodo argomento.

Statement st= con.createStatement();

4.Esecuzione delle query:

Per l’esecuzione delle query sono presenti diversi metodi nell’interfaccia dell’istruzione per il recupero dei record e per l’aggiornamento dei record.

Recupero dei record:
per l’esecuzione di query select(per il recupero di record) chiamiamo un metodo chiamato executeQuery(String qry) prendendo string come parametro.

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

Questo metodo restituisce oggetto ResultSet.

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

Ora abbiamo bisogno di ottenere i record dall’oggetto ResultSet. Per accedere all’oggetto resultset utilizza un metodo chiamato next () che presenta nell’interfaccia ResultSet.

Per impostazione predefinita il riferimento Resultset ‘rs’ punta a prima della prima riga. sposta rs alla riga successiva e restituisce true. Quando restituisce true recuperiamo i dati in prima fila. next () restituisce false quando rs punta a dopo l’ultima riga. questo next () ripeterà l’esecuzione usando while loop finché non restituisce false.

Per ottenere i dati dalle righe usiamo getXxx(..) prendendo stringa o intero come parametri. Qui integer significa posizione della colonna e string significa nome della colonna del record. xxx indica tipi di dati primitivi o oggetto stringa.

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);}

Aggiornamento record:
Per aggiornare i record in una tabella usiamo un metodo chiamato executeUpdate (String str)

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

che restituisce il valore intero come quanti record sono stati aggiornati.

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

5. Chiusura della connessione:

una Volta che l’esecuzione di tutte le dichiarazioni sono state completate abbiamo bisogno di chiudere tutte le connessioni utilizzando il metodo close() presente nell’interfaccia di Collegamento

con.close();

Database che usiamo, per esempio, ha i seguenti record nella Tabella “Dipendente”
database di test con selenio

Ora è tempo di guardare al di sotto di semplice programma di esempio e poi ci sarà il salto nel quadro di esempio : – Nel prossimo tutorial, cercheremo di fare un esempio che prenderà i parametri (come le credenziali del database , i dettagli dell’ambiente ecc.)

/** * 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(); } } }}

Nell’esempio precedente, abbiamo, setUp() creerà una connessione al database, e nel metodo @Test eseguiremo e itereremo la tabella per stampare tutti i valori nel database. E last tearDown () ha una stretta connessione che chiuderà la connessione al database se viene aperta.

Uscita del programma di cui sopra dovrebbe essere simile al di sotto:

risultato del test del database con selenio

Fino ad ora abbiamo visto un esempio su come accedere al database,ora vediamo come eseguiamo effettivamente il test del database usando il Selenio.

Ci sono principalmente due cose che potremmo voler testare per verificare il database con Selenium.

In primo luogo, dopo aver effettuato qualsiasi azione nell’applicazione web (Front-end), potremmo voler controllare il database se tutti i dettagli che abbiamo inviato sono memorizzati correttamente. Ora, ad esempio, quando si crea un account, inseriremo alcuni dati ID e-mail, nome utente ecc. Per assicurarsi che un account è stato creato, siamo in grado di controllare record creato nel database con tutti i dettagli forniti dall’utente.

Altri casi possono essere come, dopo aver eseguito qualsiasi azione, potremmo voler controllare che i dati visualizzati nell’interfaccia utente siano corretti confrontando il database.

Spero che questo articolo ti aiuti. Fateci sapere se hanno incontrato difficoltà quando si lavora con il programma di cui sopra e il feedback è anche il benvenuto.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.