我正在使用selenium web驱动java构建,编辑器是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)
任何人都可以建议我在连接字符串中需要做哪些更改才能连接远程服务器数据库,该数据库是否受到访问保护?以及如何在连接到远程服务器数据库时从本地计算机运行我的测试用例。
请提供一些建议。
您只需在连接字符串中指定机器的IP地址,端口和数据库名称即可。所以尝试类似的东西
String dbUrl = "jdbc:mysql://192.168.1.53306/myDB";
DriverManager.getConnection(dbUrl, "username", "password");
并且您的测试应该像以前一样工作,您只是连接到可能更耗时的不同机器(例如查询可能需要更多时间),但这是唯一的区别。
您可以利用其中一个selenium testing-frameworks - ISFW提供的数据驱动功能,您可以在其中指定数据库查询以提供测试数据。例如:
@IsDataProvider(sqlQuery="select query")
@Test
public void testSomething(Map<String, String> testdata){
//use query col as key testdata.get("colName")
}
您需要添加jar文件才能连接到数据库
jar: mysql-connector-java