Selenium Easy

すべてのアプリケーションは、すべてのデータを格納するためにSQL、Oracle、または他のデータベースのようなデー Selenium Webdriverはwebアプリケーションのテストに使用され、情報の送信や情報の取得などの多くの操作を実行し、それらを検証します。 Seleniumスクリプトでは、データベースからデータを取得する必要がある場合、JDBCのようなデータベースと対話するのに役立つApiを使用する必要があります。

Java Database Connectivity(JDBC)は、データベースとの接続および対話に使用されるJava APIです。

なぜODBCの代わりにJDBCを使用するのですか?

ODBCはプラットフォームに依存しないCで開発され、記述されています。 JDBC APIが仕様である場合、Javaプログラミング言語で書かれ、開発された一連のインターフェイスが提供されます。

JDBCを使用してデータベースに接続するには?

以下は、データベースに接続するための手順です,先に進む前に,あなたは、MySQLコネクタを持っている必要があります. ここからダウンロードできますMySQL Connector Jarをダウンロードし、selenium webdriver jarを追加するときにビルドパスを追加します。

1. ドライバをロードして登録する
2. 接続を確立します。
3. Statementオブジェクトの作成
4. 文
5を実行します。 接続を閉じます。

1. ドライバをロードして登録する:

ドライバを登録するには、forName()メソッドを使用してDriverクラスをロードします。

forName()は、”Class”と呼ばれる事前定義されたクラスに存在する静的ファクトリメソッドです。 このメソッドは、パラメータとして言及されているクラスをロードします。

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

内部的にこのドライバクラスは、registerDriver()という静的メソッドを使用してドライバを登録します。

2. 接続の確立:

データベースとの接続を確立するために、getConnection(という静的メソッドを呼び出します。.. DriverManagerクラスに存在します。 このメソッドには、文字列型の3つの引数が含まれています。 つまり、url、ユーザー名、パスワード

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

URLには”jdbc(メインプロトコル):mysql(mySqlのサブプロトコル)://localhost:3306(mysqlのサブ名(ホスト:prot))/Employee(データベース)”が含まれており、このメソッドの戻り,

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

3. Statementオブジェクトの作成:

statementオブジェクトを作成するには、Connectionインターフェイスに存在するcreateStatement()というメソッドを呼び出す必要があります。

con.createStatement();

そして、このメソッドはStatementオブジェクトを返し、引数メソッドではありません。

Statement st= con.createStatement();

4.クエリの実行:

クエリの実行には、レコードの取得とレコードの更新のためのStatementインターフェイスに異なるメソッドがあります。

レコードの取得:
selectクエリを実行するため(レコードをフェッチするため)、stringをパラメータとしてexecuteQuery(String qry)というメソッドを呼び出します。

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

このメソッドはResultSetオブジェクトを返します。

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

今、私たちはResultSetオブジェクトからレコードを取得する必要があります。 Resultsetオブジェクトにアクセスするには、resultsetインターフェイスに表示されるnext()というメソッドを使用します。

デフォルトでは、Resultset参照’rs’は最初の行の前を指します。 rsを次の行に移動し、trueを返します。 Trueを返すと、最初の行のデータが取得されます。 next()は、rsが最後の行の後を指している場合にfalseを返します。 このnext()は、falseを返すまでwhileループを使用して実行を繰り返します。

行からデータを取得するには、getXxx(..)文字列または整数をパラメータとして取得します。 ここで、整数は列の位置を意味し、文字列はレコードの列名を意味します。 xxxは、プリミティブデータ型または文字列オブジェクトを示します。

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

レコードの更新:
テーブル内のレコードを更新するには、executeUpdate(String str)というメソッドを使用します)

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

更新されたレコードの数として整数値を返します。

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

5. 接続を閉じる:

すべてのステートメントの実行が完了したら、接続インターフェイスに存在するclose()というメソッドを使用してすべての接続を閉じる必要があります

con.close();

たとえば、使用するデータベースには、テーブル’Employee’
selenium

次のレコードがあります。 : -次のチュートリアルでは、プロパティファイルからパラメータ(データベース資格情報、環境の詳細など)を取得し、指定されたパラメータに基づいてテストを進

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

上記の例では、setUp()がデータベース接続を作成し、@Testメソッドでテーブルを実行して反復してデータベース内のすべての値を出力します。 最後のtearDown()にはclose connectionがあり、データベース接続が開かれている場合にデータベース接続を閉じます。

上記のプログラムの出力は以下のようになります:

seleniumを使用したデータベーステスト結果

これまで、データベースへのアクセス方法の例を見てきましたが、実際にSeleniumを使用してデータベーステストを実行する方法を見てみましょう。

Seleniumを使用してデータベースを検証するために、主に2つのことをテストしたいと思うかもしれません。

まず、webアプリケーション(フロントエンド)でアクションを行った後、送信したすべての詳細が正しく保存されているかどうかをデータベースで確認する たとえば、アカウントを作成するときに、電子メールId、ユーザー名などのデータを入力します。 アカウントが作成されていることを確認するために、データベースで作成されたレコードを、ユーザーが提供したすべての詳細で確認できます。

他のケースは、任意のアクションを実行した後、我々は、データベースを比較することにより、UIに表示されたデータが正しいかどうかを確認することができ、

この記事があなたを助けてくれることを願っています。 上記のプログラムで作業し、フィードバックも歓迎されているときに任意の困難に遭遇した場合、私たちに知らせてください。

コメントを残す

メールアドレスが公開されることはありません。