Le sélénium Connexion de Base de données SQL
Je suis en cours d'exécution dans un problème lorsque j'essaie d'exécuter une simple Sélénium test qui se connecte à une base de données SQL. Le test ne sera pas exécuté, il semble échouer sur la compilation, mais ne fournit aucune information sur l'endroit où l'erreur a été rencontrée.
J'ai regardé dans cette http://automationtricks.blogspot.com/2010/05/how-to-pass-parameters-to-junit-or.html et de Google groupes, mais ne peut pas le comprendre.
Voici le code, j'espère que quelqu'un peut me pointer dans la bonne direction. Merci!
package com.XXX.Tests;
import java.sql.*;
import java.sql.Connection;
import org.junit.Test;
import org.testng.annotations.BeforeClass;
import com.thoughtworks.selenium.*;
import org.openqa.selenium.server.SeleniumServer;
public class SeleniumandDB extends SeleneseTestBase {
@BeforeClass
public void setUp()throws Exception {
SeleniumServer seleniumServer=null;
try {
seleniumServer = new SeleniumServer();
seleniumServer.start();
} catch (Exception e) {
e.printStackTrace();
}
selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://wwww-test/");
selenium.start();
}
@Test public void testUntitled2() throws Exception {
String userID = null;
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
selenium.open("/");
selenium.windowFocus();
selenium.windowMaximize();
Class.forName("net.sourceforge.jtds.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:jtds:sqlserver://XXXX:1433/XXX","XX","XXXX");
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT TOP 1 UserID FROM webuser ORDER BY 1 DESC");
while(rs.next()){
userID = rs.getString("UserID");
conn.close();
System.out.println(userID);
selenium.type("txtUserID", userID);
selenium.type("txtPassword", "password");
selenium.click("btnLogin2");
selenium.waitForPageToLoad("30000");
selenium.stop();
}
}
}
Vous devez vous connecter pour publier un commentaire.
essayer celui-ci.il devrait fonctionner.
1) retirez - s'étend SeleneseTestBase et puis courir avec junit
(parce que l'Annotation @Test JUNIT va jouer le rôle)
OU
2)vient de supprimer annotation @Test et remplacer setUp() et d'autres méthodes comme la méthode start()
De selenesetestbase les méthodes de la classe et d'exécuter la classe en utilisant JUNIT conteneur.
3)OU de l'utilisation TESTNG seulement. (ne pas étendre la classe et d'utiliser des ANNOTATIONS)
Le problème que j'ai pu voir de vos explication et votre code,
Vous êtes à l'importation de 2 conteneurs (TestNG et Junit4) et vous êtes à l'extension de la classe de Test
Avec Junit3 conteneur.
Et défini les cas de test avec Junit4 conteneur( à l'aide de @Test)
Mais l'exécution de la classe de test à l'aide de junit3 conteneur.donc junit3 besoin de ces méthodes par défaut de comprendre ce qui un
Est l'installation et la méthode est un cas de test.mais vous n'êtes pas supplieg ces info
Junit3 conteneur est tout simplement l'exécution de votre classe sans aucun cas de tests.
J'espère que ce sera clairement le problème.mais j'ai peut-être tort, comme je l'ai utiliser TestNG et de ne pas étendre les classes.
Êtes-vous sûr que vous avez net.sourceforge.jtds.jdbc.Pilote dans votre classpath?