javascript 如何在其他.js文件Cypress中获取cy.wrap数据

zzlelutf  于 2023-04-19  发布在  Java
关注(0)|答案(1)|浏览(117)

我尝试将其放入command.js中,以创建一个在登录时生成token的通用函数。

const data = require('../fixtures/User_data.json')

Cypress.Commands.add('get_token', () => { 
    cy.api({
        method: "POST",
        url:    "https://api-stg.sample.com/login",
        body: 
        {
        "mobile_number": "+91" + data.mobile,
        "password": "p@ssw0rd"  
        }
      })
        .then((response) => {
          const token = response.body.data.access_token.token
          cy.log("Bearer token: " + token )
          cy.wrap(token).as('token')
      })
    })

然后在我的测试规范文件中

create_mobilenum () {
        cy.get_token()
        cy.api({
          method: "POST",
          url:    "https://api-stg.sample.com/mobile_numbers",
          headers: { 'Authorization': "Bearer " + ('@token')  },
          ...
          ...

但是在Cypress dashboard中,我无法登录,因为当我的spec文件运行时,它返回token is undefined

dxxyhpgq

dxxyhpgq1#

从我所读的变量和别名,这不是如何使用别名。
它们的行为不像变量,您需要提取值

cy.get('@token').then(token => {
  cy.api({
    ...
    headers: { 'Authorization': "Bearer " + token  },

相关问题