Я пытаюсь подключить свою базу данных, а затем выполнить запрос, чтобы получить результат с помощью теста testNG.
Тест TestNG не вызывается
Ответы (1)
Пожалуйста, удалите все импорты junit из класса, если вы планируете использовать TestNG для выполнения. Я бы предложил вам использовать следующий подход:
package regressionTesting;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.concurrent.TimeUnit;
import javax.naming.spi.DirStateFactory.Result;
import org.openqa.selenium.*;
import org.openqa.selenium.By.ByXPath;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class TestDBConnect {
public static String username = null;
@BeforeClass
public void setUp() {
username = getUsernameFromDB();
}
@Test
public void testUI() {
//Some code for navigating to the required page
driver.findElement(By.id("u")).sendKeys(username);
//Code for executing remaining steps
}
public static String getUsernameFromDB() throws ClassNotFoundException, SQLException {
//Accessing driver from the JAR file
Class.forName("oracle.jdbc.OracleDriver");
System.out.println("Oracle JDBC driver loaded ok.");
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@151.117.87.205:1602:epwfst1","epwf_app","epwf_app_epwfst1");
System.out.println("DB Connected Successfuly");
Statement stmt = con.createStatement();
ResultSet result = stmt.executeQuery("select billing_application_accnt_id from epwf.payment where created_user_nm = '1600STOUTST10001'");
String account = null;
while(result.next()){
account = result.getString("BILLING_APPLICATION_ACCNT_ID");
System.out.println("BAID: " + account);
}
con.close();
return account;
}
@AfterClass
public void cleanUp() {
//Code for clean-up activities like closing browser and releasing resources.
}
}
В приведенном выше коде я предположил, что u — это id текстового поля, в которое вы хотите ввести значение, считанное из базы данных. Вы можете заменить его фактическим значением атрибута id или использовать другое свойство для распознавания текстового поля имени пользователя.
person
Mahipal
schedule
30.01.2017
Использование приведенного выше кода и удаление лишнего импорта действительно решили проблему... но когда я вызываю метод, чтобы получить имя пользователя и вставить его в sendkeys, он не работает. Ниже приведен код
- person Umair Khan; 31.01.2017
String username = getUsernameFromDB(); driver.findElement(By.id("baid")).sendKeys(username);
Я вижу, что вызывается метод db connect и выполняется запрос, но поле ввода не заполняется результатом. ??!?
- person Umair Khan; 31.01.2017
никаких исключений... поле ввода просто пусто, и мой тест просто истекает...
Oracle JDBC driver loaded ok. DB Connected Successfuly BAID: PPB11007406 [Utils] Attempting to create C:\Users\Umair\Default test.xml [Utils] Directory C:\Users\Umair\Default suite exists: true PASSED: testUI FAILED: testChangeOrder
его не удалось выполнить, потому что время ожидания истекло.
- person Umair Khan; 31.01.2017
На самом деле это работает сейчас .... проблема была в том, что я не правильно понял идентификатор для этого поля ввода ... как только я это получил. Это сработало!! Большое спасибо @Mahipal за вашу помощь!!
- person Umair Khan; 31.01.2017
@Test
? junit4 делает. - person Thorbjørn Ravn Andersen   schedule 31.01.2017import org.junit.*;
для тестов TestNG? - person SiKing   schedule 31.01.2017