2016-12-14 10 views
-2

В настоящее время я работаю с тестированием api с гарантированным отдыхом. Мой образец url: http://eampleUrl/register/device?s=123&m=23ewre&d=123 Здесь параметр s = секрет устройства, m - адрес mac, а d - идентификатор устройства. Я хочу знать, как написать параметр в приведенном выше URL-адресе, в коде и как использовать его с аннотациями dataprovider. И как проверить с помощью команды assert?Отдых с testng

{ "сбщ": "REG_DEV_01", "уровень": "Информация", "мета": {}} это является ответом об успешном

package com.qber.test; 

import org.testng.annotations.DataProvider; 
import org.testng.annotations.Test; 

import static com.jayway.restassured.RestAssured.given; 
import static org.hamcrest.CoreMatchers.equalTo; 

/** 
* Created by naveen on 14/12/16. 
*/ 
public class testDemo { 


    @Test(dataProvider = "circuitLocations") 
    public void circuitLocationTest(String circuitId, String location) { 

     given(). 
       pathParameters("circuitId",circuitId). 
       when(). 
       get("http://ergast.com/api/f1/circuits/{circuitId}.json"). 
       then(). 
       assertThat(). 
       body("MRData.CircuitTable.Circuits[0].Location.country",equalTo(location)); 
    } 

    @DataProvider(name = "circuitLocations") 
    public static Object[][] createCircuitTestData() { 

     return new Object[][] {{"[email protected]", "xtxtxt"}, {"[email protected]", "xtxtxt"}}; 
    } 

} 
+2

Непонятно, что вы просите: как передать аргументы с помощью DataProvider или как сделать утверждения в RA? Пожалуйста, сначала отредактируйте свой вопрос и прочитайте документацию. – RocketRaccoon

ответ

0

главная причина что он не работал, вероятно, предоставил данные, через DataProvider.

Extra:

  • Добавляет проверить вернулся statusCode(equalTo(200));
  • Добавляет еще несколько подтверждений сообщения тела;
  • Добавляет extract() для извлечения тела в виде строки. Который может быть показан.

Вот скорректированный код.

package com.qber.test; 

import static com.jayway.restassured.RestAssured.given; 
import static org.hamcrest.CoreMatchers.equalTo; 

import org.testng.annotations.DataProvider; 
import org.testng.annotations.Test; 

import com.jayway.restassured.http.ContentType;; 

public class DemoTest { 

    @Test(dataProvider = "circuitLocations") 
    public void circuitLocationTest(final String circuitId, final String location) { 
     System.out.println("circuitId '" + circuitId + "' location '" + location + "'"); 

     final String body = 
     given() 
       .pathParameters("circuitId", circuitId) 
     .when() 
       .get("http://ergast.com/api/f1/circuits/{circuitId}.json") 
     .then() 
       .contentType(ContentType.JSON) 
       .assertThat() 
       .body("MRData.series", equalTo("f1")) 
       .body("MRData.CircuitTable.Circuits[0].circuitId", equalTo(circuitId)) 
       .body("MRData.CircuitTable.Circuits[0].Location.country", equalTo(location)) 
       .extract() 
       .body().asString(); 

     System.out.println(body); 
    } 

    @DataProvider(name = "circuitLocations") 
    public static Object[][] createCircuitTestData() { 
     return new Object[][] { 
       {"monza", "Italy"} 
       , {"donington", "UK"} 
      }; 
    } 

}