Перейти к содержимому

Школа для начинающих тестировщиков
онлайн, начало 20 июня
Chrome DevTools: Инструменты тестировщика
онлайн, начало 20 июня
SQL для тестировщиков
онлайн, начало 24 июня
Git: инструменты тестировщика
онлайн, начало 20 июня
Фотография

JSONPath для TestComplete?

JSON JSONPath

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 Сергей

Сергей

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 017 сообщений
  • Город:Москва

Отправлено 03 Июнь 2016 - 09:11

Добрый день.

 

Интересует возможность поиска элементов в JSON-ответе в среде TestComplete/JScript. Не нашел ничего подобного.

 

Спасибо.


  • 0

"Если ты хороший плотник и делаешь красивую тумбочку, ты не будешь прибивать сзади фанеру, даже несмотря на то, что задняя часть повернута к стене, и никто ее не видит. Ты будешь хорошо спать ночью, только если тебе удалось воплотить в своем произведении эстетическую красоту и качество." © Стив Джобс


#2 Genka

Genka

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 319 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 03 Июнь 2016 - 09:16

 Не нашел ничего подобного.

 

 

Похоже и не искал, потому что первая же ссылка в гугле даёт ответ :)

https://mindcemetery...n-testcomplete/


  • 0

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#3 modbear

modbear

    Специалист

  • Members
  • PipPipPipPipPip
  • 548 сообщений

Отправлено 03 Июнь 2016 - 11:01

Интересует возможность поиска элементов в JSON-ответе в среде TestComplete/JScript. Не нашел ничего подобного.

 
Вам нужен именно JSONPath, чтобы делать к JSON-объекту запросы типа $..book[?(@.price<10)]? Или надо просто распарсить JSON, чтобы обращаться к полям по имени, типа obj.store.books[1].author?


  • 0

#4 Сергей

Сергей

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 017 сообщений
  • Город:Москва

Отправлено 03 Июнь 2016 - 13:01

Все верно, JSONPath,  типа $..book[?(@.price<10)], было бы отлично, может можно ч-н подключить извне.

 

Вообще задача стоит сделать универсальную функцию, которая выдергивает из json-ответа (структура может быть разная) только те значения, которые мне нужны (пути задаю заранее). Идея перебором сделать, но не совсем она мне нравится. Но лучше не придумал ли не нашел.


  • 0

"Если ты хороший плотник и делаешь красивую тумбочку, ты не будешь прибивать сзади фанеру, даже несмотря на то, что задняя часть повернута к стене, и никто ее не видит. Ты будешь хорошо спать ночью, только если тебе удалось воплотить в своем произведении эстетическую красоту и качество." © Стив Джобс


#5 modbear

modbear

    Специалист

  • Members
  • PipPipPipPipPip
  • 548 сообщений

Отправлено 03 Июнь 2016 - 17:08

Здесь, наверное, зависит от языка. Для Python есть jsonpath-rw. Для JavaScript есть https://github.com/s3u/JSONPath, но у меня не получилось подружить jsonpath.js с TestComplete (через USEUNIT); видимо, какие-то фишки JavaScript'а не работают в JScript.

Как вариант можно попробовать JSON.NET через CLR Bridge. Пример:
// JScript
function Test()
{
  var str = '{"name": "MyCompany", "people": [ {"name": "John", "age": 30}, {"name": "Jane", "age": 26} ] }';

  // Конвертиреум строку в JSON.NET объект
  var obj = dotNET.Newtonsoft_Json_Linq.JObject.Parse(str);

  // Ищем все поля "name"
  var names = obj.SelectTokens("$..name");
  names.System_Collections_IEnumerable_GetEnumerator(); // Без этой строки работать не будет
  var item;
  while (names.MoveNext())
  {
    item = names.System_Collections_IEnumerator_get_Current();
    Log.Message(item.Value_2.OleValue);
  }
}
 
// Результат:
// MyCompany
// John
// Jane

  • 0

#6 Сергей

Сергей

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 017 сообщений
  • Город:Москва

Отправлено 06 Июнь 2016 - 07:48

Спасибо. Буду пробовать.


  • 0

"Если ты хороший плотник и делаешь красивую тумбочку, ты не будешь прибивать сзади фанеру, даже несмотря на то, что задняя часть повернута к стене, и никто ее не видит. Ты будешь хорошо спать ночью, только если тебе удалось воплотить в своем произведении эстетическую красоту и качество." © Стив Джобс



Организация автоматизированного тестирования
онлайн
Автоматизация функционального тестирования
онлайн
Selenium WebDriver: полное руководство
онлайн
Школа Тест-Аналитика
онлайн




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале