6

我用的是java内置的selenium web driver,编辑器是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)

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

请提供一些建议。

4

3 回答 3

0

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

@IsDataProvider(sqlQuery="select query")
@Test
public void testSomething(Map<String, String> testdata){
  //use query col as key testdata.get("colName")
  }
于 2013-09-18T19:31:34.047 回答
0

您只需在连接字符串中指定机器的 IP 地址、端口和数据库名称。所以尝试类似的东西

String dbUrl = "jdbc:mysql://192.168.1.53306/myDB";
DriverManager.getConnection(dbUrl, "username", "password");

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

于 2013-09-15T10:37:50.043 回答
-1

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

jar: mysql-connector-java
于 2014-09-30T07:22:24.510 回答