如何将fixture文件中的用户名和密码调用到赛普拉斯的测试场景中

时间:2018-05-02 10:02:45

标签: javascript testing cypress

我的登录测试场景正在运行。我已将我的用户名和密码删除到fixture文件,然后我想调用该文件以填充用户名和密码字段。有人能指出我应该如何做到这一点的正确方向?下面是我的测试场景,调用fixture来填充字段



describe('My Login Test', function (){
it('Visit Risk App Landing Page', function (){
cy.visit('site url')
cy.get('button').click()
cy.get('a.auth0-lock-alternative-link').contains('Not your account?').click()
cy.get('input.auth0-lock-input').first()
.type(cy.fixture('loginUser').email)
cy.get('input.auth0-lock-input').last()
.type(cy.fixture('loginUser').password)
cy.get('button').click()
cy.url().should('eq','site url')
})
})




2 个答案:

答案 0 :(得分:2)

我在一个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')

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

答案 1 :(得分:1)

我建议使用灯具别名。

请参阅:Accessing-Fixture-Data

首先,为灯具创建一个局部变量:

cy.fixture('loginUser').as('myUser');

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

.type(this.myUser.email)

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