Как я могу сохранить тело или свойство ответа API в переменной среды или json, чтобы использовать его позже в других запросах в Cypress

API работает локально (и в будущем в контейнере CircleCI), поэтому мне не нужно заглушать ответы, только настоящие запросы и настоящие ответы.

Когда я отправляю запрос POST, он создает событие и возвращает большое тело ответа, содержащее уникальный идентификатор. Мне нужно где-то сохранить этот уникальный идентификатор (как переменная env, json или в худшем случае константа), чтобы я мог получить доступ и использовать его в запросе UPDATE позже и, наконец, в запросе DELETE, чтобы удалить это событие из системы.

Есть ли способ сделать это?

Есть способ получить этот идентификатор из БД, но я действительно не хочу делать это таким образом.

Это про встроенный в браузер JavaScript? Для этого вы можете использовать cookie или localStorage. Пожалуйста, уточните свой вопрос.

user5734311 21.12.2020 12:09

Эй Крис, извините за неясный вопрос. Это вопрос о Cypress, он использует JS, но я просто удалил этот тег, чтобы устранить путаницу, кто не использовал Cypress. Спасибо

Arm91 21.12.2020 12:21
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание API-ресурса Laravel может быть непростой задачей. Она требует глубокого понимания возможностей Laravel и лучших практик, чтобы обеспечить...
Как создать простое погодное приложение на Python с API OpenWeatherMap
Как создать простое погодное приложение на Python с API OpenWeatherMap
Этот учебник проведет вас через процесс создания простого погодного приложения с помощью Python и OpenWeatherMap API.
Пакеты Java
Пакеты Java
Пакет java - это группа классов, интерфейсов и подпакетов схожего типа. Думайте об этом как о папке в каталоге файлов. Мы используем пакеты, чтобы...
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
В этом руководстве вы узнаете, как использовать API парсинга квитанций за 5 минут с помощью JavaScript. Eden AI предоставляет простой и удобный для...
0
2
1 259
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете сохранить уникальный идентификатор в файле прибора, а затем обновить его или прочитать из него:

cy.request({
    method: 'POST',
    url: '/someurl',
}).then((resp) => {

    // Expect success response
    expect(resp.status).to.eq(200)
  
    //Write Unique ID to a fixture file
    cy.writeFile('cypress/fixtures/testdata.json', {
        "id": resp.uniqueID
    })
})

Если вы хотите обновить значение уникального идентификатора, вы можете сделать что-то вроде этого:

cy.readFile("cypress/fixtures/testdata.json", (err, data) => {
    if (err) {
        return console.error(err);
    };
}).then((data) => {
    data.id = newUniqueID //save the New Value of Unique ID
    cy.writeFile("cypress/fixtures/testdata.json", JSON.stringify(data)) //Write it to the fixtures file
})

Вау, это решение золото, большое спасибо. Я думал, что единственным решением будет использование обещаний (это ад), но это все меняет. Спасибо

Arm91 21.12.2020 12:43

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