Связь 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 — нет.