Selenium - Multi Browser и Multi User LogJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Selenium - Multi Browser и Multi User Log

Сообщение Anonymous »

Мы пытаемся начать реализацию автоматизации для регрессионного тестирования на нашем веб -сайте на основе транзакций. Я успешно настраиваю Testng XML, чтобы открыть Firefox, IE и Chrome. И он будет запускать класс транзакций. В методе настройки с параметрами он проверяет для браузера и открывает правильный браузер для этого потока. Затем он направлен на тест метода Main (), который запускает класс входа в систему, прежде чем вернуться в класс транзакций, чтобы фактически пройти тест на транзакцию. Причина этого состоит в том, чтобы иметь организованную структуру, которая имеет только один тест в каждом классе в целях отладки. < /p>

Когда я запускаю этот тест, используя один пользовательский учетный данных, он работает нормально и завершает оба теста. Проблема заключается в том, что наша система позволяет пользователю вводить транзакцию раз в 10 секунд (только одна из наших функций безопасности, чтобы избежать освежающих или нескольких предложений транзакций). В любом случае, как лучше всего использовать несколько учетных данных пользователя? Я попробовал несколько логиков, которую я придумал, но каждый раз, когда Firefox будет использовать пользовательский имет1, а IE и Chrome будут использовать либо имя пользователя 2 или 3. /> ie = username2 < /li>
< /ul>

или < /p>


firefox = username1 < /li>
chrome = username3 < /li>
ie = username3 < /li>

ie = usernam />
Я придумал пару успешных решений, но мне пришлось дублировать классы или код. И в тесте я провел надлежащие классы для каждого браузера. Я думаю, что это плохое решение, хотя это работает. Тогда каждое, если утверждение будет иметь свое правильное имя пользователя. < /p>

Но мне также не нравится это решение, потому что мне пришлось бы добавить этот же код ко всем будущим тестовым классам, которые я создам, если я запускаю один тест, чтобы проверить новый код для разработки функции. Это просто повторяемый код, который, я думаю, должен быть в своем собственном классе. < /p>

Вот классы входа и транзакции перед конвертацией в Testng. Кроме того, я сделал класс среды, который содержит статические переменные, такие как имя пользователя и URL. < /P>

p.s. Я удалил кучу тестового кода, не нужную для этого вопроса. < /P>

ex: < /p>

static {
URL = "https://website.com";
DEFAULT_WAIT_TIME = 60;
SYSTEM_ID = "IDnumber";
USERNAME = "Username1";
PASSWORD = "Password1";
}
< /code>



import static org.junit.Assert.fail;

import java.util.concurrent.TimeUnit;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class Login {
private WebDriver driver;
private String baseURL;
private StringBuffer verificationErrors = new StringBuffer();

@Before
public void setUp() throws Exception {
//driver = new FirefoxDriver();
//baseURL = Environment.URL;
driver.manage().timeouts().implicitlyWait(Environment.DEFAULT_WAIT_TIME, TimeUnit.SECONDS);
}

public static void doLogin(WebDriver driver, String baseURL) {
WebDriverWait wait = new WebDriverWait(driver, Environment.DEFAULT_WAIT_TIME);
System.out.println("Log in to trunk...");
driver.get(baseURL);

wait.until(ExpectedConditions.presenceOfElementLocated(By.id("company_id")));
if (driver.findElement(By.xpath("//div[span='Log In']/span")).isEnabled()) {
System.out.println(" 1 - 'Login' page is opened");
} else {
System.out.println(" !ERROR! - Can NOT open 'Login' page");
driver.findElement(By.id("This is to throw exception if Can NOT open 'Login' page"));
}
driver.findElement(By.id("company_id")).clear();
driver.findElement(By.id("company_id")).sendKeys(Environment.SYSTEM_ID);
driver.findElement(By.xpath("//input[@name='username']")).clear();
driver.findElement(By.xpath("//input[@name='username']")).sendKeys(Environment.USERNAME);
driver.findElement(By.id("c_password")).clear();
driver.findElement(By.id("c_password")).sendKeys(Environment.PASSWORD);
System.out.println(" 2 - Info filled");

//I removed the rest of the code that finishes the login because
//I don't think it is needed for demonstration

}

@Test
public void main() {
doLogin(driver, baseURL);
}

@After
public void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
}
< /code>



import static org.junit.Assert.fail;

import java.util.concurrent.TimeUnit;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait;

public class Transaction {
private WebDriver driver;
private String baseURL;
private StringBuffer verificationErrors = new StringBuffer();

public static String country = "22";
public static String ammount = "500";

@Before
public void setUp() throws Exception {
// System.setProperty("webdriver.ie.driver", "../IEDriverServer.exe");
// driver = new InternetExplorerDriver();
driver = new FirefoxDriver();
baseURL = Environment.URL;

driver.manage().timeouts().implicitlyWait(Environment.DEFAULT_WAIT_TIME, TimeUnit.SECONDS);
}

public static void doTransaction(WebDriver driver) {
WebDriverWait wait = new WebDriverWait(driver, Environment.DEFAULT_WAIT_TIME);
System.out.println("Performing transaction...");

// This is where the transaction code is ......

}

@Test
public void transaction() {
//Login first
Login.doLogin(driver, baseURL);

// Transaction
doTransaction(driver);
}

@After
public void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/292 ... ser-log-in
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Selenium - Multi Browser и Multi User Log
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • @OneToOne или @ManyToOne в Instrument.created ссылается на неизвестную сущность: user.User, где User — интерфейс.
    Anonymous » » в форуме JAVA
    0 Ответы
    128 Просмотры
    Последнее сообщение Anonymous
  • @OneToOne или @ManyToOne в Instrument.created ссылается на неизвестную сущность: user.User, где User — интерфейс.
    Anonymous » » в форуме JAVA
    0 Ответы
    90 Просмотры
    Последнее сообщение Anonymous
  • «java.io.FileNotFoundException: Velocity.log», добавленный в файл eclipse .log
    Anonymous » » в форуме JAVA
    0 Ответы
    51 Просмотры
    Последнее сообщение Anonymous
  • Log.d не показывает log.d в Logcat Android Studio
    Anonymous » » в форуме JAVA
    0 Ответы
    49 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»