2014-12-24 2 views
0

ПРЕДПОСЫЛКА: У меня есть API REST, которые я тестирую с помощью Rest Assured. Я использую TestNG для выполнения теста. Однако ответы API различаются для разных значений заголовка запроса принятия (application/xml OR application/json). Напр. - теги, присутствующие в ответе xml, появляются с разными ключами, например, «employeeNo».Могу ли я вызвать различные тесты TestNG, изменив данные теста?

Поэтому я должен написать 2 разных теста (утверждения и синтаксический анализ) - один для ответа xml и другой для ответа json, все остальное остается неизменным. Напр. - updateEmployeeNameJsonTestSuite и updateEmployeeNameXmlTestSuite.

ТЕКУЩИЙ ПОДХОД: У меня есть два разных файла тестовых данных и два разных набора тестов - один для ответов json и один для ответов xml, каждый из которых вызывается с использованием опции -suiteName, предоставленной TestNG.

ПРОБЛЕМА: Я хочу параметризовать значение Accept Request Header в файле тестовых данных, а затем TestNG программно решить, какой тест вызывать. Я не смог найти хороший подход для достижения этого программно. Какие-либо предложения ?

ответ

1

Почему бы вам не параметризовать ваш тест и передать тип ответа в качестве параметра в testng xml. И тогда в зависимости от этого параметра вы можете сделать заголовок запроса. Мы делаем то же самое для нашего тестирования webservice. И напишите общий метод для проверки снова, который определит, какой тип ответа наступит в зависимости от значения параметра.

<suite name="My suite"> 
    <parameter name="ResponseType" value="Json"/> 
    <test name="Simple example"> 
    <-- ... --> 




@Parameters("ResponseType") 
    @Test 
    public void testNonExistentParameter(@Optional("xml") String ResponseType) { 
// Use Response type 
} 

То же самое можно сделать для методов @Before

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

+0

Хотя я закончил с использованием @DataProviders, это, безусловно, полезно для того, чтобы вести меня в правильном направлении. – user2611581

Смежные вопросы