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

Фотография

Automated Testing WIth Postman

postman API Testing

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

#1 DosikSosik

DosikSosik

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Рашидов Кабзол Ануарович

Отправлено 04 марта 2019 - 13:21

Всем Привет. Я новенький. 

Вообщем хорошие, отличные тестировщики! Нужна помощь автоматизация АПИ тестов. Я хочу написать авто тест для апи начало есть, но есть проблема, которую не могу решить. Проверка такая мне надо сверить данные на правильность. То есть чтоб в теле ответа поле CodeOgd отображается правильное значение.Теперь как написать код для авто тестов? Пробовал много методов, но ошибка пишет что не видит значение поле CodeOgd.

Вот мой responseBody: 

{

    "Data": {
        "IsHere": true,
        "Information": [
            {
                "NameTaxDepartament": "УГД по г. Актау",
                "Region": "Мангистауская область",
                "CodeOgd": "4306",
                "HeadFullNameKz": "Нусупов Кайрат Карымович",
                "HeadFullName": "Нусупов Кайрат Карымович",
                "TypeEconomicActivity": "52299 Прочая транспортно-экспедиционная деятельность",
                "IncludingMulct": 0,
                "LoadDate": "2019-03-04T18:54:48.5965552+06:00",
                "SourceDate": "2018-12-31T18:00:00Z"
            }
        ]
    }
}
Мне надо чтоб тест сам проверял поле CodeOgd на 4306, и что он правильный.  Спасибо! Буду очень рад

  • 0

#2 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 04 марта 2019 - 13:28

А код-то ваш где. который не находит CodeOgd?

С ненулевой вероятностью вы пытаетесь взять CodeOgd вместо Data.Information[0].CodeOgd
  • 0

#3 DosikSosik

DosikSosik

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Рашидов Кабзол Ануарович

Отправлено 05 марта 2019 - 03:13

А код-то ваш где. который не находит CodeOgd?

С ненулевой вероятностью вы пытаетесь взять CodeOgd вместо Data.Information[0].CodeOgd

Спасибо большое, так работает. А так до этого писал

pm.test("CodeOgdTest", function (){

    var jsonData = pm.response.json();
pm.expect(jsonData.Data.Information.CodeOgd).to.eql("4306");
});
 
Сейчас так: pm.test("CodeOgdTest", function (){
    var jsonData = pm.response.json();
pm.expect(jsonData.Data.Information[0].CodeOgd).to.eql("4306");
});
и оно работает

  • 0

#4 DosikSosik

DosikSosik

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Рашидов Кабзол Ануарович

Отправлено 05 марта 2019 - 12:19

А код-то ваш где. который не находит CodeOgd?

С ненулевой вероятностью вы пытаетесь взять CodeOgd вместо Data.Information[0].CodeOgd

Еще раз привет. Есть вопрос. помогите))

Вообщем ситуация вот мой тело ответа: 

{
    "Data": {
        "IsHere": true,
        "Information": [
            {
                "TaxPayerNumber": "010340000953",
                "LoadDate": "2019-03-05T18:03:17.7915083+06:00",
                "SourceDate": "2019-03-05T11:55:31.253Z",
                "LicenceNumber": "",
                "UniqueDocumentNumber": "KZ17000904466",
                "Nikad": "KZ24VHA00000381",
                "UniqueApplicationNumber": "",
                "ApplicationNikad": "KZ82RHA00000410",
                "Licensor": "РЕСПУБЛИКАНСКОЕ ГОСУДАРСТВЕННОЕ УЧРЕЖДЕНИЕ  «НАЦИОНАЛЬНЫЙ БАНК РЕСПУБЛИКИ КАЗАХСТАН»",
                "Licensee": "Акционерное общество \"Аграрная кредитная корпорация\"",
                "ActivityType": "Государственная регистрация выпуска негосударственных облигаций со сроком обращения не более двенадцати месяцев",
                "Status": "Действительный"
            },
            { ....... }
            { ....... }
            { ....... }
            { ....... }
            { ....... }
            { ....... }
            { ....... }
            { ....... }
            { ....... }
            { ....... }
            { ....... }
            { ....... }
            { ....... }
            { ....... }
            { ....... }      
        ]
    }
}
то что отметил жирным, как видите в массиве 17 объектов и данные отображены как на первом объекте. остальных сократил. Теперь вот не могу написать тест о том  что количество объектов в массиве 17 штук и они правильные. Типо тест считывает количество объектов в массиве( в данном случае 17шт), и в конце если количество 17шт то тест успешный, если вдруг 16 то он должен отобразится как ошибка. Буду очень благодарен. Так как недавно занимаюсь авто тестом. 

  • 0

#5 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 05 марта 2019 - 12:48

А вы не занимайтесь авто тестом.
Вы занимайтесь программированием, насколько я понимаю, на JS.
Сейчас вам интересны Arrays и Loops.
То есть в Data.Information вам приходит Array. Array - это типовая структура данных, во всех языках есть ее реализация в том или ином виде. Типовой функцией для массива является его размер (Len, Length, Size) И не менее типовой является обращение к произвольному элементу массива по индексу (порядковому номеру), обычно счет идет с 0 и индекс заключается в квадратные скобки. И массив в json, внезапно, тоже обрамляется в квадратные скобки.
А Loop - это такой хороший способ сделать что нибудь несколько, например MyArray.size(), раз.
Еще для перебора всех элементов некоторой группы хороши итераторы, но я не знаю как они реализованы и реализованы ли в JS.

ЗЫЖ и маскируйте информацию когда выкладываете примеры, у вас там все слишком похоже на реальные данные, которые как минимум могут быть конфиденциальны.
  • 0

#6 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 05 марта 2019 - 13:10

А код-то ваш где. который не находит CodeOgd?

С ненулевой вероятностью вы пытаетесь взять CodeOgd вместо Data.Information[0].CodeOgd

Спасибо большое, так работает. А так до этого писал
pm.test("CodeOgdTest", function (){
    var jsonData = pm.response.json();
pm.expect(jsonData.Data.Information.CodeOgd).to.eql("4306");
});
 
Сейчас так: pm.test("CodeOgdTest", function (){
    var jsonData = pm.response.json();
pm.expect(jsonData.Data.Information[0].CodeOgd).to.eql("4306");
});
и оно работает

Хоть поняли в чем разница?
  • 0

#7 DosikSosik

DosikSosik

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Рашидов Кабзол Ануарович

Отправлено 06 марта 2019 - 03:09

 

 

А код-то ваш где. который не находит CodeOgd?

С ненулевой вероятностью вы пытаетесь взять CodeOgd вместо Data.Information[0].CodeOgd

Спасибо большое, так работает. А так до этого писал
pm.test("CodeOgdTest", function (){
    var jsonData = pm.response.json();
pm.expect(jsonData.Data.Information.CodeOgd).to.eql("4306");
});
 
Сейчас так: pm.test("CodeOgdTest", function (){
    var jsonData = pm.response.json();
pm.expect(jsonData.Data.Information[0].CodeOgd).to.eql("4306");
});
и оно работает

 

Хоть поняли в чем разница?

 

даа, индекс массива до этого не писал 


  • 0



Темы с аналогичным тегами postman, API, Testing

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

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