Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Самыи? сложныи? случаи?, с которым я столкнулся, работая программистом



Software-Testing.Ru - портал тестировщиков  

Новые темы форума тестировщиков


Самый сложный случай, с которым я столкнулся, работая программистом
2017-12-07 10:49

Автор: Gerald M. Weinberg

 

Оригинальная публикация: http://secretsofconsulting.blogspot.ru/2017/10/my-most-challenging-experience-as.html

 

Перевод: Анастасия Данилкина

 

Читатели задали мне вопрос: «С каким самым сложным случаем вы столкнулись, работая программистом?»

Мы разрабатывали систему слежения для проекта Меркурий, которая должна была отправлять человека в космос и возвращать его живым обратно. Задача «вернуть живым» была сложной, но не единственной. Были и другие трудности:

- Система базировалась на всемирной сети довольно ненадежных телетайпных подключений.
- Мы должны были определить место приземления в Тихом океане в пределах небольшого радиуса, а для этого нам нужны были часы, идеально точно синхронизированные на компьютере и в космической капсуле.

 

Читать публикацию полностью



Как вынести создание объекта из теста
2017-12-07 15:45

Доброго времени суток!

Я недавно начал изучать автоматизированное тестирование с помощью selenium; пишу на Java. В качестве тестового фреймворка использую TestNG.

Также недавно познакомился с таким паттерном, как PageObject и на основе этого паттерна проектирую архитектуру автотестов. В данный момент имею следующую архитектуру: классы с тестами, которые наследуются от базового тестового класса (BaseTest); отдельно лежат классы с пэйджами, которые наследуются от базового пейджа (BasePage) и в самом вверху лежит абстрактный класс API, который наследуют два класса: BaseTest и BasePage. В этом классе API лежат хелперы и константы, которые я использую и в пейджах и в тестах. Вот в крации об архитектуре.

Вопрос такой: в тестовых классах в каждом тестовом методе я создаю объекты страниц и мне это не нравится, так как я хочу создание объектов вынести из тестового метода в тестовый класс.

Пример: допустим есть тестовый класс LoginTests в котором лежит один тестовый метод loginWithInvalidEmail(). в этом тестовом методе я использую объект класса LoginPage. Я хочу это создание объекта вынести из метода в тестовый класс, вот как в в моем коде ниже: 

 

public class LoginTests extends BaseTest {

 

LoginPage loginPage = new LoginPage(driver);

@Test
public void loginWithInvalidEmail() {
open(TESTPROLINE);
loginPage.emailInput.sendKeys(invalidEmail);
loginPage.passwordInput.sendKeys(PASSWORD);
loginPage.submitButton.click();
assertThat(textToBePresentInElement((loginPage.errorMessage), "Email or password is incorrect!"));
}

 

Но проблема в том, что когда я запускаю этот тест, то происходит следующее: открывается браузер, он настраивается(размер на полный экран, задаются неявные ожидания) и после этого загружается моя страница TESTPROLINE и когда дело доходит до строчки "loginPage.emailInput.sendKeys(invalidEmail);", то тест падает с ошибкой java.lang.NullPointerException. я так понимаю тут проблема в базовом тестовом классе, в котором происходит та самая "настройка браузера", поэтому привожу также код из класса BaseTest:

public class BaseTest extends API {

public static WebDriver driver ;

@BeforeMethod
public void initializeDriver() {
System.setProperty("webdriver.chrome.driver", "C:\\Program Files\\chromedriver_win32\\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.manage().window().maximize();
}

@AfterMethod
public void tearDown() {
// Close all browser windows and safely end the session
driver.quit();
}

}

Вообщем я так понимаю, что проблема в вышеописанных двух методах, но я не могу понять что именно происходит и почему валится тест. По поводу этих аннотаций, то я хочу чтобы между тестами закрывался браузер и открывался снова. 



Как запустить один конкретный тестовый набор testng.xml с помощью mave
2017-12-07 17:16

У меня есть несколько тестовых наборов: testng-ui.xml, testng-api.xml, testng-smoke.xml подскажите как запускать один из этих наборов, использую maven? В POM.xml добавил следующие строки:

<plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>

                        <suiteXmlFiles>
                            <suiteXmlFile>src/test/resources/testng-ui.xml</suiteXmlFile>
                            <suiteXmlFile>src/test/resources/testng-api.xml</suiteXmlFile>
                            <suiteXmlFile>src/test/resources/testng-smoke.xml</suiteXmlFile>
                        </suiteXmlFiles>

Запускаю следующей командой: mvn clean test -Dsurefire.suiteXmlFiles=testng-api.xml  

начинается сборка и запускаются все тестовые наборы. Подскажите пожалуйста как сделать, что бы запускался только один тестовый набор в данном случае testng-api.xml ???

Заранее благодарю.



Автоматичекий заход на почту
2017-12-07 23:03

Задача:  Автоматический зайти на почту

 

Пример кода:

import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class autoLogin {
public static void main(String[] args) {

// Create a new instance of the Firefox driver
WebDriver driver = new FirefoxDriver();
// Load local geckodriver
System.setProperty("webdriver.gecko.driver", "C:/Selenium/");
// Wait For Page To Load
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
// Navigate to URL
driver.get("https://mail.google.com/");
// Maximize the window.
driver.manage().window().maximize();
// Enter UserName
driver.findElement(By.id("Email")).sendKeys(" YOUR USER NAME");
// Enter Password
driver.findElement(By.id("Passwd")).sendKeys("YOUR PASSWORD");
// Wait For Page To Load
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
// Click on 'Sign In' button
driver.findElement(By.id("signIn")).click();
//Click on Compose Mail.
driver.findElement(By.xpath("//div[@class='z0']/div")).click();
// Click on the image icon present in the top right navigational Bar
driver.findElement(By.xpath("//div[@class='gb_1 gb_3a gb_nc gb_e']/div/a")).click();
// Click on 'Logout' Button
driver.findElement(By.xpath("//*[@id='gb_71']")).click();
// Close the browser.
driver.close();
}
}

Проблема: Разные реализации подобного сценария, приводят к открыванию Firefox страницы...

                   и на этом всё останавливается...

 

Untitled.jpg

 

Что я упускаю или может env не настроено, как положено?

 

Windows10 - IntelliJ 2017.2.6



© 2010 | Software-Testing.Ru


В избранное