gpt4 book ai didi

cypress - 如何在 Cypress 中使用多个变量?

转载 作者:行者123 更新时间:2023-12-05 08:04:47 26 4
gpt4 key购买 nike

tl;dr:cypress 变量是否可以存储在某个可访问的位置(如 this 或类似的东西),或者如果我想访问所有这些变量,我是否必须进入无休止的回调循环一次使用?

长话短说:

我试图用 cypress 测试覆盖的应用程序在许多不同的数据集上运行,因此为了在测试前准备测试数据,我通常会进行一些 API 调用,并且我想使用它们的结果:

示例:

测试应涵盖“删除任务”功能。作为测试数据,我想通过我们的 API 预先创建一个任务。为此,我需要进行以下调用:

  1. 调用“.../users/me”获取我的用户 ID(必需参数之一)
  2. 调用“.../users”获取特定数据集的所有用户列表(第一个 id 用于过滤另一个,然后用于 assigneeId,另一个必需的参数)
  3. 使用先前的 id 作为必需参数调用“.../tasks”

我目前有自定义命令来处理那些特定的 api 调用,同时返回结果。然后我调用这些命令并将它们的返回值保存为 cypress 变量。如果我想进行第三次 api 调用,我必须这样做:

    cy.getUserID().then((userId) => {
cy.wrap(userId).as('userId')
})
cy.getAllUsersForTenant().then((users) => {
cy.get('@userId').then((userId) => {
const result = users.find((escalationUserId) => escalationUserId !== userId)
cy.wrap(result.id).as('assigneeId')
})
})


cy.get('@assigneeId').then((assigneeId) => {
cy.get('@userId').then((userId) => {
// do the POST call with both assigneeId and userId available
})
})

现在这不是什么大问题,但我可以想象我需要 2 个以上的变量,我是否必须添加更多嵌套回调,或者有没有办法将这些变量存储在一个可访问的位置?

最佳答案

我通过查看其他票证找到了答案 - 如果我使用 function() 而不是箭头函数,则可以共享 this 上下文。

关于cypress - 如何在 Cypress 中使用多个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67505067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com