Попытка использовать внешнюю ссылку в Postman с tv4

Я пытаюсь использовать внешнюю ссылку в Postman и проверяю это с помощью tv4. Это мой код:

  var schema = tv4.getSchema('https://schema.getpostman.com/json/collection/v1/');
  console.log(tv4.validate(responseBody, schema);

и после тестирования я получаю

'TypeError Не удается прочитать свойство '$ref' неопределенного'

.

Означает ли это, что моя схема как-то недействительна?


person John    schedule 18.11.2016    source источник
comment
Я получаю ту же ошибку. Я знаю, что могу получить эту схему через HTTP-запрос Get. Кроме того, когда я помещаю его в валидатор JSON.Schema, это говорит, что все в порядке. Так что не уверен, как это терпит неудачу.   -  person Louis Duran    schedule 17.06.2017


Ответы (1)


Я знаю, что уже поздно, но это может помочь другим

tv4.getSchema(name) используется для извлечения уже загруженной схемы. tv4.addSchema(name, schema) используется для добавления новой схемы name со значением schema

Итак, что нужно сделать?

Читаю эту статью Я понял, что вы не можете сделать два запроса в тесте, используя Postman. Вместо этого вы должны хранить его значение в среде или глобальной переменной и не использовать функции tv4, поскольку они (я думаю) предназначены для использования в средах, где вы действительно можете загрузить схему с помощью модуля http.

Наконец, ваш пример должен выглядеть так

var schema = JSON.parse(postman.getEnvironmentVariable('myEnvVarName'));
let valid = tv4.validate(pm.response.json(), schema, false, true);
person Alwin Kesler    schedule 06.09.2017