Selenium Easy

som vi vet måste varje applikation behålla en databas som My SQL, Oracle eller andra databaser för att lagra alla dess data. Och var som Selenium Webdriver används för att testa webbapplikationer och vi utför många operationer som att skicka in information och ibland hämta information och validera dem.

i selenium-skript, när det finns behov av att få Data från databasen kan vi behöva använda API: er som hjälper till att interagera med databas som JDBC.

Java Database Connectivity(JDBC) är ett Java API som används för att ansluta och interagera med databasen.

Varför använder vi JDBC istället ODBC?

ODBC är utvecklat och skrivet i C, vilket är plattformsoberoende. där som JDBC API är en specifikation ger uppsättning gränssnitt som är skrivna och utvecklade i Java programmeringsspråk.

Hur ansluter jag till databasen med JDBC?

nedan följer stegen för att ansluta till databasen, innan du fortsätter måste du ha MySQL-kontakt. Du kan ladda ner härifrån ladda ner MySQL Connector Jar och lägga till den byggvägen när vi lägger till selenium webdriver jar.

1. Ladda och registrera föraren
2. Upprätta Anslutning.
3. Skapa Uttalande Objekt
4. Utför uttalandet
5. Stänga anslutningen.

1. Ladda och registrera föraren:

för att registrera föraren laddar vi Förarklassen med forName () – metoden.

forName() är den statiska fabriksmetoden som finns i fördefinierad klass som kallas ”klass”. Denna metod laddar klassen som nämns som parameter.

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

internt registrerar denna Drivrutinsklass drivrutinen med hjälp av statisk metod som kallas registerDriver().

2. Upprätta anslutning:

för att upprätta anslutning till databasen kallar vi statisk metod som kallas getConnection (…) närvarande i DriverManager klass. Denna metod innehåller tre argument av strängtyp. dvs, url, användarnamn och lösenord

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

URL innehåller ”jdbc(huvudprotokoll):mysql(sub protokoll för mySql)://localhost:3306(sub namn för mysql (värd:prot))/anställd(databas)” och denna metod returtyp är anslutningsobjekt dvs.,

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

3. Skapa uttalande objekt:

för att skapa uttalande objekt måste vi ringa en metod som kallas createStatement() som finns i anslutningsgränssnittet.

con.createStatement();

och denna metod returnerar uttalande objekt och det är inget argument metod.

Statement st= con.createStatement();

4.Exekvera frågor:

för att utföra frågor finns det olika metoder som finns i uttalande gränssnitt för att hämta poster och för att uppdatera poster.

hämta poster:
för att köra select-frågor(för att hämta poster) kallar vi en metod som heter executeQuery (String qry) genom att ta string som parameter.

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

denna metod returnerar ResultSet objekt.

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

nu måste vi hämta posterna från ResultSet-objektet. För att komma åt resultset-objektet använder den en metod som heter next () som presenteras i ResultSet-gränssnittet.

som standard Resultset referens ’ rs ’ pekar på före första raden. den flyttar rs till nästa rad och returnerar true. När den returnerar true hämtar vi data i första raden. nästa () returnerar false när rs pekar på efter den sista raden. denna nästa () kommer att upprepa exekveringen med medan loop tills den returnerar false.

för att hämta data från rader använder vi getXxx (..) tar sträng eller heltal som parametrar. Här betyder heltal kolumnposition och sträng betyder kolumnnamn på posten. xxx anger primitiva datatyper eller strängobjekt.

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

uppdatera poster:
för att uppdatera poster i en tabell använder vi en metod som heter executeUpdate (String str)

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

som returnerar heltalsvärde som hur många poster har uppdaterats.

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

5. Stänga anslutningen:

när utförandet av alla uttalanden slutfördes måste vi stänga alla anslutningar med hjälp av metod som kallas stäng () närvarande i anslutningsgränssnittet

con.close();

databas som vi använder till exempel har följande poster i tabell ’anställd’
 databastestning med selen

nu är det dags att undersöka nedan enkelt exempelprogram och senare kommer vi att hoppa in i ramexempel : – I nästa handledning kommer vi att försöka ta ett exempel som tar parametrarna (som databasuppgifter , miljödetaljer etc) från egenskapsfiler och fortsätt testet baserat på angivna parametrar.

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

i ovanstående exempel har vi, setUp() kommer att skapa en databasanslutning, och i @Testmetod kommer vi att utföra och iterera tabellen för att skriva ut alla värden i databasen. Och sista nedkoppling () har nära anslutning som stänger databasanslutningen om den öppnas.

utdata från ovanstående program ska se ut som nedan:

databastestresultat med selen

hittills har vi sett exempel på hur man får tillgång till databasen,låt oss nu se hur vi faktiskt utför databastestning med selen.

det finns huvudsakligen två saker som vi kanske vill testa för att verifiera databasen med selen.

först, efter att ha gjort några åtgärder i webbapplikationen (Front-end), kanske vi vill kontrollera databasen om alla detaljer vi skickade lagras korrekt. Nu till exempel, när du skapar ett konto, Vi kommer att mata in några uppgifter e-Id, användarnamn etc. För att se till att ett konto skapas kan vi kontrollera post skapad i databasen med alla detaljer som användaren tillhandahåller.

annat fall kan vara som, efter att ha utfört någon åtgärd, kanske vi vill kontrollera att data som visas i användargränssnittet är korrekta genom att jämföra databasen.

hoppas den här artikeln hjälper dig. Låt oss veta om har stött på några svårigheter när du arbetar med ovanstående program och feedback är också välkommen.

Lämna ett svar

Din e-postadress kommer inte publiceras.