Можно ли написать тест автоматизации для приложения с помощью Google-аутентификатора

Мы реализуем mfa(многофакторную аутентификацию) для нашего приложения, и я пытаюсь написать тест для автоматизации, чтобы проверить это. Я не вижу прямого способа получить код аутентификатора Google, чтобы пользователь мог войти в систему.

Кто-нибудь пытался это сделать?

0 ответов

Для этого есть пакет...
https://www.npmjs.com/package/totp-generator - это пакет, который может помочь вам с токенами аутентификации Google. Имейте в виду, что вы хотите запрашивать их тогда, когда они вам нужны. Javascript выполняется асинхронно, поэтому вам нужно заключить его в обещание. Вот пример кода, который предполагает вход в пользовательский интерфейс, за которым следует ввод токена.

describe('check the tokens', function() 
{
// First test 
it('cy.window() - get the global window object', () => { cy.viewport(500, 780) 
  cy.visit('https://site.domain',) 
  cy.get('input[name=email]').type('email@server.io') 
  cy.get('input[name=password]').focus().type('qwerty123') 
  cy.get('.Button').click()
  // Now lets wait on an object that appears on the page 
  // when ready to input the token
    cy.get(<someElement>).then(()=>{
        let token = getToken();
        console.log('first token: ' + token);
    })
})
//Second test
it('cy.window() - get the global window object', () => { cy.viewport(500, 780) 
  cy.visit('https://site.domain',) 
  cy.get('input[name=email]').type('email@server.io') 
  cy.get('input[name=password]').focus().type('qwerty123') 
  cy.get('.Button').click()
  // Now lets wait on an object that appears on the page 
  // when ready to input the token
    cy.get(<someOtherElement>).then(()=>{
        let token = getToken();
        console.log('second token: '+ token);
    });
})
})

function getToken () {
    const totp = require('totp-generator');
    const token = totp('2CQQGPPYFE7JPJAX');
    return token;
}