Как запустить тестирование из файла XML в определенном порядке - PullRequest
0 голосов
/ 23 мая 2018

Я хочу запустить тесты в определенном порядке из файла XML.Сначала мне нужно протестировать функцию входа, затем другие.У меня есть класс TestRunner и файл testng.xml.Но когда я запускаю тесты через TestRunner, они запускаются случайным образом, даже если у тестов есть атрибут disabledOnGroups.Вот мой код:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1" parallel="tests" thread-count="2">
<listeners>
    <listener class-name="com.epam.tat.framework.listeners.SuiteListener"/>
    <listener class-name="com.epam.tat.framework.listeners.TestListener"/>
</listeners>
<test name="test1">
    <classes>
        <class name="com.epam.tat.framework.mail.test.MailLoginTest"/>
        <class name="com.epam.tat.framework.mail.test.MailRuTest" />
    </classes>
</test>
<test name="test2">
    <classes>
        <class name="com.epam.tat.framework.cloud.test.CloudLoginTest"/>
        <class name="com.epam.tat.framework.cloud.test.CloudTest"/>
    </classes>
  </test>
</suite>

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

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

import org.testng.Assert;
import org.testng.annotations.Test;

public class GroupTestExample {
   String message = ".com";
   MessageUtil messageUtil = new MessageUtil(message);

   @Test(groups = { "functest", "checkintest" })
   public void testPrintMessage() {
      System.out.println("Inside testPrintMessage()");
      message = ".com";
      Assert.assertEquals(message, messageUtil.printMessage());
   }

   @Test(groups = { "checkintest" })
   public void testSalutationMessage() {
      System.out.println("Inside testSalutationMessage()");
      message = "test" + ".com";
      Assert.assertEquals(message, messageUtil.salutationMessage());
   }

   @Test(groups = { "functest" })
   public void testingExitMessage() {
      System.out.println("Inside testExitMessage()");
      message = "www." + "test "+".com";
      Assert.assertEquals(message, messageUtil.exitMessage());
   }  
}

, и тогда xml будет выглядеть примерно так:

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name = "Suite1">
   <test name = "test1">
      <groups>
         <run>
            <include name = "functest"/>
         </run>
      </groups>

      <classes>
         <class name = "GroupTestExample" />
      </classes>
   </test>


   <test name = "test2">
      <groups>
         <run>
            <include name = "checkintest"/>
         </run>
      </groups>

      <classes>
         <class name = "GroupTestExample" />
      </classes>
   </test>

</suite>

и вы можете поиграть с включенными / исключенными группами и добавить один или несколько классов.

Если вы хотите еще более тонкую грануляцию, порядок в тестовом наборе, добавьте приоритет для каждого теста следующим образом:

  @Test( priority = 4 )
    public void testB1() {
        System.out.println("testB1");
    }

    @Test( priority = 5 )
    public void testB2() {
        System.out.println("testB2");
    }

    @Test( priority = 6 )
    public void testB3() {
        System.out.println("testB3");
    }

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

0 голосов
/ 23 мая 2018

Посмотрите, что TestNG говорит о invoking in a certain order.

Иногда вам нужно, чтобы ваши тестовые методы вызывались в определенном порядке. См. Пример ниже:

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

@Test
public void serverStartedOk() {}

@Test(dependsOnMethods = { "serverStartedOk" })
public void method1() {}  

В этом примере method1 () объявляется в зависимости от метода serverStartedOk (), который гарантирует, что serverStartedOk () всегда будет вызываться первым.

Для получения дополнительной информации: TestNG_dependencies

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