2016-12-07 11 views
0

Selenium TestNGからMS-SQLサーバー(Microsoft SQL Server 2008 R2)に接続しようとしています。 私はいくつかの調査を行いましたが、MySQLサーバーのソリューションをどこで入手したのですか。 は、私の知る限り1として、MySQLおよびMS-SQLのコーディングの間に3つの大きな違いがあることをそこに持ってSelenuim AutomationテストでJavaを使用してMS-SQLサーバーに接続

  1. データベースのURLは次のようになります[私が間違っているなら、私を修正]

public static String DB_URL = "jdbc:sql://11.22.33.44:1234/DBName";代わりにpublic static String DB_URL = "jdbc:mysql://11.22.33.44:1234/DBName";

  • ドライバ私は、MS-SQLのJarファイルを見つけることができる場所String DBClass = "com.sql.jdbc.Driver";代わりのString DBClass = "com.mysql.jdbc.Driver";

  • MS-SQL JARファイル

  • 私の質問です。また、私は上記の違いで正しいか?

    答えて

    0

    hereからダウンロードして、クラスパスに追加することができます。 mavenを使用している場合は、最初に次のコマンドを使用してローカルリポジトリにインストールします。 jarファイルがMavenの中央リポジトリのいずれかに存在していないので

    mvn install:install-file -Dfile=sqljdbc4.jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0 -Dpackaging=jar 
    

    すると、以下のようにあなたのpomファイルにMavenの依存関係を追加します。

    <dependency> 
        <groupId>com.microsoft.sqlserver</groupId> 
        <artifactId>sqljdbc4</artifactId> 
        <version>4.0</version> 
    </dependency> 
    
    +0

    私はJarファイルを抽出してクラスパスに追加するだけで、Selenium Testngに取り組んでいます。しかし、それでも私はそれを正常に実行することができません 私は自分のコードと他の詳細を別の回答に追加しました – Ashish

    0
    package dbconnection; 
    
        import org.testng.annotations.Test; 
        import org.testng.annotations.AfterClass; 
        import org.testng.annotations.BeforeClass; 
    
    import java.sql.Connection; 
    import java.sql.DriverManager; 
    import java.sql.ResultSet; 
    import java.sql.Statement; 
    
    public class DatabaseTesingDemo { 
        //Connection object 
        static Connection connection; 
        //Statement object 
        private static Statement statement; 
        //Constant for DB URL 
        //public static String DB_URL = "jdbc:sqlserver://58.2.92.60:1433/RBL_Feb2016"; 
        public static String DB_URL = "jdbc:sqlserver://localhost:1433/Ashish practice"; 
        //DB credential 
        public static String userName = "sa"; 
        public static String password = "[email protected]"; 
    
    @BeforeClass 
    public void setUp() throws Exception { 
        try { 
         System.out.println("Before"); 
         //Make the DB Connection 
         String DBClass = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; 
         Class.forName(DBClass).newInstance(); 
         //Get Connection DB 
         Connection connection = DriverManager.getConnection(DB_URL, userName, password); 
         //Statement object to send the SQL statement to DB 
         statement = connection.createStatement(); 
    
        }catch(Exception e) { 
         e.printStackTrace(); 
        } 
    } 
    
    @Test 
    public void test() { 
        try { 
         System.out.println("Executing Test"); 
         String query = "select * from userinfo where userID='1"; 
         //Get the content of customer table from DB 
         ResultSet resultSet = statement.executeQuery(query); 
         //Print the result until all the records are printed 
         while(resultSet.next()) { 
          System.out.println(resultSet.getString(1)); 
          System.out.println("\t" + resultSet.getString(2)); 
         } 
    
        }catch(Exception ee) { 
         ee.printStackTrace();   
        } 
    } 
    
    @AfterClass 
    public void tearDown() throws Exception { 
        System.out.println("After"); 
        //CLose DB Connection 
        if(connection != null) { 
         connection.close(); 
        } 
    } 
    

    }

    エラーログは次のとおりです。

    Before 
    com.microsoft.sqlserver.jdbc.SQLServerException: The port number 1433/Ashish practice is not valid. 
        at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190) 
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:691) 
        at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012) 
        at java.sql.DriverManager.getConnection(Unknown Source) 
        at java.sql.DriverManager.getConnection(Unknown Source) 
        at dbconnection.DatabaseTesingDemo.setUp(DatabaseTesingDemo.java:32) 
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
        at java.lang.reflect.Method.invoke(Unknown Source) 
        at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85) 
        at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:510) 
        at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:211) 
        at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138) 
        at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:170) 
        at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:104) 
        at org.testng.TestRunner.privateRun(TestRunner.java:774) 
        at org.testng.TestRunner.run(TestRunner.java:624) 
        at org.testng.SuiteRunner.runTest(SuiteRunner.java:359) 
        at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:354) 
        at org.testng.SuiteRunner.privateRun(SuiteRunner.java:312) 
        at org.testng.SuiteRunner.run(SuiteRunner.java:261) 
        at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 
        at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 
        at org.testng.TestNG.runSuitesSequentially(TestNG.java:1215) 
        at org.testng.TestNG.runSuitesLocally(TestNG.java:1140) 
        at org.testng.TestNG.run(TestNG.java:1048) 
        at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132) 
        at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:236) 
        at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:81) 
    Executing Test 
    java.lang.NullPointerException 
        at dbconnection.DatabaseTesingDemo.test(DatabaseTesingDemo.java:47) 
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
        at java.lang.reflect.Method.invoke(Unknown Source) 
        at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85) 
        at org.testng.internal.Invoker.invokeMethod(Invoker.java:639) 
        at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:816) 
        at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1124) 
        at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125) 
        at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108) 
        at org.testng.TestRunner.privateRun(TestRunner.java:774) 
        at org.testng.TestRunner.run(TestRunner.java:624) 
        at org.testng.SuiteRunner.runTest(SuiteRunner.java:359) 
        at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:354) 
        at org.testng.SuiteRunner.privateRun(SuiteRunner.java:312) 
        at org.testng.SuiteRunner.run(SuiteRunner.java:261) 
        at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 
        at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 
        at org.testng.TestNG.runSuitesSequentially(TestNG.java:1215) 
        at org.testng.TestNG.runSuitesLocally(TestNG.java:1140) 
        at org.testng.TestNG.run(TestNG.java:1048) 
        at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132) 
        at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:236) 
        at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:81) 
    After 
    PASSED: test 
    

    私は、Microsoft SQL Server 2008 R2を使用しています。 Class path

    0

    DB名に空白が含まれていると、ドライバがこのエラーをスローする原因になります。空白文字を持たないDBを指摘して、それがどのようになっているか教えてください。

    "jdbc:sqlserver://localhost:1433/**Ashish practice"** 
    
    関連する問題