diff --git a/e2e/test_helpers/user.js b/e2e/test_helpers/user.js
new file mode 100644
index 0000000..9acf2aa
--- /dev/null
+++ b/e2e/test_helpers/user.js
@@ -0,0 +1,36 @@
+const fs = require('fs');
+const config = require('./config');
+const P = require('bluebird');
+
+const username = 'xosadmin@opencord.org';
+
+const getPwd = () => {
+
+  if (process.env.UI_PWD) {
+    return process.env.UI_PWD;
+  }
+
+  const pwdFile = fs.readFileSync('../../build/platform-install/credentials/xosadmin@opencord.org', 'utf8');
+  return pwdFile;
+};
+
+exports.pwd = getPwd();
+
+exports.username = username;
+
+exports.login = P.promisify((done) => {
+  browser.get(`${config.url}/login`);
+
+  browser.getCurrentUrl()
+    .then((url) => {
+      // NOTE login only if it is not yet
+      if (url.indexOf('login') !== -1) {
+        const loginPage = require('../login/login.po');
+        loginPage.sendUsername(username);
+        loginPage.sendPassword(getPwd());
+        loginPage.submit();
+      }
+      browser.waitForAngular();
+      done();
+    });
+});
\ No newline at end of file
