用于验证验证代码的自动化脚本



我正在使用javascript为B2C注册策略创建自动测试。我使用mailosaur作为收件箱来接收我的验证码,以完成电子邮件注册。我的脚本与下面粘贴的脚本相似。这可以帮助我验证已成功发送到收件箱的邮件。但是,我想添加一个额外的固定装置,脚本可以只复制发送到通用收件箱的验证码(邮件正文看起来像"您的代码是:XXXXXX"(,并将其粘贴回注册页面以完成用户注册。请告知如何实现这一目标?非常感谢

import uuidv4 from "uuid/v4";
import MailosaurClient from "mailosaur";
import signUpModel from "./page_models/sign_up_model";
const client = new MailosaurClient("<MAILOSAUR API KEY>");
const mailosaurServerId = "<MAILOSAUR SERVER ID>";
const emailAddress = `${uuidv4()}@dev-tester.com`;
fixture("Airport Gap Signup Flow")
.page("https://airportgap-staging.dev-tester.com/tokens/new")
.beforeEach(async () => await client.messages.deleteAll(mailosaurServerId));
test("User receives an email after signup", async t => {
await t
.typeText(signUpModel.emailInput, emailAddress)
.typeText(signUpModel.passwordInput, "airportgap123")
.click(signUpModel.submitButton);
await t.wait(10000);
let message = await client.messages.get(mailosaurServerId, {
sentTo: emailAddress
});
await t.expect(message.to[0].email).eql(emailAddress);
await t.expect(message.subject).eql("Here's your generated token");
await t
.expect(message.html.body)
.contains("Here's your newly generated Airport Gap token");
});

它可以像解析一些文本一样简单:

const text = "Verify your email address Thanks for verifying your XXXXXXXXXX account! Your code is: 09876 Sincerely, B2C Dev";
const code = text.match(/Your code is: [0-9]+/)[0].split(':')[1].trim();
console.log(code);

这将把09876输出到控制台中。

1/要在消息中匹配您的代码:

text.match(/Your code is: [0-9]+/)

2/按冒号拆分:

[0].split(':')

3/只获取数字(代码本身(并删除空白:

[1].trim()

我很可能会创建一个helper函数并将这些代码封装在其中,这样测试用例就不会受到太多污染。


您可以在MDN:上查找这些方法

  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match
  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split
  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trim