BH     TT     Postman     Body - JSON    

--   Ключ можно писать без кавычек
--   Комментариев в JSON нет. Костыли --> andreyex.ru     bolknote.ru    
--   В правой части JSON в кавычки брать только строковые значения. А например объект - в фигурные скобки

        //     1.   Ключ
        //     2.   Значение
        //     3.   Длина элемента
        //     4.   Сравнение в стиле JavaScript
        //     5.   String
        //     6.   Number
        //     7.   include

        //     1.   Ключ

.keys -- Проверить что есть такие ключи в парах JSONa

// Проверка что существуют все эти ключи
pm.expect(jsonData.companys).to.have.all.keys(0,1,2);
// Проверка что существует хоть какой-нибудь один из этих
pm.expect(jsonData.companys).to.have.any.keys('name', 'companys');

        //     2.   Значение

//   Для значения (из пары ключ-значение) проверить его тип (object, array, string, number)

pm.test("JIRA Method getIssue watches", function () {
        pm.expect(jsonData.fields.watches).to.be.an('object'); // object
});

        //     3.   Длина элемента

pm.expect(jsonData.results).to.be.an('array').that.length(0);   //   Длина массива
pm.expect(jsonData.companys).to.have.lengthOf(2);
pm.expect(jsonData.companys).to.have.lengthOf.above(11);   //   >
pm.expect(jsonData.companys).to.have.lengthOf.at.least(11);   //   >=
pm.expect(jsonData.companys).to.have.lengthOf.below(4);   //   <
pm.expect(jsonData.companys).to.have.lengthOf.at.most(4);   //   <=
pm.expect(jsonData.companys).to.have.lengthOf.within(1,4);   //   Включает обе границы

        //     4.   Сравнение в стиле JavaScript

pm.expect(jsonData.message === "Успех").to.be.ok;
pm.expect(jsonData.message === "Успех").to.be.true;

        //     5.   String

// Проверка что это в принципе строка
pm.expect(jsonData.type).to.be.a("String");
pm.expect(jsonData.type).to.be.an("String");

// Проверка что строка не null/empty/exist
pm.expect(jsonData.message).to.not.be.null;
pm.expect(jsonData.message).to.not.be.empty;
pm.expect(jsonData.message).to.not.be.exist;

// Проверка значения строки целиком
pm.expect(jsonData.type).to.equal("Какой то String");

// Проверка на вхождение (Проверка только части строки)
pm.expect(jsonData.type).to.include("гг");

// Длина строки (См. также раздел "Длина элемента")
pm.expect(jsonData.companys[0].name).to.have.lengthOf(33);

        //     6.   Number

// Проверка что какое то значение является числом
pm.expect(jsonData.tasks[0].id_task).to.be.a("number");
pm.expect(jsonData.tasks[0].id_task).to.be.an("number");

// Проверка на строгое соответствие числу
pm.expect(jsonData.tasks[0].id_task).to.equal(100);

// Проверка что число содержит в себе другое число
pm.expect(jsonData.tasks[0].id_task).to.include(99);

// Проверка что число является одним из набора других чисел
pm.expect(jsonData.tasks[0].id_task).to.be.oneOf([201,200,202]);

// Проверка на операторы сравнения > < >= <=
pm.expect(jsonData.tasks[0].id_task).to.be.below(210);

// Сравнения в стиле JavaScript
num = 5;
pm.expect(num===33).to.be.ok;
pm.expect(num===33).to.be.true;
pm.expect(num==="33").to.be.ok;   //   Сравнение числа и строки
pm.expect(num==="33").to.be.true;   //   Сравнение числа и строки

// Проверка что число существует
num = 5;
pm.expect(num).to.not.be.null;
pm.expect(num).to.not.be.undefined;
pm.expect(num).to.not.be.NaN;
pm.expect(num).to.exist;


        //     7.   include

pm.expect(jsonData).to.nested.include({'fields.issuelinks[0].outwardIssue.fields.summary': 'Новый баг'});