使用Selenium Webdriver连接远程数据库,并通过eclipse从本地计算机运行测试用例

时间:2013-09-14 19:25:20

标签: java .htaccess selenium selenium-webdriver

我正在使用 selenium web driver java build ,编辑器是 eclipse 。为了测试我们的一个网站,我通过从MySQL数据库中获取数据来使用数据驱动的测试。

我将开发服务器数据库转储到我的本地计算机,并将转储的数据安装到我的机器xampp中,并能够连接到数据库并继续完成测试过程。

要连接到我的本地计算机数据库,我使用此连接字符串

String url1 ="jdbc:mysql://localhost:3306/databasename";           
String dbClass = "com.mysql.jdbc.Driver";
Class.forName(dbClass).newInstance();
Connection con = DriverManager.getConnection(url1, "root", "");
Statement stmt = (Statement) con.createStatement();

现在我需要连接到远程服务器中的原始开发服务器数据库。

我试过这个连接字符串来连接远程机器

 String url1 ="jdbc:mysql://10.0.2.129:3306/test";
 String dbClass ="com.mysql.jdbc.Driver";
 Class.forName(dbClass).newInstance();
 Connection con = DriverManager.getConnection(url1, "root","root");

但无法连接到远程计算机数据库。正在显示以下错误

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
        at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)

有人可以建议我需要在连接字符串中进行哪些更改才能连接远程服务器数据库,这是受到访问保护的?以及如何在连接到远程服务器数据库时从本地计算机运行我的测试用例。

请提供一些建议。

3 个答案:

答案 0 :(得分:0)

您只需在连接字符串中指定机器的IP地址,端口和数据库名称即可。所以尝试像

这样的东西
String dbUrl = "jdbc:mysql://192.168.1.53306/myDB";
DriverManager.getConnection(dbUrl, "username", "password");

你的测试应该像以前一样工作,你只是连接到不同的机器,这可能更耗时(例如查询可能需要更多时间),但这是唯一的区别。

答案 1 :(得分:0)

您可以利用selenium testing-frameworks - ISFW之一提供的数据驱动功能,您可以在其中指定数据库查询以提供测试数据。 例如:

@IsDataProvider(sqlQuery="select query")
@Test
public void testSomething(Map<String, String> testdata){
  //use query col as key testdata.get("colName")
  }

答案 2 :(得分:-1)

您需要添加一个jar文件来连接数据库

jar: mysql-connector-java