Тест TestNG не вызывается

Я пытаюсь подключить свою базу данных, а затем выполнить запрос, чтобы получить результат с помощью теста testNG.


person Umair Khan    schedule 30.01.2017    source источник
comment
Требует ли TestNG где-нибудь аннотацию @Test? junit4 делает.   -  person Thorbjørn Ravn Andersen    schedule 31.01.2017
comment
Почему import org.junit.*; для тестов TestNG?   -  person SiKing    schedule 31.01.2017


Ответы (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
comment
Использование приведенного выше кода и удаление лишнего импорта действительно решили проблему... но когда я вызываю метод, чтобы получить имя пользователя и вставить его в sendkeys, он не работает. Ниже приведен код - person Umair Khan; 31.01.2017
comment
String username = getUsernameFromDB(); driver.findElement(By.id("baid")).sendKeys(username); Я вижу, что вызывается метод db connect и выполняется запрос, но поле ввода не заполняется результатом. ??!? - person Umair Khan; 31.01.2017
comment
никаких исключений... поле ввода просто пусто, и мой тест просто истекает... 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
comment
На самом деле это работает сейчас .... проблема была в том, что я не правильно понял идентификатор для этого поля ввода ... как только я это получил. Это сработало!! Большое спасибо @Mahipal за вашу помощь!! - person Umair Khan; 31.01.2017