Как структурировать функциональные тесты с использованием селена и джунита - PullRequest
0 голосов
/ 20 сентября 2019

Я пишу функциональный тест для страницы с параметризованными данными, и я не уверен, как настроить тест, следуя рекомендациям.Я использую Selenium, JUnit и Extent Report.

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

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

как мне выполнить разделение тестов, но чтобы они выполнялись в порядке, необходимом для создания правильного отчета

MaintenancePageTest.javaextends JUnitTestReporter

@Test public void maintenancePage(){ pageObjectClass.step1(); pageObjectClass.step2(); pageObjectClass.step3(); }

PageObjectClass.java

public void step1(){ some action with web elements } public void step2(){ some action with web elements } public void step3(){ some action with web elements }

JUnitTestReporter.java

@Rule
public TestRule junitWatcher = new testWatcher(){
    @Override
    protected void succeeded(Description description){
       logger.log(Status.PASS,"some stuff about test")
    }
    @Override
    protected void failed(Throwable e, Description description){
       logger.log(Status.FAIL,"some stuff about test")
    }
}

Как я могуотдельный тест, чтобы я мог знать, какая часть неисправна, но заставить их работать в правильном порядке

...