通过双因素身份验证测试自动化

问题描述 投票:0回答:1

我使用 Selenium 进行自动测试,我使用 Visual Studio 和 C#,这个自动测试必须测试一个门户,他们必须在其中输入电子邮件和密码,并访问他对平台进行一般控制的平台,但他们决定将身份验证分为两个因素,所以我不知道该怎么做

c# visual-studio selenium-webdriver two-factor-authentication
1个回答
0
投票

基本上,您在自动化测试中需要做的就是模拟真实用户将如何使用他们的手机:

1. 首先通过扫描二维码或将共享密钥输入身份验证器应用程序来注册双因素身份验证u2028 2.然后在需要的时候使用app生成验证码

以编程方式,您可以使用 Msgdrop 等 API 来完成这两项操作。

您可以通过对 API 进行 HTTP POST 调用来进行注册,并在 JSON 正文中提供共享密钥,或通过 dataURI 提交 QR 代码图像。

直接提交详情示例:

curl https://api.msgdrop.io/v1/otp_enrolments \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {YOUR_API_KEY}' \
  --data '{
      "label": "Test Account ([email protected])",
      "type": "totp",
      "options": {
          "secret": "5ITRVJEM6R6HUNNM"
      }
  }'

提交二维码图片示例:

curl https://api.msgdrop.io/v1/otp_enrolments \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {YOUR_API_KEY}' \
  --data '{
      "data_uri": "data:image/png;base64,..."
  }'

无论哪种方式,该 HTTP 调用的响应都会返回 OTP 注册对象:

{
    "id": "p1d2xply",
    "created_date": "...",
    "origin": "api",
    "label": "Test Account ([email protected])",
    "type": "totp",
    "options": {
        "secret": "5ITRVJEM6R6HUNNM",
        "period": 30,
        "digits": 6,
        "algorithm": "sha1"
    }
}

(我在这里编造了数据只是为了直观地看到它的样子)

现在使用响应中的

id
,您可以向 API 发出 HTTP POST 以按需生成 2FA 验证码:

curl https://api.msgdrop.io/v1/otp_enrolments/p1d2xply/codes \
  --request POST \
  -H 'Authorization: Bearer {YOUR_API_KEY}'

它非常简单,因为它完全由 API 驱动,从自动化的角度来看,您绝对可以用它做任何事情。它比使用一些 UI 工具走上黑客路线更可靠、更快,而且比在测试环境中禁用双因素身份验证要好得多,因为这样您就不再像用户在生产中必须做的那样测试真实的用户旅程.

您可以在此处找到 Msgdrop API 的完整文档:https://docs.msgdrop.io

© www.soinside.com 2019 - 2024. All rights reserved.