typescript 如何在Playwright测试套件中使用Faker库?

56lgkhnf  于 2023-05-30  发布在  TypeScript
关注(0)|答案(1)|浏览(144)

我已经创建了一个测试文件,其中包含用于测试场景的不同测试块,我想使用Faker库来生成数据。
我希望有一个基本的email和密码,并在所有测试块中使用它们,但例如,当我在不同的test块中调用email变量时,email变量的值将被更改。
下面是我的代码库中的一个例子:

const email = faker.internet.email();
const password = faker.internet.password();
const newPassword = faker.internet.password();
const simplePassword = faker.internet.password();

test.describe('Signup a new user', async ({ page }) => {
  test('Signup a new user', async ({page}) => {
    await SignUp.EnterEmail(email);
    await SignUp.EnterPassword(password);
  
  }
  
  test('Try to change password with a valid new password', async ({page}) => {
    await Profile.typeCurrentPassword(password) // value will change here
    await Profile.typeNewPassword(newPassword);
    await Profile.confirmPassword(newPassword
    await Profile.save();
  
  }
  
  test('// Try to change password with simple password', async ({page}) => {
  
    await Profile.typeCurrentPassword(password) // value will change here
    await Profile.typeNewPassword(simplePassword);
    await Profile.confirmPassword(simplePassword
    await Profile.save();
  
  }

}

问题是,当我在每个测试块中使用password变量时,密码的值将被更改,但我需要相同的密码。
尝试的解决方案:
1.我将变量放入test.describe块中。
1.我将变量放入beforeEach块中。
我做了所有这些,变量的值总是改变的。

cwtwac6a

cwtwac6a1#

您可以在创建值时设置种子,并在每个测试中设置它以获得相同的值,如下所示:

faker.seed(12345); // initial seed
const email = faker.internet.email();
const password = faker.internet.password();
const newPassword = faker.internet.password();
const simplePassword = faker.internet.password();

test.describe('Signup a new user', async ({ page }) => {
  test('Signup a new user', async ({page}) => {
    faker.seed(12345);
    await SignUp.EnterEmail(email);
    await SignUp.EnterPassword(password);
  
  }
  
  test('Try to change password with a valid new password', async ({page}) => {
    faker.seed(12345); // setting seed here will reproduce the same value
    await Profile.typeCurrentPassword(password)
    await Profile.typeNewPassword(newPassword);
    await Profile.confirmPassword(newPassword);
    await Profile.save();
  
  }
  
  test('// Try to change password with simple password', async ({page}) => {
    faker.seed(12345);
    await Profile.typeCurrentPassword(password)
    await Profile.typeNewPassword(simplePassword);
    await Profile.confirmPassword(simplePassword);
    await Profile.save();
  
  }

}

相关问题