diff --git a/qa/qa/runtime/env.rb b/qa/qa/runtime/env.rb
index 81d00d45753930a4ebc9ea900dd35078ad465e55..2126ce6b23447445baf0d2fd8289cd81bef7c980 100644
--- a/qa/qa/runtime/env.rb
+++ b/qa/qa/runtime/env.rb
@@ -3,6 +3,8 @@ module QA
     module Env
       extend self
 
+      attr_writer :user_type
+
       # set to 'false' to have Chrome run visibly instead of headless
       def chrome_headless?
         (ENV['CHROME_HEADLESS'] =~ /^(false|no|0)$/i) != 0
@@ -20,7 +22,9 @@ module QA
       # By default, "standard" denotes a standard GitLab user login.
       # Set this to "ldap" if the user should be logged in via LDAP.
       def user_type
-        (ENV['GITLAB_USER_TYPE'] || 'standard').tap do |type|
+        return @user_type if defined?(@user_type) # rubocop:disable Gitlab/ModuleWithInstanceVariables
+
+        ENV.fetch('GITLAB_USER_TYPE', 'standard').tap do |type|
           unless %w(ldap standard).include?(type)
             raise ArgumentError.new("Invalid user type '#{type}': must be 'ldap' or 'standard'")
           end
diff --git a/qa/qa/specs/features/login/ldap_spec.rb b/qa/qa/specs/features/login/ldap_spec.rb
index ac2bd5a3c39c535daa5c25a1ce159b1f71330f05..737f4d10053369708127a8f7cdad8979c9a5cbba 100644
--- a/qa/qa/specs/features/login/ldap_spec.rb
+++ b/qa/qa/specs/features/login/ldap_spec.rb
@@ -1,8 +1,12 @@
 module QA
   feature 'LDAP user login', :ldap do
+    before do
+      Runtime::Env.user_type = 'ldap'
+    end
+
     scenario 'user logs in using LDAP credentials' do
       Runtime::Browser.visit(:gitlab, Page::Main::Login)
-      Page::Main::Login.act { sign_in_using_ldap_credentials }
+      Page::Main::Login.act { sign_in_using_credentials }
 
       # TODO, since `Signed in successfully` message was removed
       # this is the only way to tell if user is signed in correctly.