froth-webdriverio-framework 2.0.42 → 2.0.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -75,7 +75,7 @@ async function getBSSessionDetails(sessiontype, bs_username, bs_pwd) {
75
75
  const publicUrl = data[0].automation_session.public_url;
76
76
  const duration = data[0].automation_session.duration;
77
77
  BUFFER.setItem("REPORT_URL", publicUrl)
78
- BUFFER.setItem("TOTAL_DURATION", duration)
78
+ BUFFER.setItem("FROTH_TOTAL_DURATION", duration)
79
79
 
80
80
  //return jsondata;
81
81
  } else if (response.status === 401) { //
@@ -1,5 +1,7 @@
1
1
  const deepmerge = require('deepmerge')
2
2
  const commonmobileconfig = require('./common.mobile.conf');
3
+ process.env.BROWSERSTACK = true;
4
+
3
5
  const androidConfig = deepmerge.all([commonmobileconfig, {
4
6
  services: [
5
7
  [
@@ -1,5 +1,6 @@
1
1
  const deepmerge = require('deepmerge')
2
2
  const commonmobileconfig = require('./common.mobile.conf');
3
+
3
4
  const apiconfig = deepmerge.all([commonmobileconfig, {
4
5
 
5
6
 
@@ -1,5 +1,7 @@
1
1
  const deepmerge = require('deepmerge')
2
2
  const commonmobileconfig = require('./common.mobile.conf');
3
+ process.env.BROWSERSTACK = false;
4
+
3
5
  const apiconfig = deepmerge.all([commonmobileconfig, {
4
6
 
5
7
  // ====================
@@ -14,7 +16,7 @@ const apiconfig = deepmerge.all([commonmobileconfig, {
14
16
 
15
17
  before: function (capabilities, specs) {
16
18
  // browser.maximizeWindow()
17
- process.env.BS_SESSION_TYPE = "app-automate";
19
+ //process.env.BS_SESSION_TYPE = "app-automate";
18
20
  },
19
21
 
20
22
 
@@ -1,47 +1,44 @@
1
1
  const deepmerge = require('deepmerge')
2
2
  const commonconfig = require('./commonconfig');
3
-
4
- const commonmobconfig = deepmerge.all([commonconfig, {
5
-
6
- ...(process.env.BROWSERSTACK_USERNAME && { user: process.env.BROWSERSTACK_USERNAME }),
7
- ...(process.env.BROWSERSTACK_ACCESS_KEY && {
8
- key: Buffer.from(process.env.BROWSERSTACK_ACCESS_KEY, 'base64').toString('utf-8')
9
- }),
10
-
11
- // user: process.env.BROWSERSTACK_USERNAME,
12
- // key: Buffer.from(process.env.BROWSERSTACK_ACCESS_KEY, 'base64').toString('utf-8'),
13
-
14
- logLevel: 'info',
15
- coloredLogs: true,
16
- screenshotPath: './errorShots/',
17
- baseUrl: '',
18
- waitforTimeout: 90000,
19
- connectionRetryTimeout: 90000,
20
- connectionRetryCount: 2,
21
-
22
- framework: 'mocha',
23
- mochaOpts: {
24
- ui: 'bdd',
25
- timeout: 90000
3
+ const isBrowserStackEnabled = process.env.BROWSERSTACK;
4
+ console.log("isBrowserStackEnabled", isBrowserStackEnabled);
5
+
6
+ const browserStackConfig = isBrowserStackEnabled === true ? {
7
+ user: process.env.BROWSERSTACK_USERNAME,
8
+ key: Buffer.from(process.env.BROWSERSTACK_ACCESS_KEY, 'base64').toString('utf-8'),
9
+ commonCapabilities: {
10
+ 'bstack:options': {
11
+ projectName: process.env.PROJECTNAME || "roboticodigital",
12
+ sessionName: 'Automation test session',
13
+ debug: true,
14
+ networkLogs: true
15
+ }
16
+ }
17
+ } : {};
18
+
19
+ const commonmobconfig = deepmerge.all([
20
+ commonconfig,
21
+ {
22
+ logLevel: 'info',
23
+ coloredLogs: true,
24
+ screenshotPath: './errorShots/',
25
+ baseUrl: '',
26
+ waitforTimeout: 90000,
27
+ connectionRetryTimeout: 90000,
28
+ connectionRetryCount: 2,
29
+
30
+ framework: 'mocha',
31
+ mochaOpts: {
32
+ ui: 'bdd',
33
+ timeout: 90000
34
+ },
35
+
36
+ maxInstances: 10,
37
+
38
+ updateJob: false,
39
+ reporters: ['spec'],
26
40
  },
27
-
28
- maxInstances: 10,
29
-
30
- updateJob: false,
31
- reporters: [
32
- 'spec'
33
- ],
34
- // commonCapabilities: {
35
- // 'bstack:options': {
36
- // projectName: process.env.PROJECTNAME || "roboticodigital",
37
- // // buildName: "Automation Build",
38
- // sessionName: 'Automation test session',
39
- // debug: true,
40
- // networkLogs: true
41
- // }
42
- // },
43
-
44
-
45
- }]);
41
+ browserStackConfig // Add BrowserStack config conditionally
42
+ ]);
46
43
 
47
44
  module.exports = commonmobconfig;
@@ -4,7 +4,9 @@ global.BUFFER = new LocalStorage('./storage');
4
4
  const path = require('path');
5
5
  const exeDetails = require("../api/getexecutionDetails")
6
6
  const getBSSessionDetails = require("../api/browsersatckSessionInfo")
7
-
7
+ const isBrowserStackEnabled = process.env.BROWSERSTACK;
8
+ let starttime;
9
+ let endtime;
8
10
 
9
11
  // Description: This file contains the common configuration for the webdriverio framework.
10
12
  const commonconfig = {
@@ -31,9 +33,10 @@ const commonconfig = {
31
33
  beforeSuite: async function (suite) {
32
34
  try {
33
35
  console.log("Running suite:", suite.title);
36
+ starttime = new Date().getTime();
34
37
  // const sessionId = browser.sessionId;
35
38
  // BUFFER.setItem("SESSION_ID", sessionId)
36
- if (process.env.BS_SESSION_TYPE && process.env.BROWSERSTACK_USERNAME && process.env.BROWSERSTACK_ACCESS_KEY) {
39
+ if (isBrowserStackEnabled) {
37
40
  await getBSSessionDetails(process.env.BS_SESSION_TYPE, process.env.BROWSERSTACK_USERNAME, process.env.BROWSERSTACK_ACCESS_KEY);
38
41
  }
39
42
  const resultdetails = {};
@@ -78,7 +81,7 @@ const commonconfig = {
78
81
  // BUFFER.setItem("FROTH_TOTAL_DURATION", Number(BUFFER.getItem("FROTH_TOTAL_DURATION")) + duration)
79
82
  console.log(`Duration: ${duration}ms`);
80
83
  console.log(`Passed: ${passed}`);
81
- let scriptresult="NOT RUN";
84
+ let scriptresult = "NOT RUN";
82
85
  let scriptid = BUFFER.getItem(fileName.replace(".js", ""))
83
86
 
84
87
  if (passed) {
@@ -92,7 +95,7 @@ const commonconfig = {
92
95
  scriptresult = "FAILED"
93
96
  }
94
97
  console.log('---------------------------------------');
95
- await exeDetails.updateScriptExecutionStatus(BUFFER.getItem("ORGANISATION_DOMAIN_URL"), BUFFER.getItem("FROTH_LOGIN_TOKEN"), scriptid,scriptresult)
98
+ await exeDetails.updateScriptExecutionStatus(BUFFER.getItem("ORGANISATION_DOMAIN_URL"), BUFFER.getItem("FROTH_LOGIN_TOKEN"), scriptid, scriptresult)
96
99
 
97
100
  },
98
101
  /**
@@ -123,13 +126,18 @@ const commonconfig = {
123
126
  },
124
127
 
125
128
  afterSession: async function (config, capabilities, specs) {
126
-
127
129
  console.log('This is the aftersession hook');
128
- // await getBSSessionDetails(process.env.BS_SESSION_TYPE, process.env.BROWSERSTACK_USERNAME, Buffer.from(process.env.BROWSERSTACK_ACCESS_KEY, 'base64').toString('utf-8'));
129
- await getBSSessionDetails(process.env.BS_SESSION_TYPE, process.env.BROWSERSTACK_USERNAME, process.env.BROWSERSTACK_ACCESS_KEY);
130
+ // Perform any cleanup or post-test actions here
131
+
132
+ endtime = new Date().getTime();
133
+ let totalDuration = endtime - starttime;
134
+ console.log("Total Duration:" + totalDuration);
135
+ if (isBrowserStackEnabled)
136
+ await getBSSessionDetails(process.env.BS_SESSION_TYPE, process.env.BROWSERSTACK_USERNAME, process.env.BROWSERSTACK_ACCESS_KEY);
137
+
130
138
  const resultdetails = {}
131
139
  resultdetails.excution_status = BUFFER.getItem("RESULT_DATA") == 0 ? 'PASSED' : 'FAILED'
132
- console.log("Total Duration:" + BUFFER.getItem("FROTH_TOTAL_DURATION"));
140
+ console.log("Total Duration:" + BUFFER.getItem("FROTH_TOTAL_DURATION") === 0 ? totalDuration:BUFFER.getItem("FROTH_TOTAL_DURATION"));
133
141
  resultdetails.excution_time = await secondsToTime(BUFFER.getItem("FROTH_TOTAL_DURATION"))
134
142
  await exeDetails.updateExecuitonDetails(BUFFER.getItem("ORGANISATION_DOMAIN_URL"), BUFFER.getItem("FROTH_LOGIN_TOKEN"), BUFFER.getItem("FROTH_EXECUTION_ID"), resultdetails)
135
143
  BUFFER.clear();
@@ -1,6 +1,8 @@
1
1
  // This is the configuration file for iOS devices
2
2
  const deepmerge = require('deepmerge')
3
3
  const commonmobileconfig = require('./common.mobile.conf');
4
+ process.env.BROWSERSTACK = true;
5
+
4
6
  const iosconfig = deepmerge.all([commonmobileconfig, {
5
7
  services: [
6
8
  [
@@ -1,5 +1,7 @@
1
1
  const deepmerge = require('deepmerge')
2
2
  const commonmobileconfig = require('./common.mobile.conf');
3
+ process.env.BROWSERSTACK = true;
4
+
3
5
  const webbsconfig = deepmerge.all([commonmobileconfig, {
4
6
 
5
7
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "froth-webdriverio-framework",
3
- "version": "2.0.42",
3
+ "version": "2.0.44",
4
4
  "readme": "WebdriverIO Integration",
5
5
  "description": "WebdriverIO and BrowserStack App Automate",
6
6
  "license": "MIT",
File without changes