在多个“it”语句中使用变量来跟踪 Cypress 中的变化

2023-12-20

我正在使用赛普拉斯(https://www.cypress.io/ https://www.cypress.io/)来测试一个应用程序,该应用程序可以跟踪用户限制内完成的 API 调用量。该测试在 API 调用之前检查限制,并在调用之后再次检查。测试的目的是查看调用后限制是否发生变化。

该限制呈现在屏幕上。我尝试将值存储在变量中。完成 API 调用后,我想比较之前和之后的值。

已经尝试使用 const 和 let 将其存储在变量中,但两者都无法在“it”语句之外工作。

it('should get the limit value before doing an api call', ()=> {
            cy.get('.bar__legend')
                .contains('used')
                .then(($usage) => {
                    let usageTxt = $usage.text()
                    let words = usageTxt.split(' ')
                    let usageBefore = words[0]
                })
        });


it('should do an API call twice', () => {
            // do a API call twice
}

it('should get the limit value after doing an api call', ()=> {
            cy.get('.bar__legend')
                .contains('used')
                .then(($usage) => {
                    let usageTxt = $usage.text()
                    let words = usageTxt.split(' ')
                    let usageAfter = words[0]

                    cy.log(usageBefore)
                    cy.log(usageAfter)
                })
        });

我尝试过的另一种方法

it('should increase the limit after an api call', ()=> {
            cy.get('.bar__legend')
                .contains('used')
                .then(($usage) => {
                    let usageTxt = $usage.text()
                    let words = usageTxt.split(' ')
                    let usageBefore = words[0]
                })

            cy.visit('apilink')
            cy.wait(2000)

            cy.visit('apilink')
            cy.wait(2000)

            cy.get('.bar__legend')
                .contains('used')
                .then(($usage) => {
                    let usageTxt = $usage.text()
                    let words = usageTxt.split(' ')
                    let usageAfter = words[0]

                    cy.log(usageBefore)
                    cy.log(usageAfter)
                })
        })

我期望两个变量都有一个值,但测试失败,因为“usageBefore”变量不存在。


我相信诀窍是在外部定义变量it()的。因此语法将如下所示:

var usageBefore
var usageAfter

describe('description of the test', () =>{
  it('This uses the variable', () =>{
    cy.get('.bar__legend')
      .contains('used')
      .then(($usage) => {
        let usageTxt = $usage.text()
        let words = usageTxt.split(' ')
        usageBefore = words[0]
      })
  })
  it('should get the limit value after doing an api call', ()=> {
    cy.get('.bar__legend')
      .contains('used')
      .then(($usage) => {
        let usageTxt = $usage.text()
        let words = usageTxt.split(' ')
        usageAfter = words[0]

        cy.log(usageBefore)
        cy.log(usageAfter)
      })
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在多个“it”语句中使用变量来跟踪 Cypress 中的变化 的相关文章

随机推荐

  • 绑定适配器实时数据值始终为空

    由于某种原因 两个绑定适配器的第二个参数值总是返回 null 我无法弄清楚为什么 我正在选择一个plantIndividual从概述片段中的 RecyclerView 并使用它导航到详细信息页面 单个片段 两个 Fragment 共享一个
  • 如何动态创建 PWA manifest.json?

    我在 manifest json 中使用静态变量创建了一个功能 例如 name short name start url 它对于 添加到主屏幕 运行良好 当我动态设置manifest json变量时 添加到屏幕不起作用 基本上我有一个电子商
  • 读取位置 0x0000000c 访问冲突

    在我的应用程序中 我使用 LowLevelKeyboardProc 禁用 开始 菜单 但是当我连续按 tab 键时出现以下错误 错误 0x00352d58 处未处理的异常 Timer soosai exe 0xC0000005 访问 违规读
  • 创建之前执行的函数[重复]

    这个问题在这里已经有答案了 我不是 JavaScript 专家 但我发现了一些这样的代码 a function a alert a 我很惊讶地发现它可以工作 我认为类似的东西在 Python 中是行不通的 我期望该功能a创建之前不能执行 解
  • 语法突出显示不适用于 IVsInvisibleEditor

    我创建了 IVsInvisibleEditor 的实例 我使用以下代码来实现此目的 public IWpfTextViewHost CreateEditor string targetFile var componentModel ICom
  • 如何使用 JAVA 高级 REST 客户端发出 Elasticsearch 的 Point InTime API 请求

    如果有人可以向我指出一种使用 REST 高级客户端从 JAVA 或 JAVA 中的任何其他方式执行 Elasticsearch 7 10 1 中新引入的 Point In Time API 请求的方法 那将会很有帮助 传输客户端除外 因为它
  • 创建圆角矩形纹理2D

    我正在构建一个带有对话框的游戏 我希望能够以与最终幻想系列非常相似的风格以程序方式生成盒子的纹理 想像最终幻想VII http i79 photobucket com albums j148 Xngears Final 20Fantasy
  • 通过chrome浏览器扩展调用C dll

    我想通过访问智能卡winscard dll通过 Chrome 扩展 我是 Chrome 扩展开发的新手 但是据我所知 解压模式下的 chrome 扩展是一个由一些 html 页面 背景 普通 可选 覆盖 tabs create window
  • 使用 HTML5 fetch API 允许 Access-Control-Allow-Origin 标头

    我正在使用 HTML5 获取 API var request new Request https davidwalsh name demo arsenal json fetch request then function response
  • 单击 div 时在两个 div 之间翻转

    我想要与示例中相同的翻转 http jsfiddle net lakario VPjX9 http jsfiddle net lakario VPjX9 我想要的唯一不同是两个 div 之间的翻转 page1 page2 将在我单击 the
  • 在python中使用pyodbc获取MSSQL表列名

    我正在尝试使用 pyodbc 获取 mssql 表列名称 并收到错误消息 ProgrammingError No results Previous SQL was not a query 这是我的代码 class get Fields de
  • 我使用哪种 JSON 内容类型?

    有很多 标准 JSON http en wikipedia org wiki JSON内容类型 application json application x javascript text javascript text x javascr
  • 如何在D3条形图中添加分隔符

    我的应用程序中有一个使用 D3 绘制的条形图 下面添加了示例代码 在我的图表中 它显示了 12 个月时间段内的月份 因此 根据具体情况 12 月并不总是出现在 x 轴的拐角处 因此 为了显示年份的分隔 我想在图表中显示一个分隔符来分隔两年
  • 构建 FragmentStatePagerAdapter、ViewModel 和 Fragment 列表

    简介 以下问题 根据我的应用程序需求 我需要创建 TabLayout 和 ViewPager 扩展FragmentStatePAgerAdapter Viewpager 由一系列单类型片段组成 我们将其称为 ListFragment Eac
  • 如何将用户的输入添加到Python列表中[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 print This is your Shopping List firstItem input Enter 1st item print
  • Oracle:利用两个索引的优势

    正如您所看到的 Oracle 可以利用两个索引并解决整个查询 而无需通过 rowid 访问表 SELECT Scarti letture GAS tipo campo47 pdf COUNT 1 n FROM out CONSUMI GEE
  • 现有蓝牙设备和Apple MFI

    我正在开发一个需要连接到蓝牙设备的应用程序 我不想在应用程序商店中部署此应用程序 我只需要这个供个人使用 有什么办法可以连接到这个蓝牙设备 它太旧了而且绝对没有经过 MFI 认证 在 MFI 计划的常见问题解答中 http mfi appl
  • 根据 WooCommerce 购物车商品库存显示预计交货日期范围

    我正在尝试根据购物车中产品的库存状态输出购物车中的预计交货日期 我取得了一点成功 但现在我陷入了困境 这是我到目前为止所写的 它位于 function php 文件中 function lieferzeit global woocommer
  • Swift:RSA 使用特定私钥加密字符串

    我需要在 Swift 中编写一个方法 该方法使用特定的私钥来使用 RSA 加密时间戳 这不用于身份验证 而是验证服务器的客户端应用程序 我知道您通常会使用公钥进行加密以确保安全 我有一把钥匙 开始 RSA 私钥 MIICXAIBAAKBgQ
  • 在多个“it”语句中使用变量来跟踪 Cypress 中的变化

    我正在使用赛普拉斯 https www cypress io https www cypress io 来测试一个应用程序 该应用程序可以跟踪用户限制内完成的 API 调用量 该测试在 API 调用之前检查限制 并在调用之后再次检查 测试的