Selenium Easy

zoals we weten moet elke toepassing een database Zoals mijn SQL, Oracle of andere databases onderhouden om al zijn gegevens op te slaan. En waar als Selenium Webdriver wordt gebruikt voor het testen van webapplicaties en we vele bewerkingen uitvoeren, zoals het indienen van informatie en soms het ophalen van informatie en valideren.

in selenium scripts, wanneer er behoefte is aan het verkrijgen van de gegevens uit de database, moeten we mogelijk API ‘ s gebruiken die helpen om te interageren met database zoals JDBC. Java Database Connectivity(JDBC) is een Java-API die gebruikt wordt om verbinding te maken met een Database.

waarom gebruiken we JDBC in plaats van ODBC?

ODBC is ontwikkeld en geschreven in C, dat platformonafhankelijk is. waar als JDBC API is een specificatie biedt set van interfaces die zijn geschreven en ontwikkeld in Java programmeertaal.

hoe verbinding maken met de database met behulp van JDBC?

hieronder staan de stappen om verbinding te maken met de database, voordat u verder gaat, moet u een MySQL-Connector hebben. U kunt downloaden van hier downloaden MySQL Connector Jar en voeg het de build pad als we toevoegen selenium webdriver jar.

1. Laad en registreer de bestuurder
2. Verbinding Tot Stand Brengen.
3. Statement-Object
Aanmaken 4. Voer de opdracht
uit 5. Ik sluit de verbinding.

1. Laad en registreer de Driver:

voor het registreren van de Driver Laden we de Driver class met behulp van forname() methode.

forName () is de statische fabrieksmethode die aanwezig is in een vooraf gedefinieerde klasse genaamd “Class”. Deze methode laadt de klasse die als parameter wordt genoemd.

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

intern zal deze Driver klasse de driver registreren met behulp van statische methode genaamd registerDriver ().

2. Verbinding tot stand brengen:

voor verbinding tot stand brengen met de database noemen we statische methode getConnection(…) aanwezig in DriverManager Klasse. Deze methode bevat drie argumenten van het type tekenreeks. URL, gebruikersnaam en wachtwoord

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

URL bevat “jdbc(main protocol):mysql(sub protocol for mySql)://localhost:3306(sub name for MySQL (host:prot))/Employee(database)” en deze methode return type is Connection Object ie.,

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

3. Creating Statement Object:

voor het maken van statement object moeten we een methode genaamd createStatement() aanroepen die aanwezig is in de Verbindingsinterface.

con.createStatement();

en deze methode geeft een Statement object terug en het is geen argumentmethode.

Statement st= con.createStatement();

4.Queries uitvoeren:

voor het uitvoeren van queries zijn er verschillende methoden aanwezig in de Statement Interface voor het ophalen van records en voor het bijwerken van records.

records ophalen:
voor het uitvoeren van Select queries(voor het ophalen van records) noemen we een methode genaamd executeQuery (String qry) door string als parameter te nemen.

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

deze methode geeft ResultSet object terug.

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

nu moeten we de records van ResultSet object krijgen. Om toegang te krijgen tot het resultset object gebruikt het een methode genaamd next () die wordt gepresenteerd in ResultSet Interface.

standaard Resultsetreferentie ‘ rs ‘ wijst naar vóór de eerste rij. het verplaatst rs naar de volgende rij en geeft true terug. Wanneer het waar retourneert, halen we de gegevens op in de eerste rij. next () geeft false terug als rs na de laatste rij wijst. this next () herhaalt de uitvoering met while loop tot het false terug geeft.

om de gegevens van rijen te krijgen gebruiken we getXxx (..) string of integer als parameters nemen. Hier betekent integer kolompositie en tekenreeks kolomnaam van het record. xxx geeft primitieve datatypes of string object aan.

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

records bijwerken:
om records in een tabel bij te werken gebruiken we een methode genaamd executeUpdate (String str)

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

die geeft integer waarde als hoeveel records zijn bijgewerkt.

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

5. Verbinding sluiten:

zodra het uitvoeren van alle statements voltooid is, moeten we alle verbindingen sluiten met behulp van de methode close () aanwezig in Verbindingsinterface

con.close();

Database die we bijvoorbeeld gebruiken heeft de volgende records in Tabel ‘Employee’
database testen met selenium

nu is het tijd om te kijken naar onderstaande eenvoudige voorbeeldprogramma en later zullen we springen in framework voorbeeld : – In de volgende tutorial zullen we proberen om een voorbeeld te nemen dat de parameters (zoals database referenties , omgevingsdetails enz.) Uit eigenschappen bestanden zal nemen en de test zal uitvoeren op basis van de opgegeven parameters.

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

in het bovenstaande voorbeeld, we have, zal setUp () een database-verbinding maken, en in @Test methode zullen we de tabel uitvoeren en herhalen om alle waarden in de database af te drukken. En last tearDown () heeft een nauwe verbinding die de database-verbinding zal sluiten als deze wordt geopend.

uitvoer van het bovenstaande programma moet er als hieronder uitzien:

database testing result with selenium

tot nu toe hebben we een voorbeeld gezien over hoe toegang te krijgen tot de database, Laten we nu eens kijken hoe we eigenlijk database testen met Selenium uitvoeren.

er zijn hoofdzakelijk twee dingen die we zouden willen testen om de database met Selenium te verifiëren.

eerst, na het maken van een actie in de webapplicatie (Front-end), willen we misschien de database controleren of alle gegevens die we hebben ingediend correct zijn opgeslagen. Nu bijvoorbeeld, bij het maken van een account, zullen we enkele gegevens e-mail-Id, gebruikersnaam enz.invoeren. Om ervoor te zorgen dat een account is gemaakt, we kunnen controleren record gemaakt in de database met alle gegevens door de gebruiker verstrekt.

andere gevallen kunnen zijn als, na het uitvoeren van een actie, willen we misschien controleren of de gegevens weergegeven in de gebruikersinterface correct is door het vergelijken van de Database.

hoop dat dit artikel U helpt. Laat het ons weten als zijn tegengekomen problemen bij het werken met het bovenstaande programma en feedback is ook welkom.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.