如何创建一个函数来获取Auth0令牌

时间:2018-03-20 08:35:27

标签: javascript function automated-tests auth0 cypress

我正在尝试为用户创建一个从Auth0获取登录令牌的函数,因此我不必在每个测试场景之前使用登录测试(无论如何都不能正常工作),而是我想要拥有一个存储的令牌并使用它来验证用户,以便我可以测试该应用程序。 我不是开发人员(甚至是Test的开发人员)。我是一名QA,他正在努力学习足够的Javascript,以便使用赛普拉斯为我们的新内部风险评估应用程序创建测试场景。 我们有一个新应用程序的用户列表,这些用户都将通过Auth0进行验证。所有用户都是我们公司的内部用户,并且基于我们与Microsoft帐户相关联的电子邮件。

以下是我的登录测试,按下登录按钮,然后重定向到Auth0,然后输入我的电子邮件地址以验证登录。这是成功的,除了它实际上没有加载应用程序。

```
    describe('My Login Test', function (){
    it('Visit Risk App Landing Page', function (){
        const typedText = 'adam.allford@landmark.co.uk'
        cy.visit('https://bvt-riskassessment.lmkcloud.net')
        cy.get('button').click()
        cy.get('input.auth0-lock-input').first()
        .type(typedText)
        .should('have.value', typedText)
        cy.get('button').click()
        cy.url().should('eq','http://bvt-riskassessment.lmkcloud.net/workflow')
         })
    })
```

我在Gitter论坛上收到了一个有类似问题的人的回复,并使用下面显示的(或类似的)尝试登录。我用相关的详细信息对其进行了编辑,并将其放在command.js中,并在显示的loacation中使用loginuser.json(包含用户名和密码),然后在测试场景中包含beforeEach。

```

    Cypress.Commands.add('login', (userType, options = {}) => 
    {cy.readFile(`cypress/fixtures/loginUser.json`).then((json) => {
    const { email, password } = json
       const dataToSend = {
           email,
           password,
       }
       cy.request({
           url: `https://lmcorp.eu.auth0.com/userinfo`,
           method: 'POST',
           body: dataToSend,
           form: true
       }).then((response) => {
           const { status, body } = response
           expect(status).to.eq(200)
           expect(body).to.have.property('success', 1)
           cy.visit(url)
      })
    })

    //and use it like :
    beforeEach(() => { login('url') })
```

...然后在测试场景中包含了beforeEach。

```
    describe('My First Test', function (){
    it('Visit Risk App Landing Page', function (){
        beforeEach(() => { login('https://lmcorp.eu.auth0.com/')})
        cy.visit('http://localhost:3000/workflow')
        cy.contains('Site Solutions Combined Assessments')
        cy.contains('To Do')
        cy.contains('Assessing')
        cy.contains('Reviewing')
        cy.contains('Done')
        cy.get('button').click()
        cy.contains('Assessments')
        cy.contains('Site Solutions Combined')
        cy.contains('Flood')
        cy.contains('Whatever Next')
    })
    })

```

但是我在命令控制台上收到以下消息。

![ALT] https://i.imgur.com/cJljZzm.png

我完全陷入困境,不知道从哪里开始。我的问题是:我想创建一个功能,它将调用我们的Auth0 url并获得一个登录验证令牌,该令牌可用于允许访问每个测试场景的应用程序。我是否可以更改此处的内容以使其成功,或者是否有人就如何创建新功能以获取Auth0令牌有任何建议?

0 个答案:

没有答案