co dokumentacja wyjaśnia:
pewny, automatycznie spróbuje określić, który typ parametru (tj zapytanie lub parametr forma) w oparciu o metodę HTTP . W przypadku parametru parametry zapytania GET zostaną automatycznie użyte, aw przypadku POST zostaną użyte parametry formularza.
Ale w twoim przypadku wydaje się, że potrzebujesz parametru ścieżki zamiast parametrów zapytania. Pamiętaj też, że ogólny adres URL do uzyskania kraju to http://restcountries.eu/rest/v1/name/{country}
, gdzie {country}
to nazwa kraju.
Istnieje również wiele sposobów przesyłania parametrów ścieżki.
Oto kilka przykładów
Przykład wykorzystania pathParam():
// Here the key name 'country' must match the url parameter {country}
RestAssured.given()
.pathParam("country", "Finland")
.when()
.get("http://restcountries.eu/rest/v1/name/{country}")
.then()
.body("capital", containsString("Helsinki"));
Przykład wykorzystania zmiennej:
String cty = "Finland";
// Here the name of the variable have no relation with the URL parameter {country}
RestAssured.given()
.when()
.get("http://restcountries.eu/rest/v1/name/{country}", cty)
.then()
.body("capital", containsString("Helsinki"));
Teraz, jeśli chcesz zadzwonić do różnych usług, można również parametryzują "usługa" w ten sposób:
// Search by name
String val = "Finland";
String svc = "name";
RestAssured.given()
.when()
.get("http://restcountries.eu/rest/v1/{service}/{value}", svc, val)
.then()
.body("capital", containsString("Helsinki"));
// Search by ISO code (alpha)
val = "CH"
svc = "alpha"
RestAssured.given()
.when()
.get("http://restcountries.eu/rest/v1/{service}/{value}", svc, val)
.then()
.body("capital", containsString("Bern"));
// Search by phone intl code (callingcode)
val = "359"
svc = "callingcode"
RestAssured.given()
.when()
.get("http://restcountries.eu/rest/v1/{service}/{value}", svc, val)
.then()
.body("capital", containsString("Sofia"));
Po tym można również łatwo użyć JUnit @RunWith(Parameterized.class)
do podania parametrów "svc" i "wartość" dla testu jednostkowego.
Wygląda na to, że połączenie z serwisem sieciowym nie jest poprawne, kiedy wzywam, http://restcountries.eu/rest/v1?name=Finland, otrzymuję informacje o wszystkich krajach, a raczej jeśli spróbujesz "http://restcountries.eu/rest/v1/name/Finland "otrzymujesz szczegółowe informacje o kraju. – Uday
Moja odpowiedź została już poprawiona. pls check –
Jeśli przekazujemy parametr według wartości, jaka jest zaleta posiadania tutaj parametrów? \t String strCountryName = "Finlandia"; \t \t RestAssured.given(). // \t \t \t \t \t \t \t parametry ("nazwa", "Finlandia"). \t \t \t \t \t kiedy(). \t \t \t \t \t \t \t get ("http://restcountries.eu/rest/v1/name/" + strCountryName). \t \t \t \t \t następnie(). \t \t \t \t \t ciało ("kapitał", hasItem ("Helsinki")); Dlaczego potrzebuję parametru powyżej, który skomentowałem? – Uday