首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用Cypress从GET请求中检索数据,出现未定义错误

使用Cypress从GET请求中检索数据,出现未定义错误
EN

Stack Overflow用户
提问于 2021-08-05 09:34:03
回答 1查看 412关注 0票数 0

我正在为一个医疗项目使用Cypress开发一个自动化的API测试框架。我遇到的问题是我不能从响应体中检索信息。我用另一个响应做了同样的事情,但是由于某些原因,当我发出这个请求时,这个查询不能工作。

这是Json顶部的样子:

代码语言:javascript
代码运行次数:0
运行
复制
 "request": {
  "body": {
   "_embedded": {
    "optometryDrugList": [
     {
      "id": 2887,
     },
     {
      "id": 2888,
     }

我已经发布了一个包含5种不同药物的请求,所以应该有5个optometryDrugListId。当我使用下面的请求链获取并放置其中一种药物时,我得到了一个"Cannot read property 'optometryDrugList‘of undefined“错误。

代码语言:javascript
代码运行次数:0
运行
复制
Cypress.Commands.add('putOptometryDrugExam', (optometryId, drugName, time, requestStatus) => {
  cy.request({
    method: 'GET',
    url: '/' + `optometry-drug?optometryId=${optometryId}`,
    headers: {
      'Content-Type': 'application/vnd.api+json',
      'accept': 'application/json',
      'Authorization': token,
      'apiKey': 'test'
    }
  })
    .then((request) => {
      const requestBody = request.body
      const optometryDrugId = requestBody._embedded.optometryDrugList[4].id
      return optometryDrugId
    })
    .then((optometryDrugId) => {
      cy.request({
        method: 'PUT',
        url: '/' + `optometry-drug/${optometryDrugId}`,

所以我现在的问题是:我做错了什么/没有看到什么,这样我就可以获得特定的药物ID并在下一个PUT请求中使用它?任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2021-08-05 15:05:18

该错误似乎表明它无法访问optometryDrugList数组。

尝试使用方括号属性访问器而不是点属性访问器。

另外,您是否可以尝试将第二个PUT请求放在一个.then上,而不是放在单独的一个上?

代码语言:javascript
代码运行次数:0
运行
复制
Cypress.Commands.add('putOptometryDrugExam', (optometryId, drugName, time, requestStatus) => {
  cy.request({
    method: 'GET',
    url: '/' + `optometry-drug?optometryId=${optometryId}`,
    headers: {
      'Content-Type': 'application/vnd.api+json',
      'accept': 'application/json',
      'Authorization': token,
      'apiKey': 'test'
    }
  })
    .then((response) => {
      const optometryDrugList = request.body._embedded['optometryDrugList'];
      const optometryDrugId = optometryDrugList[4].id;
      
      cy.request({
        method: 'PUT',
        url: '/' + `optometry-drug/${optometryDrugId}`,
        ...
      });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68664094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档