Help us learn about your current experience with the documentation. Take the survey.

环境设置 | 用户

管理员用户

E2E 测试框架使用管理员用户来创建某些资源,如 user 或更改某些实例级别的设置。对于 test-pipelines 中使用的环境,无需显式配置管理员用户,因为这些环境会自动创建具有已知默认凭据和个人访问令牌的管理员用户。如果管理员用户需要不同的凭据,可以通过以下环境变量进行配置:

  • GITLAB_ADMIN_USERNAME
  • GITLAB_ADMIN_PASSWORD
  • GITLAB_QA_ADMIN_ACCESS_TOKEN:此变量是可选的,当未设置时,将使用管理员凭据通过 UI 创建。

可以通过全局访问器方法 QA::Runtime::User::Store.admin_user 访问管理员用户。

测试用户

针对 test-pipelines 之一运行的所有测试会为每个测试自动创建一个新的测试用户。然后,通过 QA::Runtime::User::Store.test_user 访问器方法,使此用户的资源实例全局可用。所有与用户相关的操作,如登录或通过 API 创建其他对象,默认将使用此用户的凭据或个人访问令牌。自动用户创建是通过使用管理员用户的个人访问令牌执行的,该令牌在 test-pipelines 中使用的所有临时环境中自动预置。

使用单个用户

建议不要使用单个用户运行所有测试,但某些环境对为每个测试生成新用户有限制。为了强制禁用唯一的测试用户创建,应将环境变量 QA_CREATE_UNIQUE_TEST_USERS 设置为 false。禁用唯一用户创建的示例原因:

  • 环境确实有可用的管理员用户并且可以创建新用户,但它只有一个具有终极许可证的顶级组。在这种情况下,必须使用该组的单个成员用户,因为新的唯一用户无法访问具有终极许可证的公共组。

在这种情况下,测试用户 使用来自环境变量的凭据进行初始化 - GITLAB_USERNAMEGITLAB_PASSWORD。此外,为了为测试用户提供预配置的个人访问令牌,可以设置 GITLAB_QA_ACCESS_TOKEN 变量。

无管理员环境

某些环境可能没有管理员用户,并且没有创建管理员用户的能力。为了在针对此类环境运行测试时使测试正常工作,必须通过 使用单个用户 部分中提到的环境变量配置测试用户。此外,为了防止测试框架尝试初始化管理员用户,必须将环境变量 QA_NO_ADMIN_ENV 设置为 true

附加测试用户

如果测试在无管理员环境或不允许用户创建的环境中运行,则可以在测试中使用第二个预配置的用户。必须使用 GITLAB_QA_USERNAME_1GITLAB_QA_PASSWORD_1 环境变量配置此用户的凭据。可以使用方法 QA::Runtime::User::Store.additional_test_user 访问该用户的实例。此方法还确保在允许用户创建的环境中,测试将创建一个新的唯一用户,而不是依赖预配置的用户。

禁用电子邮件验证

账户电子邮件验证 会在检测到可疑活动时锁定用户账户。账户被锁定后,用户必须验证其身份或重置密码才能登录 GitLab。默认情况下,此功能处于禁用状态,您可以使用 应用程序设置 API 来启用 require_email_verification_on_account_locked 属性。

禁用电子邮件验证会关闭实例中所有用户的电子邮件验证。