Связь Cypress с ElasticSearch ведет себя по-разному для «кипарис открыт» и «кипарис работает»

Версия эластичного поиска устарела 7.9, и Cypress пытается подключиться через файл плагинов с помощью клиента javascript. Перегруженная проблема заключается в том, что код для извлечения данных из требуемого индекса работает хорошо, а ведение журнала показывает извлеченные и напечатанные данные на консоли, когда тест выполняется с использованием cypress open. Но тот же тест не может получить данные и просто позволяет пройти тест без вывода каких-либо данных на консоль, когда тест выполняется с использованием cypressrun.

Код для получения данных:

const result = await client.search({ index: 'product-v2.0', body: {"query": query}, searchType: "query_then_fetch", trackScores: true, size: 2 })

Объект запроса выглядит следующим образом:

      {
 "bool": {
                "must_not": [
                    {
                        "bool": {
                            "filter": [
                                {
                                    "exists": {
                                        "field": "gp"
                                    }
                                }
                            ]
                        }
                    }
                ],
                "filter": [
                    {
                        "term": {
                            "webstatus": "1"
                        }
                    }
                ]
            }
        },
        "_source": [
            "stockcode"
        ]
    }

При использовании cypress open -- Ниже приведена часть уровня ведения журнала трассировки для запущенного запроса:

      -> POST https://elasticsearch.xxxxxxxxxx.net:443/product-v2.0/_search?search_type=query_then_fetch&track_scores=true&size=2
  {
    "query": {
      "bool": {
        "must_not": [
          {
            "bool": {
              "filter": [
                {
                  "exists": {
                    "field": "gp"
                  }
                }
              ]
            }
          }
        ],
        "filter": [
          {
            "term": {
              "webstatus": "1"
            }
          }
        ]
      }
    }
  }

Это ясно показало, что все параметры поиска, которые я использовал, являются частью самого запроса -

POST https://elasticsearch.xxxxxxxxxxxxxx.net:443/product-v2.0/_search?search_type=query_then_fetch&track_scores=true&size=2

Мое требование - мне нужно запускать его не как «кипарисовый открытый», а как процесс «кипарисовый запуск».

Когда я запускаю тот же код, что и cypressrun, и передаю файл спецификации для выполнения - он каким-то образом мешает создаваемому запросу и добавляет дополнительный «запрос» в тело запроса вместо того, чтобы помещать все параметры в запрос, как в случай, когда использовался «кипарис открытый». Ниже приведена часть уровня ведения журнала трассировки для запроса, запущенного через запуск кипариса:

      starting request {
    "method": "POST",
    "path": "/product-v2.0/_search",
    "body": {
      "query": {
        "bool": {
          "must_not": [
            {
              "bool": {
                "filter": [
                  {
                    "exists": {
                      "field": "gp"
                    }
                  }
                ]
              }
            }
          ],
          "filter": [
            {
              "term": {
                "webstatus": "1"
              }
            }
          ]
        }
      }
    },
    "query": {
      "search_type": "query_then_fetch",
      "track_scores": true,
      "size": 2
    }
  }

Это не извлекает никаких данных, а также не проваливает тест и мало что показывает в журнале, чтобы передать, что там произошло. Любая помощь в сортировке этого или есть ли еще место, где я должен поднять этот вопрос?

Я также пытался использовать клиент ES JS для версии 8, но в этом случае также наблюдается такое же наблюдение. Cypress open работает, а cypressrun — нет.

0 ответов

Другие вопросы по тегам