javascript - 是否可以使用谷歌身份验证器为应用程序编写自动化测试

标签 javascript automation google-authentication multi-factor-authentication cypress

我们正在为我们的应用程序实现 mfa(多因素身份验证),我正在尝试编写自动化测试来测试它。 我没有看到任何直接的方法来获取用户登录的谷歌验证器代码。

有人试过吗?

最佳答案

有一个包...
https://www.npmjs.com/package/totp-generator是一个可以帮助您使用 google 身份验证 token 的软件包。请记住,您希望在需要时立即请求这些。 Javascript 异步执行,因此您需要将其包装在一个 promise 中。下面是一些示例代码,假定用户界面登录后跟 token 输入。

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;
}

关于javascript - 是否可以使用谷歌身份验证器为应用程序编写自动化测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47274377/

相关文章:

c# - 使用 .net 可执行文件执行 SQL 脚本

java - 在 Cloud Endpoints 和 API Explorer 上对用户进行身份验证(使用 Firebase 和 Google 身份验证)

python - PyDrive 2.0 – 身份验证错误 : No code found in redirect

javascript - angular2 共享类属性

javascript - 从用户集合中获取每个文档 Firebase

javascript - JavaScript 数组变得非常大时会丢失浮点精度吗?

java - Intellij,一次打开两个项目

javascript - 如何将 jQuery Deferred 对象转换为 ES6 Promise

php - 是否有与 Perl 的 WWW::Mechanize 等效的 PHP?

c# - OWIN Google 身份验证 - 如何获取 id_token?