Как исключить группы на основе условия в TestNG? - PullRequest
0 голосов
/ 21 сентября 2018

У меня около 10 тестовых примеров в модуле входа.Я должен выполнить тест в среде Staging и Product, но в среде Product, необходимо исключить некоторые конкретные тестовые сценарии, которые требуют вставки фиктивных данных в приложение.Для этого я добавил одно имя группы PRO_EXCLUDE в моих сценариях.

См. Приведенный ниже пример с объединенными именами групп, которые мне нужно исключить при выполнении.

SCENARIO: verify login landing page
META-DATA: {"TestCase_ID":"BP_L&R_001","description":"verify login landing page ","groups":["REGRESSION","PRO_EXCLUDE"]}    
    Given user is on homepage
    When clicks on login link
    Then verify page title text with title '${loginpage.title}'
END

И остальные методыиметь только одну группу, то есть REGRESSION

Я настроил тест следующим образом

<test name="Login" enabled="true">
    <method-selectors>
        <method-selector>
            <script language="beanshell"><![CDATA[ return groups.containsKey("REGRESSION") && groups.containsKey("PRO_EXCLUDE");]]></script>
        </method-selector>
    </method-selectors>
    <parameter name="scenario.file.loc" value="scenarios/login.bdd" />

    <classes>
        <class name="com.qmetry.qaf.automation.step.client.text.BDDTestFactory"></class>
    </classes>
</test>

Это запускает сценарий, в котором REGRESSION и PRO_EXCLUDE группируют оба.Я не хочу выполнять этот, но остальные сценарии только с группой REGRESSION.

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Лучший подход - использовать функцию метаданных qaf.В соответствии с этим, вместо добавления нескольких групп, классифицировать их в зависимости от природы.Например:

  • Область действия - дым, регрессия
  • Модуль - FunctionlModule1, FM2
  • Канал - Web, API, мобильный

и т.д ...

Вам необходимо определить для своего AUT и установить в сценарии как метаданные.

SCENARIO: verify login landing page
META-DATA: {"TestCase_ID":"BP_L&R_001","description":"verify login landing page ","scope":"REGRESSION","feature":"PRO_EXCLUDE"]}    
    Given user is on homepage
    When clicks on login link
    Then verify page title text with title '${loginpage.title}'
END

Если вы создаете тестовый пример в Java, вы можете использовать @MetaData в методе теста для установки метаданных тестового примера.Вы можете использовать фильтр метаданных, установив соответствующее значение свойства include и exclude, как показано ниже:

include= {'scope': ['REGRESSION'], 'feature': ['PRO_EXCLUDE']}

Он будет включать тестовые сценарии / сценарии с метаданными scope, значение которых REGRESSION И feature, значение которого PRO_EXCLUDE.Пожалуйста, обратитесь к документации для большего количества примеров использования.

ПРИМЕЧАНИЕ : Для правильной работы этой функции необходимо добавить селектор метода из qaf com.qmetry.qaf.automation.testng.pro.QAFMethodSelector в файле конфигурации xml или в муравьином тесте или в maven pom.Группы также рассматриваются как один из метаданных по Qaf.

0 голосов
/ 21 сентября 2018

Ниже условия работают для меня:

<method-selectors>
    <method-selector>
        <script language="beanshell"><![CDATA[ return groups.containsKey("REGRESSION") && (!groups.containsKey("PRO_EXCLUDE"));]]></script>
    </method-selector>
</method-selectors>

Дальнейшее решение будет с благодарностью.

...