Help us learn about your current experience with the documentation. Take the survey.
GitLab QA 中的流程
流程是常用的一系列操作。它们比页面对象(page objects)更高层次的抽象。流程可以包含多个页面对象,或任何其他相关的代码。
例如,登录流程封装了两个步骤,这两个步骤包含在每一个浏览器 UI 测试中。
# QA::Flow::登录
def sign_in(as: nil)
Runtime::Browser.visit(:gitlab, Page::Main::Login)
Page::Main::Login.perform { |login| login.sign_in_using_credentials(user: as) }
end
# 在测试中使用时
it '以默认用户身份登录后执行测试' do
Flow::Login.sign_in
# 执行测试
endQA::Flow::Login 提供了一个更有用的流程,允许测试轻松地切换用户。
# QA::Flow::登录
def while_signed_in(as: nil)
Page::Main::Menu.perform(&:sign_out_if_signed_in)
sign_in(as: as)
yield
Page::Main::Menu.perform(&:sign_out)
end
# 在测试中使用时
it '以一个用户身份执行测试,并以另一个用户身份进行验证' do
user1 = create(:user)
user2 = create(:user)
Flow::Login.while_signed_in(as: user1) do
# 以 user1 身份执行一些设置
end
Flow::Login.sign_in(as: user2)
# 以 user2 身份执行测试的其余部分
end