Вопросы с тегами [rest-assured]

1

голосов
0

ответ
25

Просмотры

JSONPath: сохранение содержимого в отфильтрованных значений

}] Вопрос есть ли API, чтобы сохранить содержимое полного результата JSON от корневого уровня? И есть ли какой-либо конкретный API, чтобы получить результаты Путей [ "$ [ 'Результаты'] [0] [ 'места'] [0] [ 'планов'] [0] [ 'многоуровневого'] [0]", " $ [ 'результаты'] [0] [ 'локаций'] [0] [ 'планы'] [2] [многоуровневая] [0] "" $ [ 'результаты'] [1] [ 'локаций'] [0] [ 'планы'] [1] [многоуровневая '] [0]»]
Syed Mazreena
1

голосов
1

ответ
581

Просмотры

Гарантированный REST: как проверить объект типа «Set» в теле?

Я хотел бы получить утверждать тело ответа с помощью REST Страхователя. Но в настоящее время я не в состоянии сделать это. Я получаю сообщение нижеследующего об ошибке. деталь реализации заключается в следующем: BannerDto resultBannerDto = дано () .contentType ( "применение / JSON") .Body (bannerAddDto) .when () .POST ( "/ API / v1 / администратора / баннеры") .then () .statusCode (HttpStatus.OK.value ()) .contentType (ContentType.JSON) .Body ( "имя", equalTo ( "баннер A")) // эта строка делает ошибку: .Body ( "регионы", equalTo (regionsSet.toString ())) .extract () как (BannerDto.class). в то время как ошибка: не удалось 1 ожидание: java.lang.AssertionError. JSON регионы пути не совпадают. Ожидаемый: [1, 2] Фактический: [1, 2] Параметр regionsSet является: частный набор regionsSet = новый HashSet (); regionsSet.add (1л); regionsSet.add (2l); и реагирование службы выглядит следующим образом: {регионы = [1, 2], ENDDATE = 2017-05-01T22: 00: 00, productIds = [], bannerId = 15, ...
nima pirmoradian
1

голосов
0

ответ
53

Просмотры

Cucumber step repeat NullPointerException

Я пытаюсь запустить функцию а и функцию Ь, которая имеет то же шаги, как показано ниже есть: Сценарий Outline: Verify правильных значений сущностей при выполнении запроса GET на локальный хост: «» / «» Тогда статус ответа должен быть 200 и JSON тело содержащий «приложение работает» функция б: Сценарий Outline: Проверьте неправильные значения сущностей при выполнении запроса на запись с правильным файлом на локальный хост: «» / «» «» «» «» «» Тогда статус ответа должен быть 400 и ответным сообщение это «не является допустимым типом сущности.» Примеры: | порт | конечная точка | superregion | юридическое лицо | Имя файла | ТипСодержимого | | 8081 | апи / v1 / админ | ANBS | V | anbs.tsv | anbsFile | Когда я попытался использовать те же шаги, я получил сообщение об ошибке:
sri
1

голосов
1

ответ
59

Просмотры

Создание теста в Jira с помощью Rest Assured

Я новичок в Гарантированном отдых и в настоящее время пытается создать сообщение JSON для размещения вопроса типа TEST в Jira, используя Rest Страхователя. Тем не менее, я не в состоянии правильно создать тестовые шаги в сообщении. Ниже код и структура сообщения, что я получаю. TestStepMap teststep = новый TestStepMap (); Лист сек = новый ArrayList (); для (INT I = 0; я
1

голосов
2

ответ
326

Просмотры

Как передать параметры конечной точки через преуспеть в Rest гарантированного

Я хочу, чтобы передать параметр «Страна» с названиями разных стран. Можно ли сохранить все названия стран в первенствовать и назвать тех из файла данных. RestAssured.given () .pathParam ( "страна", "Финляндия") .when () .get ( "http://restcountries.eu/rest/v1/name/{country}") .then () .Body ( "капитал", containsString ( "Хельсинки"));
Mahesh
1

голосов
0

ответ
64

Просмотры

Убедитесь, что конкретное поле в каждом элементе массива в ответ JSON имеет конкретное значение

я должен утверждать, что каждое поле «CONTENTTYPE» внутри «содержания» в следующем JSON ответ содержит «VIDEO» в качестве значения. Сейчас я буду проверять существование поля с Hamcrest, как это: assertThat; (response.then () тело ( "contents.content", everyItem (hasKey ( "CONTENTTYPE"))).) Таким образом, я хотел такой же подход, чтобы проверить, что значение «VIDEO», и что он терпит неудачу, если он нашел тот, который имеет UNKNOWN или что-то другое, чем «VIDEO». { "содержимое": { "содержание": [{ "название": "clip012123", "ContentID": 1231231, "CONTENTTYPE": "VIDEO",}, { "название": "clip45637", "ContentID":
Lea Chescotta
1

голосов
0

ответ
47

Просмотры

Jayway JsonPath .. эквивалент в GPATH

Я хотел бы, чтобы извлечь все встроенные элементы JSon, но я не мог заставить его работать. Скажем, я хотел бы, чтобы отфильтровать все б здесь. Что GPATH синтаксис для фильтрации всех б здесь? {А: {с: {Ь: 1} Б: 45 г: {Ь: 444}} можно использовать $ .. б в Jayway, но, как бы использовать его для Groovy GPATH. Я работаю с Rest-Гарантированный, который использует Groovy GPATH. В общем, я хотел бы написать выражение для «соответствует всем». В Jayway JsonPath, мы можем использовать .., Есть ли какие-либо эквивалент этого в Groovy GPATH?
CMM
1

голосов
1

ответ
75

Просмотры

Можем ли мы построить RequestSpecification из io.restassured на пошагово?

Я формируя io.restassured запрос / ответ в следующей реакции способом реагирования = RestAssured.given (). Заголовки ( "авторизации", «Несущий маркер) .contentType (ContentType.JSON) .Body (tempJsonString) .post (MY_ENDPOINT). AndReturn (), я хочу, чтобы создать запрос на пошагово для, например, // Authorization запрос RequestObject = RestAssured.given () заголовки ( «Авторизация», «Знаменосец» + маркер);. // Добавляет тело, tempJsonString уже определенный запрос = request.body (tempJsonString); // Добавление HTTP Verb, MY_ENDPOINT уже определен запрос = request.post (MY_ENDPOINT) // Наконец ответ Response = запрос () andReturn ();. можно ли в io.restassured DSL ?
Gokul
1

голосов
2

ответ
32

Просмотры

Начало AssertionError с использованием restassured на Json repsonse значения поля и ожидаемые и фактические идентичны

Вот мой код после получения ответа. response.then () assertThat () тела ( "документы [0] .Items [0] .price.sales_tax_summary [0] .rate", equalTo ( "0.0"))..; здесь журнал ответ: { "ID": "цитата-1", "документы": [{ "ID": "документ-1", "элементы": [{ "ID": "2", "цена" : { "amount_inclusive": 200000,5, "amount_exclusive": 200000,5, "total_tax": 0.0, "TAX_RATE": 0.0, "sales_tax_summary": [{ "курс": 0,0, "Количество": 0,0}]}}}]} здесь сообщение об ошибке java.lang.AssertionError: 1 ожидание не удалось. JSON путь документы [0] .items [0] .price.sales_tax_summary [0] .rate не совпадает. Ожидаемое: 0.0 Фактическое: 0.0 Я попытался обрезки, используя содержащий подстроку, закупорки 0.0 в качестве двойных значений вместо строки, как ожидалось. но получил ту же ошибку закупорки 0.0, как двойные значения вместо строки, как ожидалось. но получил ту же ошибку закупорки 0.0, как двойные значения вместо строки, как ожидалось. но получил ту же ошибку
Omar Sabha
1

голосов
1

ответ
40

Просмотры

Каковы плюсы и минусы Unirest над RestAssured для тестирования API?

Я использовал будьте уверены, прежде чем и не знают unirest много. Кто-нибудь использовал как и может сказать мне, какой из них лучше для автоматизации API-интерфейсов отдыха
Poornima Hegde
1

голосов
1

ответ
738

Просмотры

Rest-Гарантированный Получить jsonPath когда JSON ключ начинается с номером

Как я могу получить имя = статус с помощью JSON пути ... проблемы здесь ключ = 2 является случайным число ,,, их любой способ, чтобы пропустить это случайное и читать название Am используя будь уверена ,, это образец ответа на запрос GET Response { "ошибка": ложь, "сообщение": "", "данные": { "2": { "имя": "Нет Статус", "защищенный": "1", "идентификатор": "1", " temporal_start ": "0", "temporal_end": "2147483647"}, "3": { "имя": "Начало", "защищенный": "1", "идентификатор": "2", "temporal_start":" 0" , "temporal_end ": "2147483647"}}} мой код запроса задается () .param (" ошибка " "ложь") .when () .get (URI) .then () .Body (" data.2.name », StartsWith (Нет))
Rakesh_Kesireddy
1

голосов
1

ответ
942

Просмотры

Rest assured with digest auth

У меня есть рабочее пружинный MVC приложение с услугами для отдыха и некоторых остальные гарантированных тестов, которые прекрасно: @Test общественной ничтожной createFoobarFromScratchReturns201 () {ожидать () StatusCode (201) .Учитывая () .queryParam ( «Foo», generateFoo (. .)) .queryParam ( "бар", generateBar ()) .when () сообщение ( "/ Foo / бар /"); } => OK Затем я реализовал переваривать аутентификацию. Все работает хорошо, теперь я должен войти, чтобы использовать свои услуги: завиток HTTP: // локальный: 8089 / Foo / бар => HTTP ERROR 401, Полная проверка подлинности требуется для доступа к данному ресурсу локон HTTP: // локальный: 8089 / Foo / бар --digest -u user_test: пароль => HTTP 201, СОЗДАНО Но когда я пытаюсь обновить свои тесты с наиболее очевидной функцией, у меня есть еще 401 ошибки: @Test общественных недействительные createFoobarFromScratchReturns201 () {ожидать () .statusCode (201). учитывая () .auth (). переваривать ( "user_test", "пароль") // Сборник добавлен здесь .queryParam ( "Foo", generateFoo ()) .queryParam ( "бар", generateBar ()) .when (). сообщение ( "/ Foo / бар /"); } => Ожидаемый код состояния не соответствует действительному коду состояния я нашел некоторые подсказки с функцией упреждающей (), но это, кажется, реализуется только основные: // Возвращает AuthenticatedScheme и сохраняет его в общую конфигурации RestAssured.authentication = . упреждающий () основной ( "user_test", "пароль"); // Пытаемся подобную вещь, но это не сработало: RestAssured.authentication = RestAssured.digest ( "user_test", "пароль"); В настоящее время я пытаюсь добиться двух вещей:
vaugham
1

голосов
1

ответ
1.7k

Просмотры

Как использовать метод POST в остальном гарантированного и получить значение от его ответа

Я хочу проверить метод POST, используя остальные в себе. Я хочу, чтобы получить значение, возвращенное в ответ и использовать значение как путь пары в другом методе GET. Может кто-нибудь, пожалуйста, предоставить образец кода для метода POST, и как получить значение от ответа.? Заранее спасибо. Edit: RequestSpecBuilder строитель = новый RequestSpecBuilder (); builder.setBody (вход); builder.setContentType ( "Применение / JSON; кодировка = UTF-8"); RequestSpecification requestSpec = builder.build (); учитывая () .spec (requestSpec) .when () .post ( "myURL"); Такой подход я использую для POST и метод PUT. Мой ответ будет производить вывод JSON, как { «Name»: «значение», «электронная почта»: «[email protected]»} Я хочу, чтобы получить значение имени и использовать его в качестве queryparam для другого метода GET.
Jugi
0

голосов
0

ответ
19

Просмотры

Найти конкретные пары ключ-значение в массиве объекта с будьте уверены

У меня есть ответ JSON что-то вроде этого: «SomeArray»: [{ «SomeProperty»: «SomeValue», // других свойств, которые не имеют отношений для меня}, { «SomeProperty»: «someOtherValue», // других свойств, которые не имеет значения для меня}] Я хочу, чтобы проверить, если массив SomeArray имеет объект с свойство с именем «SomeProperty» со значением «SomeValue», но не выходят из строя испытание, если он имеет другой объект с тем же свойством, но не то же значение. Является ли это возможным? До этого я не использовал статический индекс, потому что у меня был только один элемент в этом массиве.
Hienz
1

голосов
1

ответ
3.6k

Просмотры

RestAssured: Создание запроса GET с картой параметров

Я не могу сделать RestAssured Получить запрос (с Params) Карта paramsMap = generateParametersMap (параметры); Rs = RestAssured.get (URL, paramsMap); URL-адрес является конечной точкой - что я могу ударить 200 в браузере. Контроллер для вышеуказанного запроса: @RequestMapping (значение = "/ getMovieYear", метод = RequestMethod.GET, производит = MediaType.APPLICATION_JSON_VALUE) общественный INT fetchMovieYear (@RequestParam ( "MovieName") Строка MovieName) бросает исключение {..} трассировки стека для указанного выше: java.lang.IllegalArgumentException: Вы указали слишком много параметров траектории (1). в sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Method) в sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:62) в sun.reflect.DelegatingConstructorAccessorImpl. newInstance (DelegatingConstructorAccessorImpl.java:45) в java.lang.reflect.Constructor.newInstance (Constructor.java:422) Параметры (1) говорит, что я пытаюсь передать один параметр. Но я не вижу никакой удачи в получении этой работы.
Pramod Setlur
1

голосов
2

ответ
1.2k

Просмотры

Performing a post request using Rest Assured DSL

это тело моего почтового запроса { "Тип": "Что-то", "Проверка подлинности": [{ "Key": "ключ1", "Значение": "value1"}, { "Key": "key2", " Значение ":„значение2“}, {„Key“:„ключ3“,„Значение“:„value3“}]} Я не совсем уверен, как имитировать отправку параметров для моего почтового запроса на пост полезной нагрузки выше. Я предполагал, посылая все как ключевой пары значений, но не учитываются для гнездования в подлинности, который является массивом. Как освобожденный я получаю 400 Bad Request. Я был бы признателен за понимание того, как на самом деле отправить параметры пост должным образом для этого запроса. Есть ли отправить его в карте никакой разницы, кроме читаемости Это мой RestAssured DSL дано (). пары ( "тип", "Что-то"). пары ( "key1", "value1"). пары ( "key2", "значение2"). пары ( "ключ3", "value3"). Заголовок ( "Content-Type", "применение / JSON"). когда(). пост ( "HTTP: // someURL / что-то"). затем(). StatusCode (200). LOG () все (). пары ( "key2", "значение2"). пары ( "ключ3", "value3"). Заголовок ( "Content-Type", "применение / JSON"). когда(). пост ( "HTTP: // someURL / что-то"). затем(). StatusCode (200). LOG () все (). пары ( "key2", "значение2"). пары ( "ключ3", "value3"). Заголовок ( "Content-Type", "применение / JSON"). когда(). пост ( "HTTP: // someURL / что-то"). затем(). StatusCode (200). LOG () все ().
raguyadav
1

голосов
1

ответ
1.9k

Просмотры

будет restAssured работы с остальными входными параметрами поступающих из Excel листа? Кто-нибудь пробовал?

Я спросил мой босс, чтобы найти инструмент или дизайн один для тестирования услуг отдыха, размещенных в облачной среде. Он также спросил меня, могу ли я читать входные данные из Excel листа так, чтобы другие младшие члены могут писать тесты в Excel. Я создал базу ключевых слов приводится с помощью Apache пои, так что я знаю, как читать данные из Excel в программе Java. Я также работал на HTTPClient, так что я могу связать их вместе. Но я слышу много об отдыхе уверен и хочу знать, могу ли я использовать будь уверены, где вход может быть считан из Excel. Стоит ли тратить время на? Кроме того, с облачная инфраструктура, какой подход лучше? Благодарю.
Soya Feliz
1

голосов
2

ответ
2.2k

Просмотры

Отдых Гарантированного тестирования API - передать объект JSON в качестве параметра запроса GET

REST Гарантированный Тестирование - Как использовать удалить запрос, чтобы удалить рабочую область с этого адреса HTTP: // в-kumaran2-1: 8080 / DevOps-верстак-Web / отдых / апи / рабочее пространство / удалить / {ProjectID} дал запрос дал ( .) .when () удалить (URL, JSON тела); Где Пример запроса JSON тело приводится ниже { "имя": "newworkspace", "workspaceFlow": "Открыть Sorce", "versionControl": "СВН", "featureManagement": "JIRA", "defectManagement": "",» buildAutomation ":" Селен», "deploymentAutomation": "", "buildRepository": "Nexus", "codeQualityTools": "SonarQube", "automatedTestingTools": "Селен", "environmentProvision": "кукольный", "environmentConfiguration": "Марионетка",
ajai kumar
1

голосов
4

ответ
2.2k

Просмотры

Отдыхайте Гарантированный Framework полное соответствие JSON ответ

Я использую Rest Страхователь Framework для тестирования API (с помощью Java). В строке (1), я ожидал ошибку, поскольку есть несоответствие ожидаемого ответа JSON и фактический ответ JSON Но вместо того, чтобы мой код успешного выполнения. Может кто-то пожалуйста, скажите мне, если я делаю что-то неправильно в коде ниже? общественного недействительными test123 () {попробуйте {// прочитать Curl Запрос входного файла Строка JSon = input.readFromTextFile (System.getProperty ( "user.dir") + «\\ \\ в исходные тексты тестов \\ ресурсы \\ файл_ввода \\ CurlDataFile .текст"); = json.replaceAll JSON (»», ""); RestAssured.baseURI = "Мой URL"; дано(). CONTENTTYPE ( "применение / JSON"). Тело (JSON). когда(). сообщение(""). затем(). . AssertThat () тела (matchesJsonSchemaInClasspath ( "testCurlOuput1.json")); (1)} поймать (IOException е) {e.printStackTrace (); } Задвижка (JsonSchemaValidationException е) {e.printStackTrace (); }}
SachinB
1

голосов
1

ответ
440

Просмотры

Остальной уверен путь не в состоянии получить доступ к элементу с номером в пути

В следующем (частичном) ответе JSON: { "costPrices": { "3226186": [{ "FromDate": 1420066800000, "ФОРУМ": нулевой, "продукт": {Я пытаюсь получить доступ к значению FromDate, как это : тело ( «costPrices.3226186 [0] .fromDate», equalTo (1420066800000L)) Но когда дело доходит до числа в выражении пути он терпит неудачу, есть какой-нибудь способ обойти это? java.lang.IllegalArgumentException: Недопустимое выражение в формате JSON: Script1.groovy: 1: маркер неожиданный: 3226186 @ линия 1, колонка 40.
sjottil
1

голосов
1

ответ
418

Просмотры

Невозможно достичь конечного пункта API, на последовательном после вызова с использованием Rest Assured

Затем выполнить запись в API2 (второе исполнение) его успешной (201 создана строка состояния видно) Пожалуйста, предложите, если я что-то пропустил? я попытался с Restassured.reset () в период между запросами, а также, но та же проблема. Примечание: Через почтальон, я не вижу этот вопрос.
1

голосов
1

ответ
548

Просмотры

JsonProperty будет сериализовать, но не десериализации

Короче говоря, я пытаюсь написать тест интеграции с остальным заверили для службы отдыха я написал. Моя проблема заключается в том, что когда сервер пытается десериализация JSON я получаю сообщение об ошибке с полем «мета-данными», не помеченная как игнорируемые. Я должен обработать это поле, которое также означает, что (насколько мне известно) не могу пометить его как игнорируемый. Да, я «выключил его и снова». Выключен апач, вручную удалили свою войну и разобранные файлы, перераспределено, осмотрели содержимое, чтобы увидеть обновление, сервер повернулся обратно. ОТКАЗЫ: Если я не могу обновить версию, но я мог бы понизить. Например, я мог бы использовать Джексон 1.0 вместо Джексона 2.0. Я также упростил мою проблему для краткости. Я не могу изменить структуру JSON в любом случае. Я видел подобную тему, связанную с весной, но я не использую Spring. Это лишь фрагмент всего объекта JSON. Если я могу получить мета-данные и два его атрибуты работают, я могу применить то, что я узнал, к остальной части этой проблемы. Спасибо! Моя JSON { "мета-данных": { "представление времени": "06.12.2016", "рабочий-справочник": "TEST-WORKFLOW"}} Мой POJO JSON пакет com.company.group.project.module.shared .json; импорт com.fasterxml.jackson.annotation.JsonFormat; импорт com.fasterxml.jackson.annotation.JsonFormat.Feature; импорт com.fasterxml.jackson.annotation.JsonIgnoreProperties; импорт com.fasterxml.jackson.annotation.JsonProperty; импорт com.fasterxml.jackson.databind.annotation.JsonSerialize; импорт java.util.List; @JsonIgnoreProperties (ignoreUnknown = истина) общественный класс JsonMandateRequest {@JsonProperty ( "мета-данные" ) Метаданные частных MetaData; общественный MetaData GetMetadata () {если (нуль == метаданные) {метаданные = новый MetaData (); } Возвращать метаданные; } Общественного недействительный setMetadata (конечная Метаданные) {this.metadata = метаданные; } @JsonSerialize общественного класса MetaData статического {@JsonProperty ( «представлений времени») личное Струнная временная метка; @JsonProperty ( «рабочий-справочник») частный рабочий строк; Строка getTimestamp общественности () {возвращение временной метки; } Общественного недействительными setTimestamp (конечная строка временной метки) {this.timestamp = метка времени; } Строка getWorkflow общественности () {возвращение рабочего процесса; } Общественного недействительными setWorkflow (окончательный рабочий String) {это. рабочий = рабочий процесс; }}} Моя Rest служба декларации (Я знаю, что путь работает. Это не то, что нарушается.) @POST @Consumes (MediaType.APPLICATION_JSON) @Produces ({MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN}) общественного uploadFile Response (конечная JsonMandateRequest напоминания) {возвращают buildResponse (напоминания, PROCESSOR_UPLOAD_MANDATE); } Вот код, который производит мой JSON строку. Это работает, но я включаю его в случае, если он приносит пользу читателя в некотором роде. общественности статической строки writeObject (конечный OBJ объекта) бросает IOException {ObjectMapper картостроитель = новый ObjectMapper (); картостроитель = mapper.disable (DeserializationFeature.FAIL_ON_INVALID_SUBTYPE); вернуться mapper.writerWithDefaultPrettyPrinter () writeValueAsString (объект). } Моя интеграция Тестовый фрагмент кода отклика г = даны (). . CONTENTTYPE (ContentType.JSON) .Body (jsonString) .when () сообщение (URL); System.out.println ( "Ответ" + URL + "(" + r.getStatusCode () + ")"); System.out.println (r.asString ()); Вывод: Ответ HTTP: // локальный: 8080 / приложение / отдых / путь (400) Непризнанное поле "мета-данные" (класс com.company.group.project.module.shared.json.JsonMandateRequest), не помеченные как игнорируемые в [Источник: [email protected]; линия: 2, колонка: 18] (через эталонной цепи: com.company.group.project.module.shared.json.JsonMandateRequest [ "мета-данные"]) Завершено com.company.group.project.module.services.rest .InstructionServiceIT # testLifecycle (InstructionServiceIT.java:95) Мой сервлет контейнер 7.0.73 кот Вот отрывки из моего пОМ. XML, которые показывают другие версии программного обеспечения я использую. javax.servlet javax.servlet-апи 3.0.1 при условии, com.sun.jersey Джерси-1.9.1 com.sun.jersey JSON Джерси-сервер 1.9.1 com.fasterxml.jackson.jaxrs ДЖЕКСОНА-jaxrs-JSON-провайдера 2.8. 3 com.fasterxml.jackson.core джексон-DataBind 2.8.3
Mark Taylor
1

голосов
2

ответ
664

Просмотры

RestAssured: unable to parse response for required value using Xpath

I need a little help getting used to Rest Assured. I have a request that I am building as a String (these tests are necessarily simplified for the time being as will be maintained by testers so utilising more advanced concepts like JAXB is on the back burner). String request = myPayRequest.searchPaymentOptions(dataObject); The String I am passing is actually a Soap envelope which looks like so: false ABC RESPONSE: SUCCESS 1.0.0-SNAPSHOT ABC GENERATABLE VISA_CREDIT wibble The response should & does contain a SOAP envelope with the following snippet SUCCESS When I try the following: String response = given().body(request) .when().post().andReturn().asString(); expect().body(hasXPath("//soap:Body//*[name()='status']", equalTo("FAILURE"))); ...then the test passes even when SUCCESS is the data value Likewise I have tried to use a different syntax but this also gives a false positive: given().config(newConfig().xmlConfig(xmlConfig().with().namespaceAware(true))); given().body(request).post(); expect().body(hasXPath("//soap:Body//*[name()='status']", equalTo("SUCCESS"))); Where am I going wrong? I shouldn't actually need to read the Response in as a String I believe so example one may be smelly. But example 2 also passes but should fail.
Steerpike
1

голосов
1

ответ
284

Просмотры

Может кто-нибудь помочь мне с рабочим кодом для запроса поста Restassured с Authorization Header

Я новичок в Restassured автоматизации веб-сервиса. Я в состоянии получить OAuth2 маркер и сохранить его в строку. Но когда я прохожу эту строку в заголовке Authorization, я получаю 403 ошибку. Работа кода для хранения маркера в строке: `ответ String = дано () .params ( "grant_type", "XXX", "сфера", "XXX") .auth () .preemptive () .basic ( "XXX", "XXX") .when () .post ( "API / путь") .asString (); JsonPath jsonPath = новый JsonPath (ответ); = jsonPath.getString маркер доступа ( "access_token"); Строка PSWD = "Канал" + маркер доступа; `Код не работает ниже:` дал () заголовок ( "Авторизация", PSWD) .Body (содержание) .с () CONTENTTYPE ( "применение / JSON"..
Renu
1

голосов
1

ответ
133

Просмотры

RestAssured Отклик перекрываться

Я пытаюсь получить с помощью программирования RestAPI Множественных Ури. Все GET запросы нужно Basic Authorization Я использовал BaseClass где я определяю RequestSpecification, как показано ниже (Чтобы избежать кода авторизации каждый раз, когда испытание проводится) BaseClass.java:. RequestSpecification BasicAuth = RestAssured.given () принимает ( "текст / html ".) .auth () упреждающий () основной (" имя пользователя», "пароль"); Наследуется выше класса и используется параметр «BasicAuth» в классе с моими методами испытаний. Тесты общественного класса распространяется BaseClass {@Test (приоритет = 1) публичный недействительным test01 () бросает IOException {ответ = basicAuth.when () получить ( "url1"). Assert.assertEquals (200, response.getStatusCode ()); } @Test (приоритет = 2) общественного недействительными test02 () бросает IOException {ответ = basicAuth.when () получаем ( "URL2"). Assert.assertEquals (200, response.getStatusCode ()); }} Проблема здесь оба испытания возвращают тот же ответ (ответ test01 в), хотя URI различны. Запуск test02 одна пропуска test01 дает ожидаемый ответ. Обходной путь заключается в определении двух параметров RequestSpecification и отправки запросов. Есть ли способ, где я могу очистить предыдущий получить ответ и отправить запрос еще раз, используя параметр BasicAuth. s различны. Запуск test02 одна пропуска test01 дает ожидаемый ответ. Обходной путь заключается в определении двух параметров RequestSpecification и отправки запросов. Есть ли способ, где я могу очистить предыдущий получить ответ и отправить запрос еще раз, используя параметр BasicAuth. s различны. Запуск test02 одна пропуска test01 дает ожидаемый ответ. Обходной путь заключается в определении двух параметров RequestSpecification и отправки запросов. Есть ли способ, где я могу очистить предыдущий получить ответ и отправить запрос еще раз, используя параметр BasicAuth.
1

голосов
1

ответ
552

Просмотры

Побег точки в Groovy GPATH

Я использую рамки RestAssured в Java, чья документация содержит эту ноту Обратите внимание, что синтаксис «JSON пути» использует GPATH обозначение Groovy и это не следует путать с синтаксисом JsonPath Jayway в. Мне нужно проверить следующее JSON: "_source": { "logSource": { "logger.name": "LogbackLogger",},} И селекторы как _source.logSource.logger.name или _source.logSource.logger.name [0] не вернет никакого результата. Я предполагаю, что это связано с точкой в ​​свойстве logger.name. Если не миновать не будет сделано, logger.name интерпретируются как если бы имя было под регистратором, который не является правдой. Как правильно бежать знак точки в GPATH, так что logger.name рассматривается как имя одного собственности? Спасибо!
Vlad.Bachurin
1

голосов
1

ответ
990

Просмотры

RestAssured: Как отключить предварительное блокирование средств когда

Я тестирование API с RestAssured. Методы Я звоню использую следующую аннотацию: @PreAuthorize ( «hasAnyRole („Role1“,„роль2“,„ROLE3“)») Мой класс Test содержит активный профиль для тестирования. Для конфигурации тестирования мы используем файл .yaml. Можно ли поставить что-то в .yaml файл, поэтому нам не нужно авторизовать при выполнении тестов? Или есть другой способ, таким образом, не предварительное блокирование средства активны, когда я бег тестов?
476rick
1

голосов
3

ответ
2.9k

Просмотры

Будьте уверены, как извлечь сгенерированный маркер из тела ответа после запроса POST и установите его в заголовке

Выполнение любого запроса, мне нужно выполнить проверку подлинности с запросом POST с телом {имя пользователя: «SomeName», пароль: «somepass»}, заголовок Content-Type: application.json, который дает мне ответ с генерироваться маркер, который мне нужно вставить в качестве второго заголовка, как Authorization-л: генерироваться-tokenkjhsdkjfvjbwjbQ == для дальнейших запросов. Не могли бы вы мне помочь с этим, пожалуйста.
Iriny
1

голосов
3

ответ
429

Просмотры

NullPointerException when using multiple stepdefinitions in Cucumber-jvm

I am currently building a framework to test a Rest-API endpoint. As I am planning to write a lot of test cases, I decided to organize the project to allow me to reuse common Step Definition methods. The structure is as follows; FunctionalTest com.example.steps -- AbstractEndpointSteps.java -- SimpleSearchSteps.java com.example.stepdefinitions -- CommonStepDefinition.java -- SimpleSearchStepDefinition.java` However when I try to call SimpleSearchSteps.java methods I get a NullPointerException CommonStepDefinition Code package com.example.functionaltest.features.stepdefinitions; import net.thucydides.core.annotations.Steps; import com.example.functionaltest.steps.AbstractEndpointSteps; import cucumber.api.java.en.Given; import cucumber.api.java.en.Then; import cucumber.api.java.en.When; public class CommonStepDefinition { @Steps private AbstractEndpointSteps endpointSteps; @Given("^a base uri \"([^\"]*)\" and base path \"([^\"]*)\"$") public void aBaseUriAndBasePath(String baseURI, String basePath) { endpointSteps.givenBasepath(baseURI, basePath); } @When("^country is \"([^\"]*)\"$") public void countryIs(String country) { endpointSteps.whenCountry(country); } @Then("^the status code is (\\d+)$") public void theStatusCodeIs(int statusCode) { endpointSteps.executeRequest(); endpointSteps.thenTheStatusCodeIs200(statusCode); } } SimpleSearchStepDefinition.java package com.example.functionaltest.features.stepdefinitions; import net.thucydides.core.annotations.Steps; import com.example.functionaltest.steps.EndpointSteps; import cucumber.api.java.en.When; public class SimpleSearchStepDefinition { @Steps private SimpleSearchSteps searchSteps; @When("^what is \"([^\"]*)\"$") public void whatIs(String what) { searchSteps.whenWhatIsGiven(what); } }
philip
1

голосов
1

ответ
638

Просмотры

Как получить значение ключа, если он содержит пробел в Rest Страхователь / Serenity?

Я пытаюсь использовать Rest Страхователя в рамках Serenity для проверки ответа конечной точки. Я посылаю тело XML в конечную точку и ожидать ответа JSON обратно следующим образом: { «запись ID»: «654123»} Я хочу, чтобы отправить XML и проверить, в ответ JSON, что значение ключа «Ввод ID» является не пустые или нулевой. Проблема заключается в том, ключ имеет место в нем, и я считаю, что это вызывает ошибку. Вот то, что я до сих пор: SerenityRest.given () CONTENTTYPE (ContentType.XML) .Body (xmlBody) .when () принимают (ContentType.JSON) .post (конечная точка) .then () тело ( "Вступление... ИД», а не (isEmptyOrNullString ())) .И () StatusCode (200). Это приводит к ошибке: java.lang.IllegalArgumentException: Invalid выражение JSON: Script1.groovy: 1: невозможно разрешить класс ввода @ строка 1, столбец 33.
Amax125
1

голосов
1

ответ
583

Просмотры

Spring oauth2 и интеграционные тесты

Нужна помощь при интеграции тестов для oauth2 клиента. Установка: Клиент с защищаемой UI и сервером аутентификации API, где все проверки пароля работы и маркер доступа извлеченного тестом интеграции: отдых гарантированным используется для конечных точек тестирования перед внедрением тестов oauth2 работал прекрасный Ole примера теста:. Дали () (авт) .preemptive () .basic (USER_EMAIL, ПАРОЛЬ)
Lugaru
1

голосов
1

ответ
347

Просмотры

Spring REST Docs - Update URIs in Response Snippets Generated From REST Assured Tests

When using REST Assured in conjunction with REST Docs, I have an issue to where requests have their port updated, but all the HATEOAS links in the response point to whatever address the test ran on. From the REST Docs documentation, I see how to update the request using a preprocessor: .addFilter(document("{class-name}/{method-name}/{step}", preprocessRequest( modifyUris().scheme("http") .host("localhost") .port(9999), removeHeaders("Accept")))) but cannot find if there is support to modify the port int the response. For instance, when I want to set the port in configuration to 9999: curl-request.adoc: (This is good: localhost:9999) $ curl 'localhost:9999/request/data' -i response-body.adoc: (I would like to change localhost:51123 to localhost:9999) { "_links" : { "requests" : { "href" : "localhost:51123/request/data/requests{?page,size,sort,projection}", "templated" : true }, "users" : { "href" : "localhost:51123/request/data/users{?projection}", "templated" : true }, "profile" : { "href" : "localhost:51123/request/data/profile" } } } Is there any accepted way using REST Docs or REST Assured to modify the content of the response? I am supposing I could create a @AfterClass method to parse-update those resources but am hoping for something cleaner. [Follow-Up] I accepted the answer from Andy W. below, but wanted to provide additional info for anyone who ever has the same issue - My problem was that I was trying to add the document filter twice: .addFilters(Arrays.asList( document("{class-name}/{method-name}/{step}", preprocessRequest(modifyUris().scheme("http") .host("localhost") .port(9999))), document("{class-name}/{method-name}/{step}", preprocessResponse(modifyUris().scheme("http") .host("localhost") .port(9999)))) vs. calling the document method with the parameters: RestDocumentationFilter document(String identifier, OperationRequestPreprocessor requestPreprocessor, OperationResponsePreprocessor responsePreprocessor, Snippet... snippets) https://docs.spring.io/spring-restdocs/docs/current/api/org/springframework/restdocs/restassured3/RestAssuredRestDocumentation.html#document-java.lang.String-org.springframework.restdocs.operation.preprocess.OperationRequestPreprocessor-org.springframework.restdocs.operation.preprocess.OperationResponsePreprocessor-org.springframework.restdocs.snippet.Snippet...- Once I made that change everything worked as expected. Cheers!
Groater
1

голосов
1

ответ
533

Просмотры

Будьте уверены: вопрос кодировок - Передача действительного CONTENTTYPE использования будьте уверены, не признаются и дает ошибку как Content Type не является действительным

Отдых гарантированной версии: 3.0.5 Как пользователь мы прошли CONTENTTYPE в XML в формате ниже с действительным содержанием. CONTENTTYPE (ContentType.XML) ИЛИ .contentType ( «приложение / XML») В приложении разрешенного типа содержимого был: «приложение / XML» Поставляется типом содержимого был отражен, как показано ниже. Content-Type = применение / XML; кодировка = ISO-8859-1 В связи с этим он дает ошибку «Content Type не является действительным» Как справиться с этим случаем использования.
Diptman
1

голосов
1

ответ
26

Просмотры

RestAssure: Как сделать абстрактный слой для типа конечной точки вызова

Это мой restAssure вызов для GET оконечных:. Открытый статический ответ getCall (интермедиат expectedStatusCode) {вернуть данный () .port (PORT) .contentType (ContentType.JSON) .when () .log () все () .get (getEndpoint ..) .then () .log () все () .assertThat () .statusCode (expectedStatusCode) .extract () ответ (); } Ниже вызов для конечных точек POST: открытый статический ответ postEndpoint (Request запрос, внутр expectedStatusCode) {возвращение данного () .port (PORT) .contentType (ContentType.JSON) .Body (запрос) .when () .log ( ..) .all () .post (postEndpointURI) .then () .log () все () .assertThat () .statusCode (expectedStatusCode) .extract () ответ (); } AS ее видимый код избыточен единственным отличием является тип вызова, POST и GET. Как я могу сделать код аннотацию и просто звонки разные?
worrynerd
1

голосов
1

ответ
259

Просмотры

Не в состоянии пройти через проверку подлинности с использованием WebSeal остальные гарантированного

работая над заданием автоматизации и я пытаюсь проверить веб-сервис, размещенный на сервере WebSEAL. проблема заключается я довольно мой попробовал каждый метод в остальном уверен, чтобы добраться до JSON ответа, но то, что я получаю это окно аутентификации HTML. вот некоторые из моего неработающего кода. то, что я ожидал, что ему JSON, но независимо от того, какой метод аутентификации я бегу я получаю только страницу аутентификации в WebSeal в. частная Строка serviceTestGET (WebServiceTest serviceTest) {System.out.println ( "Credential:" + имя_пользователь + "-" + пароль); // Будьте уверены. // RestAssured.authentication = основной (имя пользователя, пароль); // RestAssured.authentication = дайджест (идентификатор пользователя, пароль); // RestAssured.authentication = OAuth (consumerKey, consumerSecret, // маркер доступа, secretToken); // форма (имя пользователя, пароль); // RestAssured.authentication = форма (идентификатор пользователя, пароль, конфигурации); RestAssured.useRelaxedHTTPSValidation (); вернуться с учетом () получим (serviceTest.getEntryPoint ()) AsString ()..; }
Sunder
1

голосов
1

ответ
51

Просмотры

RestAssured: Как сделать POST остальные уверить называют абстрактным для различных типов объектов запроса

В настоящее время это то, что мой пост вызов: частный статический ответ postRequest (String конечная точка, запрос ABC, Int expectedStatusCode) {вернуться extractResponse (buildRequest () тело (запрос) .post (конечной точки), expectedStatusCode.); } Теперь я добавляю еще один пост конечной точки вызова, но тип объекта запроса отличается. Что-то вроде этого: частная статического ответа postRequest (String конечной точка, запрос XYZ, внутр expectedStatusCode) {вернуться extractResponse (buildRequest () тело (запрос) .post (конечная точка), expectedStatusCode.); } Как я могу перегрузить только тип запроса без избыточного кода? Благодарю.
worrynerd
1

голосов
1

ответ
254

Просмотры

Testing org.apache.http.entity.ContentType when the HTTP response content type doesn't contain a space

Я пишу тест для сервера авторизации, который проверяет, что тип содержимого в ответ OAuth является JSON. Сервер авторизации использует пружинную безопасность oauth2 2.0.1.4.RELEASE и мой JUnit тест использует остальные гарантированный 2.9.0. @Test общественного недействительными testTokenEndpoint () бросает исключение {// учетные данные клиента Grant ResponseBody clientCredentialsGrantResponseBody = учитывая (this.spec) .authentication (). Основной (VALID_CLIENT_ID, VALID_CLIENT_SECRET) .queryParameter ( "grant_type", CLIENT_CREDENTIALS_GRANT) .queryParameter ( "имя пользователя" , valid_username) .queryParameter ( "пароль", VALID_PASSWORD) .queryParameter ( "сфера", VALID_SCOPES) .when () .post (OAUTH_TOKEN_ENDPOINT). ... Затем () .assertThat () CONTENTTYPE (это (ContentType.APPLICATION_JSON.toString ())) .extract () ответ () тела (); } Когда я запускаю этот тест я поздоровался с этой неудачей java.lang.AssertionError: 1 ожидание не удалось. Ожидаемое содержание-тип «приложение / JSON, кодировка = UTF-8» не соответствует действительному типу содержимого «приложение / JSON, кодировка = UTF-8». Таким образом, значение org.apache.http.entity.ContentType содержит пробел между типом и кодировкой, но тип содержимого ответа сервера авторизации не. Теперь я мог обойти это делать .assertThat (). CONTENTTYPE (есть (ContentType.APPLICATION_JSON.toString (). Заменить (»», „“))) Но я чувствую, что должен быть лучший способ. Есть ли тип содержимого перечисление я могу использовать, что Безразлично» т есть пространство? Может ли сервер авторизации быть сконфигурирован, чтобы включать в себя пространство типа контента?
zero01alpha
1

голосов
2

ответ
355

Просмотры

Не в состоянии извлечь объект JSON из restassured Response (в формате JSON)

Я получаю ответ от сервера в формате JSON, ударив запрос после использования restAssured с помощью Java. Ответ отклика = requestSpecification.body (текст) .post (конечная точка); Теперь я хочу, чтобы принести суб объекта JSON с именем «халява». Как я могу выполнить эту операцию, потому что, когда я сочинительство: JSONObject responseJSONObject = новый JSONObject (ответ); //jsonObject.getJSONObject("freebies").getString("id "); Список JSONArray = jsonObject.getJSONArray ( "халява"); Строка халявы = list.getJSONObject (0) .getString ( "ID"); для (INT I = 0; я <freebies.length (); я ++) {Строка идентификатор = list.getJSONObject (я) .getString ( "ID"); System.out.println (id.toString ()); Имя String = list.getJSONObject (я) .getString ( "имя"); System.out.println (name.toString ()); Строка packName = list.getJSONObject (я) .getString ( "packName"); System.out.println (packName.toString ()); Строка Квота = list.getJSONObject (я) .getString ( "квоты"); System.out.println (quota.toString ()); Я получаю StackOverflow ERR. Пожалуйста помоги.
rajan
1

голосов
1

ответ
659

Просмотры

Вызванный: java.lang.NoClassDefFoundError: Не удалось инициализировать класс com.jayway.restassured.RestAssured

Я пытаюсь установить последнюю версию весной облако контракта. Но это всегда бросает исключение, не удалось инициализировать. Мой Gradle выглядит следующим образом. Я могу видеть во внешних библиотеках, 2.9.0 видна. зависимости {путь к классам "org.springframework.boot: весна-загрузка Gradle-плагин: 2.0.0.M7" Путь к классам "org.springframework.cloud:spring-cloud-contract-gradle-plugin:1.2.2.RELEASE" пути к классам " com.jayway.restassured: отдых, уверены: 2.9.0" Путь к классам "com.jayway.restassured: весна-макет: 2.9.0 MVC"} dependencyManagement {импорт {mavenBom «org.springframework.cloud:spring-cloud-dependencies : Edgware.RELEASE "}} testCompile ( "com.jayway.restassured: отдых гарантированного: 2.9.0") {сила = истина} testCompile (" com.jayway.restassured: весна-макет MVC: 2.
vkrams
1

голосов
1

ответ
3.3k

Просмотры

How to validate a list of values from the response using RestAssured

Может кто-то пожалуйста, мне понять, как проверить список элементов из ответа. Скажем, ответ выглядит, как показано ниже, { «магазин»: { «книга»: [{ «автор»: «Найджел Рис», «категория»: «ссылка», «цена»: 8,95, «название»: "Высказывание век»}, {„автор: „„категория Ивлин Во“““:„фикция“,„цена“: 12,99,„название“:„Меч чести“}, {„автор“:„Герман Мелвилл“, "категория": "фикция", "ISBN": "0-553-21311-3", " { «Автор»: «Толкиен», «категория»: «фикция», «ISBN»: «0-395-19395-8», «цена»: 22,99, «Название»: «Властелин колец»} ]}} элемент Книга состоит из четырех списков под ним с разными данными, теперь, если я хочу, чтобы проверить имя автора и цены последовательно (в цикле, например), как я могу достичь этого? .. Я обычно преобразовывать ответ в документ Json, а затем проверить, но в этом случае, если я использую путь JSon «Store.book.author», из четырех списков из ответа, перечень которых будет отнести его к ..? Вот где моя путаница. { «Автор»: «Толкиен», «категория»: «фикция», «ISBN»: «0-395-19395-8», «цена»: 22,99, «Название»: «Властелин колец»} ]}} элемент Книга состоит из четырех списков под ним с разными данными, теперь, если я хочу, чтобы проверить имя автора и цены последовательно (в цикле, например), как я могу достичь этого? .. Я обычно преобразовывать ответ в документ Json, а затем проверить, но в этом случае, если я использую путь JSon «Store.book.author», из четырех списков из ответа, перечень которых будет отнести его к ..? Вот где моя путаница. «ISBN»: «0-395-19395-8», «цена»: 22,99, «Название»: «Властелин колец»}]}} Элемент Книга состоит из четырех списков под ним с разными данными, теперь, если я хотите проверить имя автора и цены последовательно (в цикле, например), как я могу достичь этого? .. Я обычно преобразовывать ответ в документ Json, а затем проверить, но в этом случае, если я использую путь JSon «Store.book.author», из четырех списков из ответа, перечень которых будет отнести его к ..? Вот где моя путаница. «ISBN»: «0-395-19395-8», «цена»: 22,99, «Название»: «Властелин колец»}]}} Элемент Книга состоит из четырех списков под ним с разными данными, теперь, если я хотите проверить имя автора и цены последовательно (в цикле, например), как я могу достичь этого? .. Я обычно преобразовывать ответ в документ Json, а затем проверить, но в этом случае, если я использую путь JSon «Store.book.author», из четырех списков из ответа, перечень которых будет отнести его к ..? Вот где моя путаница. Теперь, если я хочу, чтобы проверить имя автора и цены последовательно (в цикле, например), как я могу добиться того, что ..? Я обычно преобразовывать ответ в документ Json, а затем проверить, но в этом случае, если я использую путь JSon «Store.book.author», из четырех списков из ответа, перечень которых будет отнести его к ..? Вот где моя путаница. Теперь, если я хочу, чтобы проверить имя автора и цены последовательно (в цикле, например), как я могу добиться того, что ..? Я обычно преобразовывать ответ в документ Json, а затем проверить, но в этом случае, если я использую путь JSon «Store.book.author», из четырех списков из ответа, перечень которых будет отнести его к ..? Вот где моя путаница.
Qaddaffi

Просмотр дополнительных вопросов