Javascript 是否可以使用google authenticator为应用程序编写自动化测试

Javascript 是否可以使用google authenticator为应用程序编写自动化测试,javascript,automation,google-authentication,multi-factor-authentication,cypress,Javascript,Automation,Google Authentication,Multi Factor Authentication,Cypress,我们正在为我们的应用程序实现mfa(multi-factor auth),我正在尝试编写自动化测试来测试这一点。 我看不到任何直接的方法来获取用户登录的谷歌认证码 有人试过这样做吗?有一个软件包… 是一个可以帮助您使用GoogleAuth令牌的包。请记住,当你需要这些东西时,你会马上提出要求。Javascript是异步执行的,因此您需要将其封装在承诺中。下面是一些示例代码,它假定用户界面登录之后是令牌输入 description('检查令牌',函数()) { //第一次测试 它('cy.win

我们正在为我们的应用程序实现mfa(multi-factor auth),我正在尝试编写自动化测试来测试这一点。 我看不到任何直接的方法来获取用户登录的谷歌认证码


有人试过这样做吗?

有一个软件包…
是一个可以帮助您使用GoogleAuth令牌的包。请记住,当你需要这些东西时,你会马上提出要求。Javascript是异步执行的,因此您需要将其封装在承诺中。下面是一些示例代码,它假定用户界面登录之后是令牌输入

description('检查令牌',函数())
{
//第一次测试
它('cy.window()-获取全局窗口对象',()=>{cy.viewport(500780)
参观https://site.domain',) 
cy.get('input[name=email]')。键入('email@server.io') 
cy.get('input[name=password]').focus().type('qwerty123'))
cy.get('.Button')。单击()
//现在让我们等待页面上出现的对象
//准备好输入令牌时
cy.get()。然后(()=>{
让token=getToken();
log('第一个令牌:'+令牌);
})
})
//第二次测试
它('cy.window()-获取全局窗口对象',()=>{cy.viewport(500780)
参观https://site.domain',) 
cy.get('input[name=email]')。键入('email@server.io') 
cy.get('input[name=password]').focus().type('qwerty123'))
cy.get('.Button')。单击()
//现在让我们等待页面上出现的对象
//准备好输入令牌时
cy.get()。然后(()=>{
让token=getToken();
log('第二个令牌:'+令牌);
});
})
})
函数getToken(){
const totp=require('totp-generator');
const-token=totp('2cqgppyfe7jpjax');
返回令牌;

}
我可能会这样做,包括在构建中配置mfa模块,然后在测试期间用静态模块替换google模块。假设您使用的是通用TOTP(基于时间的一次性密码)算法,我相信google Authenticator会使用该算法,并且您能够在测试中使用测试用户的秘密,您可以使用,也可以使用库来生成令牌。您是专门尝试测试MFA,还是不关心,只是想测试应用程序(因此验证本身可能会被模拟)?@BrandonAnzaldi Speakeasy要求您扫描二维码。@使用静态阴影很好,但如果没有其他方法可以,这将是我的选择。