Selenium Easy

como sabemos, todos os aplicativos precisam manter um banco de dados como meu SQL, Oracle ou qualquer outro banco de dados para armazenar todos os seus dados. E onde o Selenium Webdriver é usado para testar aplicativos da web e realizamos muitas operações, como enviar informações e algumas vezes recuperar informações e validá-las.

em scripts selenium, quando há necessidade de obter os dados do banco de dados, podemos ter que usar APIs que ajudam a interagir com o banco de dados como o JDBC.

Java Database Connectivity(JDBC) é uma API Java que é usada para conectar e interagir com o banco de dados.

por que usamos JDBC em vez de ODBC?

ODBC é desenvolvido e escrito em C, que é independente da plataforma. onde como JDBC API é uma especificação fornece conjunto de interfaces que são escritos e desenvolvidos em linguagem de programação Java.

como se conectar ao banco de dados usando JDBC?

abaixo estão as etapas para se conectar ao banco de dados, antes de prosseguir, você precisa ter o conector MySQL. Você pode baixar aqui Baixar MySQL Connector Jar e adicioná-lo ao caminho de construção à medida que adicionamos selenium webdriver jar.

1. Carregar e registrar o Driver
2. Estabelecer Conexão.
3. Criando Objeto De Instrução
4. Execute a instrução
5. Fechando a conexão.

1. Carregue e registre o Driver:

para registrar o Driver, carregamos a classe do Driver usando o método forName ().

forName() é o método de fábrica estático que está presente na classe predefinida chamada “classe”. Este método carrega a classe que é mencionada como parâmetro.

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

internamente, esta classe de Driver registrará o driver usando o método estático chamado registerDriver().

2. Estabelecendo conexão:

para estabelecer conexão com o banco de dados, chamamos o método estático chamado getConnection(…) presente na classe DriverManager. Este método contém três argumentos do tipo string. ou seja, url, nome de usuário e senha

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

URL contém “JDBC(protocolo principal): mysql(sub Protocolo para mySql)://localhost:3306(sub nome para mysql (host: prot))/Employee(banco de dados)” e este tipo de retorno método é objeto de conexão ie.,

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

3. Criando objeto de instrução:

para criar objeto de instrução, precisamos chamar um método chamado createStatement() que está presente na interface de conexão.

con.createStatement();

e este método retorna objeto de instrução e não é um método de argumento.

Statement st= con.createStatement();

4.Executando consultas:

para executar consultas, existem diferentes métodos presentes na interface de instruções para recuperar registros e atualizar registros.

recuperação de registros:
para executar consultas selecionadas(para buscar registros), chamamos um método chamado executeQuery(String qry) tomando string como parâmetro.

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

este método retorna o objeto ResultSet.

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

agora precisamos obter os registros do objeto ResultSet. Para acessar o objeto resultset, ele usa um método chamado next() que apresenta na interface ResultSet.

por padrão Resultset referência ‘rs’ aponta para antes da primeira linha. ele move rs para a próxima linha e retorna true. Quando retorna true, recuperamos os dados na primeira linha. next () retorna false quando rs aponta para depois da última linha. este next () repetirá a execução usando while loop até retornar false.

para obter os dados das linhas que usamos getXxx(..) tomando string ou inteiro como parâmetros. Aqui inteiro significa posição da coluna e string significa Nome da coluna do registro. xxx indica tipos de dados primitivos ou objeto string.

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

Actualizar registos:
Para atualizar registros em uma tabela podemos usar um método chamado executeUpdate(String str)

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

que retorna o valor inteiro como o número de registros foram atualizados.

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

5. Fechando a conexão:

Após a execução de todas as declarações foram concluídas precisamos fechar todas as ligações utilizando o chamado método close() presente na interface de Conexão

con.close();

Banco de dados que vamos usar, por exemplo, tem os seguintes registros na Tabela ‘Funcionário’
banco de dados de testes com selenium

Agora é hora de olhar para abaixo exemplo simples de programa e, mais tarde, vamos saltar para o quadro de exemplo : – No próximo tutorial, vamos tentar tomar um exemplo que irá tomar os parâmetros (como credenciais de banco de Dados , Detalhes do ambiente etc) a partir de arquivos de propriedades e prosseguir o teste com base nos parâmetros especificados.

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

No exemplo acima, temos, setUp() irá criar uma conexão de banco de dados, e no @método de Teste será executado e iterar a tabela para imprimir todos os valores no banco de dados. E last tearDown () tem uma conexão próxima que fechará a conexão do banco de dados se ela for aberta.

a saída do programa acima deve ser semelhante a abaixo:

resultado do teste de banco de dados com selenium

até agora,vimos um exemplo de como acessar o banco de dados, agora vamos ver como realmente realizamos testes de banco de dados usando Selenium.

existem principalmente duas coisas que podemos querer testar para verificar o banco de dados com Selenium.

primeiro, depois de fazer qualquer ação no aplicativo da web (Front-end), podemos verificar o banco de dados se todos os detalhes que enviamos estão armazenados corretamente. Agora, por exemplo, ao criar uma conta, inseriremos alguns dados ID de E-mail, nome de usuário etc. Para garantir que uma conta seja criada, podemos verificar o registro criado no banco de dados com todos os detalhes fornecidos pelo Usuário.

outro caso pode ser como, depois de executar qualquer ação, podemos querer verificar os dados exibidos na interface do usuário está correto comparando o banco de dados.

espero que este artigo ajude você. Deixe – nos saber se se depararam com alguma dificuldade ao trabalhar com o programa acima e o feedback também é bem-vindo.

Deixe uma resposta

O seu endereço de email não será publicado.