t.me/atinfo_chat Telegram группа по автоматизации тестирования

Cypress API testing. Помогите с response

Теги: #<Tag:0x00007f7487d85088> #<Tag:0x00007f7487d84fc0> #<Tag:0x00007f7487d84ef8>

Помогите пожалуйста, учусь автоматизировать api тесты с помощью cypress.
Делая тесты через Postman получаю вот такой response

{
  "result": [
    {
      "PK": "CZ-autobagar",
      "ad_id": "autobagar_eu",
      "buyer_country": "COUNTRY_CZECH_REPUBLIC",
      "car_style": "CARSTYLE_OTHER",
      "make": "MAKE_CITROEN",
      "color": "COLOR_WHITE",
      "color_shade": null,
      "color_specification": null,
      "condition": null,
      "cubic_capacity": 1560,
      "currency": "CURRENCY_CZK",
      "days_on_stock": 49,
      "drive_type": "DRIVE_4X2",
      "feature_score": 0.83102,
      "features": [
        "FEATURE_SERVICE_BOOK"
      ],

И так далее… в результате 100 и более автомобилей с указанными выше параметрами.
Мне необходимо в cypress проверить что в результате действительно есть именно эта “make” и “buyer_country”

Подскажите пожалуйста как это сделать. В одной из попыток пробовал вот это

 }).then(response => {
            expect(response.status).equal(200)  //это работает
            expect(response.body).contains({"buyer_country": "COUNTRY_CZECH_REPUBLIC"}) //а это влечет к ошибке

но не увенчалось успехом

в гугле так пишут


}).then(response => {
            expect(response.status).equal(200)
            cy.get('@result')
                .its('body')
                .its('result')
                .its('COUNTRY_CZECH_REPUBLIC');
        });

если делать по аналогии с той ссылкой.

cy.get() could not find a registered alias for: @result . You have not aliased anything yet.

надо wrap ответа(response) сделать по идее

 }).then(response => {
            expect(response.status).equal(200)  
            expect(response.body).to.not.be.null 
            expect(response.body.result[0].buyer_country).equal('COUNTRY_CZECH_REPUBLIC')
            expect(response.body.result[0].currency).equal('CURRENCY_CZK')
1 Симпатия

Кстати, это не совсем правильное решение.
Я так понимаю, задача стоит проверить фильтры? Иными словами, необходимо убедиться, что все элементы выборки содержат исключительно данный параметр?
Данная проверка покажет, что 1-й элемент выборки содержит необходимый параметр, но вот кейс, когда 2-й элемент содержит другой параметр (то есть, фильтр не работает, как нужно) эта проверка не поймает.
В SoapUI для этого был Script assertion, можно было пройтись циклом по массиву результатов и заассертить каждый элемент. Я думаю, в Postman тоже есть что-то похожее, можно копнуть в эту сторону
UPD В cypress есть .each, пример использования есть тут


Я думаю, надо сделать что-то похожее.