Selenium, TestNG xml file, выдача в порядке выполнения, если в разных файлах классов добавлен одинаковый приоритет - PullRequest
0 голосов
/ 27 августа 2018

Я использую Selen WebDriver с каркасом TestNG.В XML-файле я назвал два файла классов, содержащих 2 теста.Я добавил приоритет для тестов в каждом классе.Но он всегда выполняет все тесты с одинаковым приоритетом из другого класса.

Первый класс

package demo;

import org.testng.annotations.Test;

public class testing1 {

    @Test(priority = 1)
    public void test1(){
        System.out.println("Test one");
    }

    @Test(priority = 2)
    public void test2(){
        System.out.println("Test two");
    }
}

Второй класс

package demo;

import org.testng.annotations.Test;

public class testing2 {

    @Test(priority = 1)
    public void test3(){
        System.out.println("Test Three");
    }

    @Test(priority = 2)
    public void test4(){
        System.out.println("Test Four");
    }

}

XML-файл

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="CavionTestSuit">
    <test name="Testing11">
        <classes>
            <class name="demo.testing1"></class>
            <class name="demo.testing2"></class>
        </classes>
    </test>
</suite> 

Здесь я получаю вывод в виде:

Test one
Test Three
Test two
Test Four

Как я могу запустить тесты в каждом классе вместе в соответствии с добавленным приоритетом.Мой ожидаемый результат:

Test one
Test two
Test Three
Test Four

Если я добавлю приоритет для второго класса как 3 и 4, он будет выполняться в порядке, указанном в XML-файле.Но это неосуществимо для проекта, имеющего несколько классов и тестов.

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Это предполагаемое поведение TestNG.Вы сталкиваетесь с этой проблемой, поскольку

@Priority является глобальным.

Надеюсь, что это дает четкое представление об основной причине.

Решение: dependsOnMethods и dependsOnGroups должны быть предпочтительным способом упорядочить вещи в классе.

Для получения дополнительной информации и информации об этом, проверьте ссылку ниже на github testNG.

https://github.com/cbeust/testng/issues/1324

https://github.com/cbeust/testng/issues/1309

0 голосов
/ 27 августа 2018

Выполнение теста будет происходить, когда поток testng свободен и выбирает тестовый пример.

В вашем случае поток ищет тестовые случаи в классе test1 и находит тестовый пример с приоритетом 1, поток будет занят методом test1, после выполнения test1 поток будет свободен и ищет другой. выполнение тестового примера. Он создает другой тестовый набор с приоритетом 1 в классе тестирования 2, поэтому поток занимает метод test3 вместо метода test 2

Обратите внимание, что когда выполнение выполняется с testng.xml, приоритет не ограничивается уровнем класса, он будет анализироваться с общим приоритетом, первый приоритет первого класса будет выполняться первым

Пожалуйста, используйте строку ниже, чтобы проверить поток, который он выполняет

System.out.println("Test Case three with Thread Id:- "+ Thread.currentThread().getId());

Для достижения сценария вы можете достичь этого двумя способами

- Удалить приоритет на тестовом уровне, тогда ваши тестовые классы будут выполняться в следующем порядке.

- Переупорядочить контрольные примеры в классе testing2 с приоритетом 3 и приоритетом 4

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