Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Ant+Junit+настройка тестов


(Вавилон Иванов) #1

Здравствуйте.
Начинаю запускать автоматизированное тестирование. Настроил по этому примеру https://github.com/saucelabs/sauce-java/tree/master/quickstart-ant/quickstart-webdriver-junit

Каким образом вынести настройки @Before в отдельный файл. Чтобы менять параметры тестов в файле, а применялось ко всем тестам.
Вот тест из примера https://github.com/saucelabs/sauce-java/blob/master/quickstart-ant/quickstart-webdriver-junit/src/test/java/WebDriverTest.java .
Проблема:

  1. как создать файл с настройкой @Before
  2. как “внедрять” такой файл в тесты

Долгое время занимался мануальным тестированием,поэтому переход дается очень тяжело.


(Roy Obenon) #3


тут глянь


(Вавилон Иванов) #4

не помогло. я не так силен в программировании. Мне бы простой рабочий пример…


(Roy Obenon) #5

Берете в отдельном классе создаете чисто метод @Before. Создаете другой класс и наследуетесь от того класса, где вы прописали метод @Before.


(Вавилон Иванов) #6

А как это сделать на примере? И как это потом прикрутить в Ant, нужно ли что-то редактировать в build.xml?


(Roy Obenon) #7
class Base {
WebDriver driver;

@Before
public void beforeTest(){
driver = new FirefoxDriver();
// плюс что еще вам необходимо 
  }
}

 public class Main extends Base {
 
 @Test 
 public void executeTest() {
// само тело теста

}
}

Примерно где то так


(Вавилон Иванов) #8

Суть ясна. А как это теперь прикрутить к Ant и Junit?
Все тесты у меня запускаются как в примере ( в шапке) .


(Roy Obenon) #9

я вообще суть вопроса не пойму? что значит прикрутить Junit? он импортируется как либа и пошло поехало. С Ant-ом я не работал, поэтому не знаю.


(Вавилон Иванов) #10

Я использовал пример как быструю настройку для запуска тестов.
Мои тесты запускаются, но в каждом стоит настройка @before и она одинакова для каждого теста.
Как вынести я уже понял, но куда положить ( в какую папку) этот base class я не могу понять.


(Roy Obenon) #11

ну там где и остальные файлы лежат проекта


(Denis Gayevskiy) #12

Положите рядом с тестовым классом.

Мне кажется, все-таки стоит немного разобраться в архитектуре антовских проектов. А еще лучше использовать maven или gradle. Не хочу показаться брюзгливым дедом, но меня очень раздражает, когда люди пишут:

Тут не фабрика готовых решений, а форум, где людям помогают решить неординарные задачи и направляют в нужную сторону. Если вам сейчас выдать работающий код, что вы с ним будете делать дальше, когда тест свалится, например? Снова придете сюда и скажете “мне бы рабочий пример…”. Но это не то, чего мы все здесь хотим и добиваемся.


(Вавилон Иванов) #13

Если есть решения для неординарных задач, то простую задачу новичку тоже можно помочь решить.


(Denis Gayevskiy) #14

Помочь решить != дать готовое решение


(Roy Obenon) #15

Там есть ветки src и test думаю по логике ясно куда что класть!


(Вавилон Иванов) #16

Получаю такое в логе >>>> java.lang.NullPointerException

public class Setup {
WebDriver wd;

@Before
public void setUp() throws Exception {

DesiredCapabilities caps = DesiredCapabilities.firefox();
caps.setCapability("platform", "Windows XP");
caps.setCapability("version", "34.0");
caps.setCapability("record-video", "true");
caps.setCapability("screen-resolution", "1280x1024");
caps.setCapability("name", "общий шаг before");
String username = "****";
String accessKey = "****";
this.wd = new RemoteWebDriver(
        new URL(MessageFormat.format("http://{0}:{1}@ondemand.saucelabs.com:80/wd/hub", username, accessKey)),
        caps);
  }
}

И тест :

public class nologin_Test extends Setup{
  WebDriver wd;



    @Test
    public void WebDriver() {
        wd.get("http://www.***.ru/");
        wd.findElement(By.id("addTrigger")).click();
        assertEquals("войти", wd.findElement(By.cssSelector("div.form-field-wrap > input.btn")).getAttribute("value"));
    }

(Roy Obenon) #17

Конечно будет NPE! зачем определять в исполняющем классе еще один драйвер? ты же наследуешь один уже


(vmaximv) #18

Ваша задача не касается ни анта, ни джейюнита, ни, прости госпади, вебдрайвера.
И если абстрагироваться, то ваш вопрос звучит так: “Как мне завести машину?”.
Можно конечно рассказать, что: нужно активировать стояночную тормозную систему, поставить рычаг МКПП на нейтральную передачу, вставить ключ в замок зажигания, включить зажигание, дождаться когда контрольная лампа свечей накала потухнет, выжать сцепление, запустить двигатель, дождаться его устойчивой работы, отпустить педаль сцепления. Можно еще потрать кучу времени, объясняя все эти действия и термины. Но зачем, если ваше путешествие закончится на первом же перекрестке, если не раньше, т.к. вы не знаете ПДД?


(Вавилон Иванов) #19

bing278 >>>Спасибо большое!