Javascript 如何在Cypress中将用户名和密码从fixture文件调用到测试场景中

Javascript 如何在Cypress中将用户名和密码从fixture文件调用到测试场景中,javascript,testing,cypress,Javascript,Testing,Cypress,我的登录测试场景正在运行。我已将用户名和密码删除到fixture文件中,然后我想调用该文件以填充用户名和密码字段。有人能告诉我应该怎么做吗?下面是我调用fixture来填充字段的测试场景 description('My Login Test',函数(){ it('访问风险应用程序登录页',功能(){ cy.visit(‘站点url’) cy.get('button')。单击() cy.get('a.auth0-lock-alternative-link')。包含('不是您的帐户?')。单击()

我的登录测试场景正在运行。我已将用户名和密码删除到fixture文件中,然后我想调用该文件以填充用户名和密码字段。有人能告诉我应该怎么做吗?下面是我调用fixture来填充字段的测试场景

description('My Login Test',函数(){
it('访问风险应用程序登录页',功能(){
cy.visit(‘站点url’)
cy.get('button')。单击()
cy.get('a.auth0-lock-alternative-link')。包含('不是您的帐户?')。单击()
cy.get('input.auth0 lock input').first()
.type(cy.fixture('loginUser')。电子邮件)
cy.get('input.auth0 lock input').last()
.type(cy.fixture('loginUser')。密码)
cy.get('button')。单击()
cy.url().should('eq','site url'))
})

})
我建议使用夹具别名

见:

首先,为设备创建一个局部变量:

cy.fixture('logiuser')。作为('myUser')

然后,当您想要访问它的属性时,它只是
this.myUser.email
或其他什么。这会将您的测试更改为:

.type(this.myUser.email)


希望这能帮你解决问题?但是,正如demouser123所提到的,我们需要实际的错误来帮助您。

gitter聊天室里有人给了我答案:

describe('My Login Test', function (){
it('Visit Risk App Landing Page', function (){
    cy.visit('https://bvt-riskassessment.lmkcloud.net')
    cy.get('button').click()
    cy.get('a.auth0-lock-alternative-link').contains('Not your account?').click()
    cy.fixture('loginUser').as('myUserFixture');
    cy.get('@myUserFixture').then(user => {
    cy.get('input.auth0-lock-input').first().type(user.email);
    cy.get('input.auth0-lock-input').last().type(user.password);
    cy.get('button').click()
    cy.url().should('eq','https://bvt-riskassessment.lmkcloud.net/workflow')

现在,我可以使用此方法登录,而无需在每个测试场景中使用用户名或密码。

您遇到的错误是什么?当我尝试不同的方法时,我会遇到不同的错误,当我尝试Stevens方法时:cy.get('input.auth0 lock input')。last()cy.fixture('logiuser')。as('myUser')。键入(this.myUser.email)测试没有运行,我收到一条消息“TypeError:无法读取未定义的属性‘email’”“您正在使用“胖箭头”吗?”?Alias'需要标准函数。(前几天我自己也遇到了这个)看: