froth-webdriverio-framework 6.0.61 → 6.0.62

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.
@@ -0,0 +1 @@
1
+ undefined
@@ -0,0 +1 @@
1
+ 2472
@@ -0,0 +1 @@
1
+ eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzY1MzUzNTY3LCJpYXQiOjE3NjUzNDk5NjcsImp0aSI6IjZhOTQ2MDdkYjU1ZDQ4MDRiYTQ5OTk0NTQwOGJhMDZhIiwidXNlcl9pZCI6MX0.N5zPsGN5PUeiB3DV9bGHDKySdNT6uD_2OX1O4PEho6o
@@ -0,0 +1 @@
1
+ 0
@@ -0,0 +1 @@
1
+ https://api.frothtestops.com
@@ -1,4 +1,3 @@
1
-
2
1
  const setAllDetails = require('./setallDatailinBuffer');
3
2
  const exeDetails = require('../froth_api_calls/getexecutionDetails');
4
3
  const { getBSSessionDetails } = require('../froth_api_calls/browsersatckSessionInfo');
@@ -139,97 +138,288 @@ const commonHooks = {
139
138
  console.error('🚨 Error in beforeSession:', error.message);
140
139
  }
141
140
  },
142
- /* ========== BEFORE SUITE ========== */
143
- beforeSuite: async (suite) => {
144
- console.log(`==== BEFORE SUITE: ${suite.title} ====`);
145
- suiteStartTime = Date.now();
146
-
147
- if (process.env.PLATFORM === 'browserstack' || process.env.PLATFORM === 'browserstacklocal') {
148
- await getBSSessionDetails(
149
- process.env.BS_SESSION_TYPE,
150
- process.env.BROWSERSTACK_USERNAME,
151
- process.env.BROWSERSTACK_ACCESS_KEY
152
- );
153
- }
154
-
155
- await exeDetails.update_CICDRUNID_ReportUrl(
156
- BUFFER.getItem('ORGANISATION_DOMAIN_URL'),
157
- BUFFER.getItem('FROTH_LOGIN_TOKEN'),
158
- BUFFER.getItem('FROTH_EXECUTION_ID')
159
- );
160
- },
161
- /* ========== BEFORE TEST ========== */
162
- beforeTest: async (test) => {
163
- console.log(`▶️ START TEST: ${test.title}`);
164
- },
165
-
166
- /* ========== AFTER TEST ========== */
167
- afterTest: async (test, _, { error, duration, passed }) => {
168
- totalTestDuration += duration;
169
-
170
- const fileName = path.basename(test.file);
171
- const status = passed ? 'PASSED' : 'FAILED';
172
-
173
- if (!passed) {
174
- resultdetails.comments.push(`${test.title} - ${error?.message || 'Failed'}`);
175
- }
176
-
177
- const suiteDetails = JSON.parse(BUFFER.getItem('FROTHE_SUITE_DETAILS'));
178
- const script = suiteDetails.find(s => s.scriptName === fileName.replace('.js', ''));
179
-
180
- await exeDetails.updateScriptExecutionStatus(
181
- BUFFER.getItem('ORGANISATION_DOMAIN_URL'),
182
- BUFFER.getItem('FROTH_LOGIN_TOKEN'),
183
- script.scriptId,
184
- script.platform.toLowerCase(),
185
- status
186
- );
187
- },
188
- /* ==== AFTER SESSION ==== */
189
- afterSession: async (config, capabilities, specs, exitCode) => {
190
- console.log('==== AFTER SESSION ====');
191
-
192
- const totalTime = Date.now() - suiteStartTime;
193
- resultdetails.excution_status = exitCode === 0 ? 'PASSED' : 'FAILED';
194
- resultdetails.excution_time = msToTime(Math.max(totalTime, totalTestDuration));
195
-
196
- // Capture WebDriver session failures
197
- if (exitCode !== 0) {
198
- resultdetails.comments.push(`❌ WebDriver session failed or timed out (exit code ${exitCode})`);
199
- }
200
-
201
- await safeUpdateExecution();
202
- BUFFER.clear();
203
- },
204
-
205
- /* ========== ON ERROR ========== */
206
-
207
- onError: async function (error) {
208
- console.error('==== ON ERROR HOOK ====');
209
- console.error('Error occurred:', error.message);
210
-
211
- // Normalize all framework-level failures
212
- resultdetails.excution_status = 'FAILED';
213
- resultdetails.comments.push(`WDIO Error: ${error.message}`);
214
-
215
- // Special handling for BrowserStack timeout
216
- if (error.message?.includes('Automate testing time expired')) {
217
- resultdetails.comments.push(
218
- 'BrowserStack session timed out (Automate testing time expired)'
219
- );
220
- }
221
-
222
- await safeUpdateExecution();
223
- },
224
- /* ========== ON COMPLETE ========== */
225
- onComplete: async (exitCode, _, __, results) => {
226
- console.log('==== ON COMPLETE ====');
227
- console.log(`Total: ${results.total}, Passed: ${results.passed}, Failed: ${results.failed}`);
228
- return exitCode;
229
- },
230
-
231
-
232
-
233
- };
234
-
235
- module.exports = commonHooks;
141
+ /**
142
+ * Gets executed before the suite starts (in Mocha/Jasmine only).
143
+ * @param {object} suite suite details
144
+ */
145
+ beforeSuite: async function (suite) {
146
+ try {
147
+ console.log('==== BEFORE SUITE HOOK ====');
148
+ console.log(`====> Test suite has been started ' ${suite.title}' `,);
149
+
150
+ starttime = new Date().getTime();
151
+
152
+ if (process.env.PLATFORM === 'browserstack')
153
+ await getBSSessionDetails(process.env.BS_SESSION_TYPE, process.env.BROWSERSTACK_USERNAME, process.env.BROWSERSTACK_ACCESS_KEY);
154
+
155
+
156
+ // const resultdetails = {};
157
+ await exeDetails.update_CICDRUNID_ReportUrl(BUFFER.getItem("ORGANISATION_DOMAIN_URL"), BUFFER.getItem("FROTH_LOGIN_TOKEN"), BUFFER.getItem("FROTH_EXECUTION_ID"))
158
+ BUFFER.setItem("UPDATE_EXECUTION", 'FALSE') //i need to recall
159
+
160
+ } catch (e) {
161
+ console.log("Error in beforeSuite:", e);
162
+ }
163
+ },
164
+
165
+ before: async function (capabilities, specs) {
166
+ if (process.env.BS_SESSION_TYPE === 'automate') {
167
+ console.log('==== BEFORE HOOK ====')
168
+ await browser.maximizeWindow()
169
+ }
170
+ else {
171
+ console.log('==== BEFORE HOOK FOR MOBILE ====');
172
+ }
173
+
174
+ },
175
+
176
+ /**
177
+ * Function to be executed before a test (in Mocha/Jasmine only)
178
+ * @param {object} test test object
179
+ * @param {object} context scope object the test was executed with
180
+ */
181
+ beforeTest: async function (test, context) {
182
+
183
+ console.log('==== BEFORE TEST HOOK ====');
184
+ console.log(`====> Test Started '${test.title}'`);
185
+
186
+ },
187
+
188
+
189
+ /**
190
+ * Function to be executed after a test (in Mocha/Jasmine only)
191
+ * @param {object} test test object
192
+ * @param {object} context scope object the test was executed with
193
+ * @param {Error} result.error error object in case the test fails, otherwise `undefined`
194
+ * @param {*} result.result return object of test function
195
+ * @param {number} result.duration duration of test
196
+ * @param {boolean} result.passed true if test has passed, otherwise false
197
+ * @param {object} result.retries information about spec related retries, e.g. `{ attempts: 0, limit: 0 }`
198
+ */
199
+ afterTest: async function (test, context, { error, result, duration, passed, retries }) {
200
+ console.log('==== AFTER TEST HOOK ====');
201
+ console.log(`====> Test name finished '${test.title}'`);
202
+
203
+ const fileName = path.basename(test.file);
204
+ console.log('====> Test File Name:', fileName);
205
+ // BUFFER.setItem("FROTH_TOTAL_DURATION", Number(BUFFER.getItem("FROTH_TOTAL_DURATION")) + duration)
206
+ console.log(`====> Total Duration for this test: ${duration}ms`);
207
+ duration_tests += duration;
208
+ console.log(`====> Total Duration for all tests: ${duration_tests}ms`);
209
+ console.log(`====> Status of test: ${passed}`);
210
+
211
+ let scriptresult = "NOT RUN";
212
+ // Default assumption: test passed (unless soft assertion failed)
213
+ let finalPassed = passed;
214
+
215
+ if (passed) {
216
+ scriptresult = "PASSED"
217
+ resultdetails.comments.push(`${test.title} - passed`);
218
+ console.log(`====> resultdetails comments: ${resultdetails.comments}`);
219
+ }
220
+ else if (!finalPassed || error) {
221
+ scriptresult = "FAILED"
222
+ console.log(`====> Failed or error while executing the test: ${error ? error.message : "Test failed"}`);
223
+ if (!resultdetails.comments.some(comment => typeof comment === 'string' && comment.includes(test.title)))
224
+ resultdetails.comments.push(`${test.title} - failed: ${error ? error.message : "Test failed"}`);
225
+
226
+ }
227
+
228
+ let scriptDetails = BUFFER.getItem("FROTHE_SUITE_DETAILS");
229
+ if (typeof scriptDetails === "string") {
230
+ scriptDetails = JSON.parse(scriptDetails);
231
+ }
232
+ const jwtScript = scriptDetails.find(s => s.scriptName === fileName.replace(".js", ""));
233
+ console.log("jwtScript:", jwtScript);
234
+
235
+ await exeDetails.updateScriptExecutionStatus(
236
+ BUFFER.getItem("ORGANISATION_DOMAIN_URL"),
237
+ BUFFER.getItem("FROTH_LOGIN_TOKEN"),
238
+ jwtScript.scriptId,
239
+ jwtScript.platform.toLowerCase(),
240
+ scriptresult)
241
+
242
+
243
+ },
244
+ /**
245
+ * Hook that gets executed after the suite has ended (in Mocha/Jasmine only).
246
+ * @param {object} suite suite details
247
+ */
248
+ afterSuite: async function (suite) {
249
+ console.log('==== AFTER SUITE HOOK ====');
250
+ console.log(`====> Test suite has completed '${suite.title}'`);
251
+ },
252
+ /**
253
+ * Gets executed after all tests are done. You still have access to all global variables from
254
+ * the test.
255
+ * @param {number} result 0 - test pass, 1 - test fail
256
+ * @param {Array.<Object>} capabilities list of capabilities details
257
+ * @param {Array.<String>} specs List of spec file paths that ran
258
+ */
259
+ after: async function (result, config, capabilities, specs) {
260
+ console.log('==== AFTER HOOK ====');
261
+ console.log('====> All tests are completed.' + result);
262
+ BUFFER.setItem("RESULT_DATA", result);
263
+ console.log("====> Result data :" + BUFFER.getItem("RESULT_DATA"))
264
+ resultdetails.excution_status = BUFFER.getItem("RESULT_DATA") == 0 ? 'PASSED' : 'FAILED'
265
+ console.log("====> Total Duration taken for the suite:" + BUFFER.getItem("FROTH_TOTAL_DURATION"));
266
+ console.log("====> Execution Status from results" + resultdetails.excution_status);
267
+ // Capture WebDriver session errors
268
+
269
+ if (result !== 0) {
270
+ if (resultdetails.comments.length === 0) {
271
+ resultdetails.comments.push("❌ WebDriver session failed or timed out.");
272
+ }
273
+ resultdetails.comments.push(`Execution failed with exit code: ${result}`);
274
+
275
+ process.on('uncaughtException', (err) => {
276
+ console.error("Uncaught Exception:", err);
277
+ resultdetails.comments.push(`Execution failed : ${err}`);
278
+ });
279
+
280
+ }
281
+
282
+ },
283
+
284
+ onError: async function (error) {
285
+ console.error('==== ON ERROR HOOK ====');
286
+ console.error('====> Error occurred:', error.message);
287
+ if (error.message.includes('Automate testing time expired')) {
288
+ console.log('❌ Global error: Session timed out on BrowserStack.');
289
+ resultdetails.excution_status = 'FAILED';
290
+ resultdetails.comments.push(`Global error: Session timed out on BrowserStack.Please check ths session: ${result}`);
291
+
292
+ await exeDetails.updateExecuitonDetails(BUFFER.getItem("ORGANISATION_DOMAIN_URL"), BUFFER.getItem("FROTH_LOGIN_TOKEN"), BUFFER.getItem("FROTH_EXECUTION_ID"), resultdetails)
293
+ process.exit(1); // Stop execution if session timed out
294
+ }
295
+ },
296
+ afterSession: async function (config, capabilities, specs) {
297
+ console.log('==== AFTER SESSION HOOK ====');
298
+ console.log('====> This is the aftersession hook');
299
+ // console.log("Capabilities:", capabilities);
300
+ console.log("Specs:", specs);
301
+ //console.log("Config:", config);
302
+
303
+ process.on('uncaughtException', (err) => {
304
+ console.error("Uncaught Exception:", err);
305
+ resultdetails.comments.push(`Execution failed with exit code: ${err}`);
306
+ });
307
+
308
+ // Capture unhandled promise rejections
309
+ process.on('unhandledRejection', (reason, promise) => {
310
+ console.error("Unhandled Promise Rejection:", reason);
311
+ resultdetails.comments.push(`Execution failed with exit code: ${reason}`);
312
+ });
313
+
314
+ endtime = new Date().getTime();
315
+ let totalDuration = endtime - starttime;
316
+ console.log("====> Total Duration taken for :" + BUFFER.getItem("FROTH_TOTAL_DURATION"));
317
+ console.log("====> Total Duration in after session based on start time and end time:" + totalDuration);
318
+ console.log("====> Total Duration in after session based on summing up the test execution times:" + duration_tests);
319
+
320
+ resultdetails.excution_status = BUFFER.getItem("RESULT_DATA") == 0 ? 'PASSED' : 'FAILED'
321
+ const frothDuration = BUFFER.getItem("FROTH_TOTAL_DURATION");
322
+
323
+ if (await isInvalidDuration(frothDuration)) {
324
+ // console.log("inside froth duration");
325
+ if (await isInvalidDuration(duration_tests)) {
326
+ console.log("inside froth duration_tests");
327
+ resultdetails.excution_time = await millisecondsToTime(totalDuration);
328
+ } else {
329
+ console.log("inside froth duration_tests comparision");
330
+ if (totalDuration > duration_tests)
331
+ resultdetails.excution_time = await millisecondsToTime(totalDuration);
332
+ else
333
+ resultdetails.excution_time = await millisecondsToTime(duration_tests);
334
+ }
335
+ } else {
336
+ console.log("inside froth duration else");
337
+ resultdetails.excution_time = await secondsToTime(frothDuration);
338
+ }
339
+
340
+ console.log("====> Total Duration calculation:" + resultdetails.excution_time);
341
+
342
+ await exeDetails.updateExecuitonDetails(BUFFER.getItem("ORGANISATION_DOMAIN_URL"), BUFFER.getItem("FROTH_LOGIN_TOKEN"), BUFFER.getItem("FROTH_EXECUTION_ID"), resultdetails)
343
+
344
+ // Perform any cleanup or post-test actions here
345
+ BUFFER.clear();
346
+ },
347
+
348
+ onComplete: async function (exitCode, config, capabilities, results) {
349
+ console.log('==== ON COMPLETE HOOK ====');
350
+ console.log('====> Results:', results);
351
+ console.log('==== Test Results Summary ======');
352
+ console.log('Total Tests:', results.total);
353
+ console.log('Passed:', results.passed);
354
+ console.log('Failed:', results.failed);
355
+ console.log('Exit Code:', exitCode);
356
+
357
+ console.log('==== ALL TESTS ARE COMPLETED ====');
358
+ return exitCode;
359
+ }
360
+
361
+ };
362
+ async function isInvalidDuration(val) {
363
+ console.log("val in isValidDuration:" + val);
364
+ // Check if the value is null, 0, or undefined
365
+ let isValid;
366
+ if (typeof val === 'string') {
367
+ val = val.trim().toLowerCase();
368
+ isValid = val === "null" || val === "0" || val === "undefined";
369
+
370
+ } else
371
+ isValid = val === null || val === 0 || val === undefined;
372
+
373
+ console.log("isValid in isValidDuration:" + isValid);
374
+
375
+ return isValid;
376
+ }
377
+ async function secondsToTime(secs) {
378
+ console.log("secs in secondsToTime :" + secs);
379
+ let hours = Math.floor(secs / 3600);
380
+ let minutes = Math.floor((secs % 3600) / 60);
381
+ let seconds = secs % 60;
382
+
383
+ // Adding leading zeros if the value is less than 10
384
+ if (hours < 10) hours = '0' + hours;
385
+ if (minutes < 10) minutes = '0' + minutes;
386
+ if (seconds < 10) seconds = '0' + seconds;
387
+ console.log("Time:" + hours + ':' + minutes + ':' + seconds);
388
+ return hours + ':' + minutes + ':' + seconds;
389
+ }
390
+ async function millisecondsToTime(ms) {
391
+ console.log("ms in millisecondsToTime: " + ms);
392
+
393
+ // Ensure input is a number
394
+ ms = Number(ms);
395
+ if (isNaN(ms)) {
396
+ return '00:00:00';
397
+ }
398
+
399
+ let totalSeconds = Math.floor(ms / 1000);
400
+ let hours = Math.floor(totalSeconds / 3600);
401
+ let minutes = Math.floor((totalSeconds % 3600) / 60);
402
+ let seconds = totalSeconds % 60;
403
+
404
+ // Pad with leading zeros
405
+ hours = hours < 10 ? '0' + hours : hours;
406
+ minutes = minutes < 10 ? '0' + minutes : minutes;
407
+ seconds = seconds < 10 ? '0' + seconds : seconds;
408
+
409
+ const timeStr = `${hours}:${minutes}:${seconds}`;
410
+ console.log("Formatted time:", timeStr);
411
+ return timeStr;
412
+ }
413
+
414
+ async function convertTimetoHHMMSS(time) {
415
+ const seconds = Math.floor((time / 1000) % 60);
416
+ const minutes = Math.floor((time / (1000 * 60)) % 60);
417
+ const hours = Math.floor((time / (1000 * 60 * 60)) % 24);
418
+ const formattedTime = `${String(hours).padStart(2, '0')}:${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;
419
+
420
+ console.log("Time:" + hours + ':' + minutes + ':' + seconds);
421
+
422
+ return formattedTime;
423
+ }
424
+
425
+ module.exports = commonHooks;
@@ -0,0 +1,235 @@
1
+
2
+ const setAllDetails = require('./setallDatailinBuffer');
3
+ const exeDetails = require('../froth_api_calls/getexecutionDetails');
4
+ const { getBSSessionDetails } = require('../froth_api_calls/browsersatckSessionInfo');
5
+ let globalErrorHandled = false;
6
+ let suiteStartTime;
7
+ let totalTestDuration = 0;
8
+ const url = require('url');
9
+ const fs = require('fs');
10
+ const path = require('path');
11
+
12
+ const resultdetails = {
13
+ comments: [],
14
+ excution_status: null,
15
+ excution_time: null
16
+ };
17
+
18
+ /* ----------------- GLOBAL ERROR HANDLERS ----------------- */
19
+ let globalErrorRegistered = false;
20
+ function registerGlobalErrorHandlers() {
21
+ if (globalErrorRegistered) return;
22
+ globalErrorRegistered = true;
23
+
24
+ process.on('uncaughtException', async (err) => {
25
+ console.error('🔥 Uncaught Exception:', err);
26
+ resultdetails.excution_status = 'FAILED';
27
+ resultdetails.comments.push(`Uncaught Exception: ${err.message}`);
28
+ await safeUpdateExecution();
29
+ process.exit(1);
30
+ });
31
+
32
+ process.on('unhandledRejection', async (reason) => {
33
+ console.error('🔥 Unhandled Rejection:', reason);
34
+ resultdetails.excution_status = 'FAILED';
35
+ resultdetails.comments.push(`Unhandled Rejection: ${reason?.message || reason}`);
36
+ await safeUpdateExecution();
37
+ process.exit(1);
38
+ });
39
+ }
40
+
41
+ async function safeUpdateExecution() {
42
+ try {
43
+ await exeDetails.updateExecuitonDetails(
44
+ BUFFER.getItem('ORGANISATION_DOMAIN_URL'),
45
+ BUFFER.getItem('FROTH_LOGIN_TOKEN'),
46
+ BUFFER.getItem('FROTH_EXECUTION_ID'),
47
+ resultdetails
48
+ );
49
+ } catch (e) {
50
+ console.error('❌ Failed to update execution details:', e.message);
51
+ }
52
+ }
53
+
54
+ /* ----------------- HELPER FUNCTIONS ----------------- */
55
+ function msToTime(ms) {
56
+ const sec = Math.floor(ms / 1000);
57
+ return new Date(sec * 1000).toISOString().substr(11, 8);
58
+ }
59
+
60
+ async function failExecution(reason) {
61
+ resultdetails.excution_status = 'FAILED';
62
+ resultdetails.comments.push(reason);
63
+ await safeUpdateExecution();
64
+ process.exit(1);
65
+ }
66
+ /* ------------------ COMMON CONFIG ------------------ */
67
+
68
+ const commonHooks = {
69
+
70
+ /* ========== ON PREPARE ========== */
71
+ onPrepare: async () => {
72
+ registerGlobalErrorHandlers();
73
+
74
+ console.log('==== ON PREPARE HOOK ====');
75
+ await setAllDetails.setEnvVariables();
76
+ await setAllDetails.setExecutionDetails();
77
+ await setAllDetails.setSuiteDetails();
78
+ await setAllDetails.setTestDataDetails();
79
+
80
+ console.log('✅ All Env Varibale set');
81
+ },
82
+
83
+ /* ========== BEFORE SESSION ========== */
84
+
85
+ beforeSession: async function (config, capabilities, specs) {
86
+ console.log('==== BEFORE SESSION ====');
87
+ try {
88
+ /** 1️⃣ Validate test syntax */
89
+ let syntaxFailed = false;
90
+
91
+ for (const fileUrl of specs) {
92
+ const filePath = url.fileURLToPath(fileUrl);
93
+ try {
94
+ new Function(fs.readFileSync(filePath, 'utf8'));
95
+ } catch (err) {
96
+ const msg = `❌ Syntax error in ${path.basename(filePath)}: ${err.message}`;
97
+ console.error(msg);
98
+ resultdetails.comments.push(msg);
99
+ syntaxFailed = true;
100
+ }
101
+ }
102
+
103
+ if (syntaxFailed) {
104
+ await failExecution('Syntax validation failed');
105
+ }
106
+ /** 2️⃣ BrowserStack capability normalization */
107
+
108
+ if (process.env.PLATFORM === 'browserstack' || process.env.PLATFORM === 'browserstacklocal') {
109
+ const bsOpts = capabilities['bstack:options'] || {};
110
+ if (process.env.BS_SESSION_TYPE === 'app-automate') {
111
+ const appPath = process.env.BROWSERSTACK_APP_PATH;
112
+ if (!appPath) {
113
+ await failExecution('BROWSERSTACK_APP_PATH is missing');
114
+ }
115
+
116
+ bsOpts.app = appPath;
117
+ capabilities['appium:app'] = appPath;
118
+ console.log('✅ App & media set in before session');
119
+
120
+ }
121
+ /** Media upload */
122
+ if (process.env.MEDIA_FILES) {
123
+ try {
124
+ bsOpts['browserstack.uploadMedia'] = JSON.parse(process.env.MEDIA_FILES);
125
+ } catch {
126
+ console.warn('⚠️ MEDIA_FILES is not valid JSON');
127
+ }
128
+ }
129
+ capabilities['bstack:options'] = bsOpts;
130
+
131
+ }
132
+ console.log('final cinfig dteials :' + JSON.stringify(capabilities))
133
+
134
+ console.log("config details " + JSON.stringify(config))
135
+
136
+
137
+ } catch (error) {
138
+ console.error('🚨 Error in beforeSession:', error);
139
+ console.error('🚨 Error in beforeSession:', error.message);
140
+ }
141
+ },
142
+ /* ========== BEFORE SUITE ========== */
143
+ beforeSuite: async (suite) => {
144
+ console.log(`==== BEFORE SUITE: ${suite.title} ====`);
145
+ suiteStartTime = Date.now();
146
+
147
+ if (process.env.PLATFORM === 'browserstack' || process.env.PLATFORM === 'browserstacklocal') {
148
+ await getBSSessionDetails(
149
+ process.env.BS_SESSION_TYPE,
150
+ process.env.BROWSERSTACK_USERNAME,
151
+ process.env.BROWSERSTACK_ACCESS_KEY
152
+ );
153
+ }
154
+
155
+ await exeDetails.update_CICDRUNID_ReportUrl(
156
+ BUFFER.getItem('ORGANISATION_DOMAIN_URL'),
157
+ BUFFER.getItem('FROTH_LOGIN_TOKEN'),
158
+ BUFFER.getItem('FROTH_EXECUTION_ID')
159
+ );
160
+ },
161
+ /* ========== BEFORE TEST ========== */
162
+ beforeTest: async (test) => {
163
+ console.log(`▶️ START TEST: ${test.title}`);
164
+ },
165
+
166
+ /* ========== AFTER TEST ========== */
167
+ afterTest: async (test, _, { error, duration, passed }) => {
168
+ totalTestDuration += duration;
169
+
170
+ const fileName = path.basename(test.file);
171
+ const status = passed ? 'PASSED' : 'FAILED';
172
+
173
+ if (!passed) {
174
+ resultdetails.comments.push(`${test.title} - ${error?.message || 'Failed'}`);
175
+ }
176
+
177
+ const suiteDetails = JSON.parse(BUFFER.getItem('FROTHE_SUITE_DETAILS'));
178
+ const script = suiteDetails.find(s => s.scriptName === fileName.replace('.js', ''));
179
+
180
+ await exeDetails.updateScriptExecutionStatus(
181
+ BUFFER.getItem('ORGANISATION_DOMAIN_URL'),
182
+ BUFFER.getItem('FROTH_LOGIN_TOKEN'),
183
+ script.scriptId,
184
+ script.platform.toLowerCase(),
185
+ status
186
+ );
187
+ },
188
+ /* ==== AFTER SESSION ==== */
189
+ afterSession: async (config, capabilities, specs, exitCode) => {
190
+ console.log('==== AFTER SESSION ====');
191
+
192
+ const totalTime = Date.now() - suiteStartTime;
193
+ resultdetails.excution_status = exitCode === 0 ? 'PASSED' : 'FAILED';
194
+ resultdetails.excution_time = msToTime(Math.max(totalTime, totalTestDuration));
195
+
196
+ // Capture WebDriver session failures
197
+ if (exitCode !== 0) {
198
+ resultdetails.comments.push(`❌ WebDriver session failed or timed out (exit code ${exitCode})`);
199
+ }
200
+
201
+ await safeUpdateExecution();
202
+ BUFFER.clear();
203
+ },
204
+
205
+ /* ========== ON ERROR ========== */
206
+
207
+ onError: async function (error) {
208
+ console.error('==== ON ERROR HOOK ====');
209
+ console.error('Error occurred:', error.message);
210
+
211
+ // Normalize all framework-level failures
212
+ resultdetails.excution_status = 'FAILED';
213
+ resultdetails.comments.push(`WDIO Error: ${error.message}`);
214
+
215
+ // Special handling for BrowserStack timeout
216
+ if (error.message?.includes('Automate testing time expired')) {
217
+ resultdetails.comments.push(
218
+ 'BrowserStack session timed out (Automate testing time expired)'
219
+ );
220
+ }
221
+
222
+ await safeUpdateExecution();
223
+ },
224
+ /* ========== ON COMPLETE ========== */
225
+ onComplete: async (exitCode, _, __, results) => {
226
+ console.log('==== ON COMPLETE ====');
227
+ console.log(`Total: ${results.total}, Passed: ${results.passed}, Failed: ${results.failed}`);
228
+ return exitCode;
229
+ },
230
+
231
+
232
+
233
+ };
234
+
235
+ module.exports = commonHooks;
package/local.log CHANGED
@@ -1,8 +1,8 @@
1
1
 
2
2
 
3
- Sat Dec 13 2025 23:24:22:84 GMT+0800 (+08) -- [WARNING] Skipping initialisation of configuration console because: port already in use by another Binary
4
- Sat Dec 13 2025 23:24:24:305 GMT+0800 (+08) -- [SUCCESS] You can now access your local server(s) in our remote browser
3
+ Sat Dec 13 2025 23:44:27:601 GMT+0800 (+08) -- [WARNING] Skipping initialisation of configuration console because: port already in use by another Binary
4
+ Sat Dec 13 2025 23:44:29:503 GMT+0800 (+08) -- [SUCCESS] You can now access your local server(s) in our remote browser
5
5
 
6
- Sat Dec 13 2025 23:24:25:180 GMT+0800 (+08) -- Press Ctrl-C to exit
6
+ Sat Dec 13 2025 23:44:30:228 GMT+0800 (+08) -- Press Ctrl-C to exit
7
7
 
8
8
 
@@ -4799,5 +4799,55 @@
4799
4799
  "success": true,
4800
4800
  "failure": null,
4801
4801
  "worker": 52402
4802
+ },
4803
+ {
4804
+ "name": "sdk:testhub",
4805
+ "entryType": "measure",
4806
+ "startTime": 698.7514359988272,
4807
+ "duration": 1448.1800590008497,
4808
+ "detail": null,
4809
+ "success": true,
4810
+ "failure": null,
4811
+ "worker": 54704
4812
+ },
4813
+ {
4814
+ "name": "sdk:percy",
4815
+ "entryType": "measure",
4816
+ "startTime": 2157.484710998833,
4817
+ "duration": 0.42805900052189827,
4818
+ "detail": null,
4819
+ "success": true,
4820
+ "failure": null,
4821
+ "worker": 54704
4822
+ },
4823
+ {
4824
+ "name": "sdk:proxy-setup",
4825
+ "entryType": "measure",
4826
+ "startTime": 2159.3287580013275,
4827
+ "duration": 0.06489399820566177,
4828
+ "detail": null,
4829
+ "success": true,
4830
+ "failure": null,
4831
+ "worker": 54704
4832
+ },
4833
+ {
4834
+ "name": "sdk:automate:local",
4835
+ "entryType": "measure",
4836
+ "startTime": 2158.7009590007365,
4837
+ "duration": 4843.925349999219,
4838
+ "detail": null,
4839
+ "success": true,
4840
+ "failure": null,
4841
+ "worker": 54704
4842
+ },
4843
+ {
4844
+ "name": "sdk:automate:hub-management",
4845
+ "entryType": "measure",
4846
+ "startTime": 9381.631223000586,
4847
+ "duration": 2068.509464997798,
4848
+ "detail": null,
4849
+ "success": true,
4850
+ "failure": null,
4851
+ "worker": 54704
4802
4852
  }
4803
4853
  ]
@@ -0,0 +1,122 @@
1
+ 2025-12-13T15:44:23.092Z CLI debug [main] Starting main function execution
2
+ 2025-12-13T15:44:23.092Z CLI debug [main] Generated binSessionId: 9b957440-9e57-4451-a383-c207179308f5
3
+ 2025-12-13T15:44:23.095Z CLI debug [main] Resolved listen address: unix:/tmp/sdk-platform-9b957440-9e57-4451-a383-c207179308f5.sock
4
+ 2025-12-13T15:44:23.111Z CLI debug [2025-12-13T15:44:23.111Z][ TEST REPORTING AND ANALYTICS ] Monitoring has started
5
+ 2025-12-13T15:44:23.163Z CLI debug [core:bin-session] Starting bin session with config: {"binSessionId":"9b957440-9e57-4451-a383-c207179308f5","sdkLanguage":"ECMAScript","sdkVersion":"9.20.1","pathProject":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/wdio_fresh_framework","pathConfig":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/wdio_fresh_framework/browserstack.yml","cliArgs":["./froth_configs/wdio.common.conf.js"],"frameworks":["WebdriverIO","WebdriverIO-mocha"],"frameworkVersions":{"WebdriverIO":"9.20.1","WebdriverIO-mocha":"9.20.1"},"language":"ECMAScript","languageVersion":"","testFramework":"WebdriverIO-mocha","wdioConfig":"{\"userName\":\"naveen_OSt3Pw\",\"accessKey\":\"B9Rx28MTKFzRJ2QEVK1c\",\"platforms\":[{\"platformName\":\"android\",\"buildName\":\"Mobile_Build-\",\"sessionName\":\"Mobile Test\",\"deviceName\":\"Google Pixel 9\",\"osVersion\":\"16.0\",\"debug\":true,\"networkLogs\":true,\"interactiveDebugging\":true,\"wdioService\":\"9.20.1\"}],\"isNonBstackA11yWDIO\":false,\"buildIdentifier\":\"test\",\"browserstackLocal\":true,\"accessibility\":null,\"testObservability\":true,\"browserStackLocalOptions\":{\"forcelocal\":true,\"localIdentifier\":\"wdio-54693\"},\"testContextOptions\":{\"skipSessionName\":false,\"skipSessionStatus\":false,\"sessionNameOmitTestTitle\":false,\"sessionNamePrependTopLevelSuiteTitle\":false,\"sessionNameFormat\":\"\"},\"buildTag\":[]}"}
6
+ 2025-12-13T15:44:23.165Z CLI info Config : {"userName":"[REDACTED]","accessKey":"[REDACTED]","platforms":[{"platformName":"android","buildName":"Mobile_Build-","sessionName":"Mobile Test","deviceName":"Google Pixel 9","osVersion":"16.0","debug":true,"networkLogs":true,"interactiveDebugging":true,"wdioService":"9.20.1"}],"isNonBstackA11yWDIO":false,"buildIdentifier":"test","browserstackLocal":true,"accessibility":null,"testObservability":true,"browserStackLocalOptions":{"forcelocal":true,"localIdentifier":"wdio-54693"},"testContextOptions":{"skipSessionName":false,"skipSessionStatus":false,"sessionNameOmitTestTitle":false,"sessionNamePrependTopLevelSuiteTitle":false,"sessionNameFormat":""},"buildTag":[]}
7
+ 2025-12-13T15:44:23.175Z CLI info Should start debug utility: undefined
8
+ 2025-12-13T15:44:23.176Z CLI debug Not Needed to write this in file sdk:cli:startBinSession {"name":"sdk:cli:startBinSession","entryType":"measure","startTime":627.8069819994271,"duration":11.312019001692533,"detail":null,"success":true,"failure":null,"worker":54704}
9
+ 2025-12-13T15:44:23.229Z CLI debug [TEST REPORTING AND ANALYTICS:git] Exception in fetching last commit with error : this does not look like a git repo
10
+ 2025-12-13T15:44:23.233Z CLI debug [sdk:service] [naveen_OSt3Pw] [9b957440-9e57-4451-a383-c207179308f5] StartBinSession details: {"binSessionId":"9b957440-9e57-4451-a383-c207179308f5","sdkLanguage":"ECMAScript","sdkVersion":"9.20.1","pathProject":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/wdio_fresh_framework","pathConfig":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/wdio_fresh_framework/browserstack.yml","cliArgs":["./froth_configs/wdio.common.conf.js"],"frameworks":["WebdriverIO","WebdriverIO-mocha"],"frameworkVersions":{"WebdriverIO":"9.20.1","WebdriverIO-mocha":"9.20.1"},"language":"ECMAScript","languageVersion":"","testFramework":"WebdriverIO-mocha","wdioConfig":"{\"userName\":\"[REDACTED]\",\"accessKey\":\"[REDACTED]\",\"platforms\":[{\"platformName\":\"android\",\"buildName\":\"Mobile_Build-\",\"sessionName\":\"Mobile Test\",\"deviceName\":\"Google Pixel 9\",\"osVersion\":\"16.0\",\"debug\":true,\"networkLogs\":true,\"interactiveDebugging\":true,\"wdioService\":\"9.20.1\"}],\"isNonBstackA11yWDIO\":false,\"buildIdentifier\":\"test\",\"browserstackLocal\":true,\"accessibility\":null,\"testObservability\":true,\"browserStackLocalOptions\":{\"forcelocal\":true,\"localIdentifier\":\"wdio-54693\"},\"testContextOptions\":{\"skipSessionName\":false,\"skipSessionStatus\":false,\"sessionNameOmitTestTitle\":false,\"sessionNamePrependTopLevelSuiteTitle\":false,\"sessionNameFormat\":\"\"},\"buildTag\":[]}","id":"9b957440-9e57-4451-a383-c207179308f5","config":{"userName":"[REDACTED]","accessKey":"[REDACTED]","platforms":[{"platformName":"android","buildName":"Mobile_Build-","sessionName":"Mobile Test","deviceName":"Google Pixel 9","osVersion":"16.0","debug":true,"networkLogs":true,"interactiveDebugging":true,"wdioService":"9.20.1"}],"isNonBstackA11yWDIO":false,"buildIdentifier":"test","browserstackLocal":true,"accessibility":null,"testObservability":true,"browserStackLocalOptions":{"forcelocal":true,"localIdentifier":"wdio-54693","key":"[REDACTED]","skipBinaryInitialisation":false},"testContextOptions":{"skipSessionName":false,"skipSessionStatus":false,"sessionNameOmitTestTitle":false,"sessionNamePrependTopLevelSuiteTitle":false,"sessionNameFormat":""},"buildTag":[],"browserstackAutomation":true,"selfHeal":false,"disableAutoCaptureLogs":false,"testhub":true,"additionalPlatforms":[],"additionalParams":{},"buildName":"test"},"ciInfo":{"build_number":null},"versionControlInfo":{"name":"git","short_sha":null,"branch":"main","tag":null,"committer":null,"committer_date":null,"author":null,"author_date":null,"commit_message":null,"root":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO","common_git_dir":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/.git","worktree_git_dir":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/.git","last_tag":null,"commits_since_last_tag":0,"remotes":[{"name":"origin","url":"https://github.com/RoboticoDigitalProjects/frothtestops-coderepo.git"}]},"hostInfo":{"hostname":"Subhras-MacBook-Pro.local","platform":"darwin","type":"Darwin","version":"Darwin Kernel Version 24.6.0: Mon Jul 14 11:28:17 PDT 2025; root:xnu-11417.140.69~1/RELEASE_X86_64","arch":"x64"},"data":{},"isAppAutomate":false,"browserstackSDK":"WebdriverIO-mocha-ECMAScriptagent/9.20.1","productMap":{"observability":true,"accessibility":false,"percy":false,"automate":true,"app_automate":false,"turboscale":false,"central_scanner":false}}
11
+ 2025-12-13T15:44:23.233Z CLI info [testhub:module] [naveen_OSt3Pw] [9b957440-9e57-4451-a383-c207179308f5] Starting testhub from 54704:0
12
+ 2025-12-13T15:44:23.234Z CLI debug [testhub:module] [naveen_OSt3Pw] [9b957440-9e57-4451-a383-c207179308f5] startBuild: payload={"started_at":"2025-12-13T15:44:23.234Z","host_info":{"hostname":"Subhras-MacBook-Pro.local","platform":"darwin","type":"Darwin","version":"Darwin Kernel Version 24.6.0: Mon Jul 14 11:28:17 PDT 2025; root:xnu-11417.140.69~1/RELEASE_X86_64","arch":"x64"},"ci_info":{"build_number":null},"version_control":{"name":"git","short_sha":null,"branch":"main","tag":null,"committer":null,"committer_date":null,"author":null,"author_date":null,"commit_message":null,"root":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO","common_git_dir":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/.git","worktree_git_dir":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/.git","last_tag":null,"commits_since_last_tag":0,"remotes":[{"name":"origin","url":"https://github.com/RoboticoDigitalProjects/frothtestops-coderepo.git"}]},"project_name":"","name":"test","build_identifier":"test","build_run_identifier":null,"description":"","tags":[],"failed_tests_rerun":false,"accessibility":{"settings":{}},"framework_details":{"frameworkName":"WebdriverIO-mocha","frameworkVersion":"9.20.1","sdkVersion":"9.20.1","cliVersion":"1.15.0","language":"ECMAScript","testFramework":{"name":"WebdriverIO","version":"9.20.1"}},"product_map":{"observability":true,"accessibility":null,"percy":false,"automate":true,"app_automate":false},"browserstackAutomation":true,"test_orchestration":{}}
13
+ 2025-12-13T15:44:23.234Z CLI debug [core:http] [naveen_OSt3Pw] [9b957440-9e57-4451-a383-c207179308f5] Starting queued request: POST api/v1/build/start
14
+ 2025-12-13T15:44:23.235Z CLI info [naveen_OSt3Pw] [9b957440-9e57-4451-a383-c207179308f5] [PRODUCTION] Making POST request to https://sdk.browserstack.com
15
+ 2025-12-13T15:44:23.235Z CLI debug [core:http] [naveen_OSt3Pw] [9b957440-9e57-4451-a383-c207179308f5] Sending request to https://sdk.browserstack.com/api/v1/build/start
16
+ 2025-12-13T15:44:24.677Z CLI debug [core:http] [naveen_OSt3Pw] [9b957440-9e57-4451-a383-c207179308f5] Response from https://sdk.browserstack.com/api/v1/build/start: 200 OK
17
+ 2025-12-13T15:44:24.679Z CLI debug [core:http] [naveen_OSt3Pw] [9b957440-9e57-4451-a383-c207179308f5] Completed queued request: POST api/v1/build/start
18
+ 2025-12-13T15:44:24.681Z CLI info [testhub:module] [naveen_OSt3Pw] [9b957440-9e57-4451-a383-c207179308f5] startBuild: response=7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza
19
+ 2025-12-13T15:44:24.682Z CLI debug [testhub:module] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] onStart: 9b957440-9e57-4451-a383-c207179308f5
20
+ 2025-12-13T15:44:24.685Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Firing CLI event for funnel data at sdk/v1/event
21
+ 2025-12-13T15:44:24.686Z CLI debug [instrumentation:funnel] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Sending request to sdk/v1/event
22
+ 2025-12-13T15:44:24.686Z CLI debug [instrumentation:module] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Instrumentation onStart: 9b957440-9e57-4451-a383-c207179308f5
23
+ 2025-12-13T15:44:24.686Z CLI debug [core:http] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Starting queued request: POST sdk/v1/event
24
+ 2025-12-13T15:44:24.687Z CLI info [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] [PRODUCTION] Making POST request to https://api.browserstack.com
25
+ 2025-12-13T15:44:24.687Z CLI debug [core:http] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Sending request to https://api.browserstack.com/sdk/v1/event
26
+ 2025-12-13T15:44:24.689Z CLI debug [TEST REPORTING AND ANALYTICS:module] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] onStart: 9b957440-9e57-4451-a383-c207179308f5 language=ecmascript
27
+ 2025-12-13T15:44:24.690Z CLI debug [ai:module] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] onStart: enabled=false isAuthenticated=undefined
28
+ 2025-12-13T15:44:24.692Z CLI debug [percy:module] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] onStart: enabled=false configured=false
29
+ 2025-12-13T15:44:24.694Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Sanitizing local args: {"forcelocal":true,"localIdentifier":"wdio-54693","key":"[REDACTED]","skipBinaryInitialisation":false}
30
+ 2025-12-13T15:44:24.703Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Need to write this in file sdk:testhub
31
+ 2025-12-13T15:44:24.704Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] lock attaned.
32
+ 2025-12-13T15:44:24.706Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Not Needed to write this in file request:https://sdk.browserstack.com/api/v1/build/start {"name":"request:https://sdk.browserstack.com/api/v1/build/start","entryType":"measure","startTime":700.3736310005188,"duration":1443.5947879999876,"detail":null,"success":true,"failure":null,"worker":54704}
33
+ 2025-12-13T15:44:24.707Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Need to write this in file sdk:percy
34
+ 2025-12-13T15:44:24.707Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Need to write this in file sdk:proxy-setup
35
+ 2025-12-13T15:44:24.759Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] lock attaned.
36
+ 2025-12-13T15:44:24.811Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] lock attaned.
37
+ 2025-12-13T15:44:25.295Z CLI debug [core:http] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Response from https://api.browserstack.com/sdk/v1/event: 200 OK
38
+ 2025-12-13T15:44:25.295Z CLI debug [core:http] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Completed queued request: POST sdk/v1/event
39
+ 2025-12-13T15:44:25.295Z CLI debug [instrumentation:funnel] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Response from sdk/v1/event: 200
40
+ 2025-12-13T15:44:25.295Z CLI debug [instrumentation:funnel] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] API Event response - {"data":{"message":"SDK Event recorded successfully"},"body":"{\"message\":\"SDK Event recorded successfully\"}","statusCode":200}
41
+ 2025-12-13T15:44:25.296Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Not Needed to write this in file request:https://api.browserstack.com/sdk/v1/event {"name":"request:https://api.browserstack.com/sdk/v1/event","entryType":"measure","startTime":2153.3108059987426,"duration":606.9519469998777,"detail":null,"success":true,"failure":null,"worker":54704}
42
+ 2025-12-13T15:44:29.537Z CLI debug [local:module] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] onStart: 9b957440-9e57-4451-a383-c207179308f5 localIdentifier=wdio-54693
43
+ 2025-12-13T15:44:29.537Z CLI debug [app-automate:module] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] App handling disabled.
44
+ 2025-12-13T15:44:29.538Z CLI debug [sdk:service] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] onStart hook invoked successfully.
45
+ 2025-12-13T15:44:29.538Z CLI debug [core:bin-session] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Starting to generate capabilities for all platforms.
46
+ 2025-12-13T15:44:29.538Z CLI debug [core:bin-session] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Primary platforms to configure: 1, additional: 0)
47
+ 2025-12-13T15:44:29.538Z CLI debug [core:bin-session] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Processing platform: 0
48
+ 2025-12-13T15:44:29.539Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Platform caps before processing (isSecondaryDriver=false): {"platformName":"android","buildName":"Mobile_Build-","sessionName":"Mobile Test","deviceName":"Google Pixel 9","osVersion":"16.0","debug":true,"networkLogs":true,"interactiveDebugging":true,"wdioService":"9.20.1"}
49
+ 2025-12-13T15:44:29.539Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] root caps before processing: {}
50
+ 2025-12-13T15:44:29.539Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] bstack caps before processing: {"userName":"[REDACTED]","accessKey":"[REDACTED]","buildIdentifier":"test","buildName":"Mobile_Build-","platformName":"android","sessionName":"Mobile Test","deviceName":"Google Pixel 9","osVersion":"16.0","debug":true,"networkLogs":true,"interactiveDebugging":true,"wdioService":"9.20.1","hostName":"Subhras-MacBook-Pro.local","browserstackSDK":"WebdriverIO-mocha-ECMAScriptagent/9.20.1"}
51
+ 2025-12-13T15:44:29.540Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] root caps after processing: {}
52
+ 2025-12-13T15:44:29.540Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] bstack caps after processing: {"userName":"[REDACTED]","accessKey":"[REDACTED]","buildIdentifier":"test","buildName":"Mobile_Build-","platformName":"android","sessionName":"Mobile Test","deviceName":"Google Pixel 9","osVersion":"16.0","debug":true,"networkLogs":true,"interactiveDebugging":true,"wdioService":"9.20.1","hostName":"Subhras-MacBook-Pro.local","browserstackSDK":"WebdriverIO-mocha-ECMAScriptagent/9.20.1"}
53
+ 2025-12-13T15:44:29.540Z CLI debug [core:bin-session] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Generated capabilities for platform 0:, {"bstack:options":{"userName":"[REDACTED]","accessKey":"[REDACTED]","buildIdentifier":"test","buildName":"Mobile_Build-","platformName":"android","sessionName":"Mobile Test","deviceName":"Google Pixel 9","osVersion":"16.0","debug":true,"networkLogs":true,"interactiveDebugging":true,"wdioService":"9.20.1","hostName":"Subhras-MacBook-Pro.local","browserstackSDK":"WebdriverIO-mocha-ECMAScriptagent/9.20.1","buildProductMap":{"observability":true,"accessibility":false,"percy":false,"automate":true,"app_automate":false,"turboscale":false,"central_scanner":false},"useW3C":true,"accessibilityOptions":{}}}
54
+ 2025-12-13T15:44:29.540Z CLI debug [core:bin-session] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Capabilities set for platform 0
55
+ 2025-12-13T15:44:29.540Z CLI debug [core:bin-session] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Finished generating capabilities for all platforms. session {"binSessionId":"9b957440-9e57-4451-a383-c207179308f5","sdkLanguage":"ECMAScript","sdkVersion":"9.20.1","pathProject":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/wdio_fresh_framework","pathConfig":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/wdio_fresh_framework/browserstack.yml","cliArgs":["./froth_configs/wdio.common.conf.js"],"frameworks":["WebdriverIO","WebdriverIO-mocha"],"frameworkVersions":{"WebdriverIO":"9.20.1","WebdriverIO-mocha":"9.20.1"},"language":"ECMAScript","languageVersion":"","testFramework":"WebdriverIO-mocha","wdioConfig":"{\"userName\":\"[REDACTED]\",\"accessKey\":\"[REDACTED]\",\"platforms\":[{\"platformName\":\"android\",\"buildName\":\"Mobile_Build-\",\"sessionName\":\"Mobile Test\",\"deviceName\":\"Google Pixel 9\",\"osVersion\":\"16.0\",\"debug\":true,\"networkLogs\":true,\"interactiveDebugging\":true,\"wdioService\":\"9.20.1\"}],\"isNonBstackA11yWDIO\":false,\"buildIdentifier\":\"test\",\"browserstackLocal\":true,\"accessibility\":null,\"testObservability\":true,\"browserStackLocalOptions\":{\"forcelocal\":true,\"localIdentifier\":\"wdio-54693\"},\"testContextOptions\":{\"skipSessionName\":false,\"skipSessionStatus\":false,\"sessionNameOmitTestTitle\":false,\"sessionNamePrependTopLevelSuiteTitle\":false,\"sessionNameFormat\":\"\"},\"buildTag\":[]}","id":"9b957440-9e57-4451-a383-c207179308f5","config":{"userName":"[REDACTED]","accessKey":"[REDACTED]","platforms":[{"platformName":"android","buildName":"Mobile_Build-","sessionName":"Mobile Test","deviceName":"Google Pixel 9","osVersion":"16.0","debug":true,"networkLogs":true,"interactiveDebugging":true,"wdioService":"9.20.1"}],"isNonBstackA11yWDIO":false,"buildIdentifier":"test","browserstackLocal":true,"accessibility":false,"testObservability":true,"browserStackLocalOptions":{"forcelocal":true,"localIdentifier":"wdio-54693","key":"[REDACTED]","skipBinaryInitialisation":false},"testContextOptions":{"skipSessionName":false,"skipSessionStatus":false,"sessionNameOmitTestTitle":false,"sessionNamePrependTopLevelSuiteTitle":false,"sessionNameFormat":""},"buildTag":[],"browserstackAutomation":true,"selfHeal":false,"disableAutoCaptureLogs":false,"testhub":true,"additionalPlatforms":[],"additionalParams":{},"buildName":"test","testOrchestrationOptions":{"retryTestsOnFailure":{},"abortBuildOnFailure":{}},"apis":{"automate":{"hub":"https://hub.browserstack.com","cdp":"https://cdp.browserstack.com","api":"https://api.browserstack.com","upload":"https://api-cloud.browserstack.com"},"appAutomate":{"hub":"https://hub.browserstack.com","api":"https://api.browserstack.com","upload":"https://api-cloud.browserstack.com"},"percy":{"api":"https://api.browserstack.com"},"turboScale":{"api":"https://grid.browserstack.com"},"accessibility":{"api":"https://accessibility.browserstack.com"},"appAccessibility":{"api":"https://app-accessibility.browserstack.com"},"observability":{"api":"https://collector-observability.browserstack.com","upload":"https://upload-observability.browserstack.com"},"configServer":{"api":"https://sdk.browserstack.com"},"edsInstrumentation":{"api":"https://eds.browserstack.com"},"tcg":{"api":"https://tcg.browserstack.com"}},"hubUrl":"https://hub.browserstack.com/wd/hub","proxySettings":{}},"ciInfo":{"build_number":null},"versionControlInfo":{"name":"git","short_sha":null,"branch":"main","tag":null,"committer":null,"committer_date":null,"author":null,"author_date":null,"commit_message":null,"root":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO","common_git_dir":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/.git","worktree_git_dir":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/.git","last_tag":null,"commits_since_last_tag":0,"remotes":[{"name":"origin","url":"https://github.com/RoboticoDigitalProjects/frothtestops-coderepo.git"}]},"hostInfo":{"hostname":"Subhras-MacBook-Pro.local","platform":"darwin","type":"Darwin","version":"Darwin Kernel Version 24.6.0: Mon Jul 14 11:28:17 PDT 2025; root:xnu-11417.140.69~1/RELEASE_X86_64","arch":"x64"},"data":{},"isAppAutomate":false,"browserstackSDK":"WebdriverIO-mocha-ECMAScriptagent/9.20.1","productMap":{"observability":true,"accessibility":false,"percy":false,"automate":true,"app_automate":false,"turboscale":false,"central_scanner":false},"apis":{"automate":{"hub":"https://hub.browserstack.com","cdp":"https://cdp.browserstack.com","api":"https://api.browserstack.com","upload":"https://api-cloud.browserstack.com"},"appAutomate":{"hub":"https://hub.browserstack.com","api":"https://api.browserstack.com","upload":"https://api-cloud.browserstack.com"},"percy":{"api":"https://api.browserstack.com"},"turboScale":{"api":"https://grid.browserstack.com"},"accessibility":{"api":"https://accessibility.browserstack.com"},"appAccessibility":{"api":"https://app-accessibility.browserstack.com"},"observability":{"api":"https://collector-observability.browserstack.com","upload":"https://upload-observability.browserstack.com"},"configServer":{"api":"https://sdk.browserstack.com"},"edsInstrumentation":{"api":"https://eds.browserstack.com"},"tcg":{"api":"https://tcg.browserstack.com"}},"centralAuthFlow":true,"testhub":{"automate":{"success":true,"options":{"allow_screenshots":true}},"jwt":"eyJhbGciOiJSUzI1NiJ9.eyJleHAiOiIxNzY1NjUxNDYzIiwiaXNzIjoid3d3LmJyb3dzZXJzdGFjay5jb20iLCJzdWIiOjY2OTQ3MTUsInNjb3BlIjp7InByb2R1Y3QiOiJzZGsiLCJ1c2VyX2FjY2VzcyI6eyJ0ZXN0X29ic2VydmFiaWxpdHkiOjEsImF1dG9tYXRlIjoxLCJhcHBfYXV0b21hdGUiOjEsInBlcmN5IjowLCJhcHBfcGVyY3kiOjEsImFjY2Vzc2liaWxpdHlfdGVzdGluZyI6MSwiYXBwX2FjY2Vzc2liaWxpdHlfdGVzdGluZyI6MSwiYXV0b21hdGVfdHVyYm9zY2FsZSI6MSwibG93X2NvZGVfYXV0b21hdGlvbiI6MX0sImlhYW1fcm9sZSI6ImFkbWluIn0sImdyb3VwX2lkIjo2NDMwNzM3LCJ0ZWFtX2lkIjpudWxsLCJ1ZGFjX2FjY2VzcyI6Imdsb2JhbCJ9.MiWjBLbb13-qjG0a8Isn-fiOcTVmUo-mGDudb3dfIsbZNAJJSEgsst2jzPKCgLC697_LVUqHgp5Fl5YqSSZnqdNn831e-zTu-2JcM91fqDI5FTJGoSoMyR8hKahFBg_H4G4jeRQsJ8a3P6hIunXBhwRfZMdnmitO-cKi62fgxA331-XyaXNMN00fP2yrCw5y5H3aWm7_QVJ77EDPM2Eihw2Ino5pguhnNCUAnDu_JhohgnzRt8E_owD7ZvSAIbwar3_2W9mhvRBn480PjcB-wzu61PR_s7OTvY3QIKE9AKAzbT0bG7BmIMWh5TOxIxu8IEKuemts8wBQN8e0MZe9Lw","buildHashedId":"7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza","testhubEvents":true,"jwtExpiresIn":1765648524},"observability":{"success":true,"options":{"allow_screenshots":true,"testObservabilityOptions":{}}}}
56
+ 2025-12-13T15:44:29.559Z CLI debug [sdk:service] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] StartBinSession completed: time=6396.467569999397
57
+ 2025-12-13T15:44:29.563Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Need to write this in file sdk:automate:local
58
+ 2025-12-13T15:44:29.563Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] lock attaned.
59
+ 2025-12-13T15:44:31.915Z CLI debug [sdk:service] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] No cached nearest hub found, initiating search.
60
+ 2025-12-13T15:44:31.915Z CLI debug [selenium] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] FindNearestHub called with hubPath: /wd/hub
61
+ 2025-12-13T15:44:31.915Z CLI debug [selenium] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] No cached result or no search in-progress, initiating findNearestHub
62
+ 2025-12-13T15:44:31.915Z CLI debug [selenium] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Fetching list of next available hubs from BrowserStack
63
+ 2025-12-13T15:44:31.916Z CLI debug [core:http] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Starting queued request: GET next_hubs
64
+ 2025-12-13T15:44:31.916Z CLI info [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] [PRODUCTION] Making GET request to https://hub.browserstack.com
65
+ 2025-12-13T15:44:31.916Z CLI debug [core:http] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Sending request to https://hub.browserstack.com/next_hubs
66
+ 2025-12-13T15:44:31.920Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Not Needed to write this in file sdk:cli:connectBinSession {"name":"sdk:cli:connectBinSession","entryType":"measure","startTime":9379.843224000186,"duration":0.052657999098300934,"detail":null,"success":true,"failure":null,"worker":54704}
67
+ 2025-12-13T15:44:32.956Z CLI debug [core:http] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Response from https://hub.browserstack.com/next_hubs: 200 OK
68
+ 2025-12-13T15:44:32.957Z CLI debug [core:http] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Completed queued request: GET next_hubs
69
+ 2025-12-13T15:44:32.958Z CLI debug [selenium] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Response from https://hub.browserstack.com/next_hubs: 200
70
+ 2025-12-13T15:44:32.958Z CLI debug [selenium] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Fetched next hubs successfully: {"hubs":["hub-apse.browserstack.com","hub-aps.browserstack.com","hub-usw.browserstack.com"]}
71
+ 2025-12-13T15:44:32.958Z CLI debug [selenium] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Checking hub availability at https://hub-apse.browserstack.com
72
+ 2025-12-13T15:44:32.958Z CLI debug [selenium] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Sending request to https://hub-apse.browserstack.com/check
73
+ 2025-12-13T15:44:32.958Z CLI debug [selenium] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Checking hub availability at https://hub-aps.browserstack.com
74
+ 2025-12-13T15:44:32.958Z CLI debug [selenium] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Sending request to https://hub-aps.browserstack.com/check
75
+ 2025-12-13T15:44:32.958Z CLI debug [selenium] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Checking hub availability at https://hub-usw.browserstack.com
76
+ 2025-12-13T15:44:32.959Z CLI debug [selenium] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Sending request to https://hub-usw.browserstack.com/check
77
+ 2025-12-13T15:44:32.959Z CLI debug [core:http] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Starting queued request: GET check
78
+ 2025-12-13T15:44:32.959Z CLI info [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] [PRODUCTION] Making GET request to https://hub-apse.browserstack.com
79
+ 2025-12-13T15:44:32.959Z CLI debug [core:http] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Sending request to https://hub-apse.browserstack.com/check
80
+ 2025-12-13T15:44:32.964Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Not Needed to write this in file request:https://hub.browserstack.com/next_hubs {"name":"request:https://hub.browserstack.com/next_hubs","entryType":"measure","startTime":9382.346011999995,"duration":1041.2740539982915,"detail":null,"success":true,"failure":null,"worker":54704}
81
+ 2025-12-13T15:44:33.977Z CLI debug [core:http] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Response from https://hub-apse.browserstack.com/check: 200 OK
82
+ 2025-12-13T15:44:33.979Z CLI debug [core:http] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Completed queued request: GET check
83
+ 2025-12-13T15:44:33.980Z CLI debug [selenium] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Response from https://hub-apse.browserstack.com/check: 200 - Hub available
84
+ 2025-12-13T15:44:33.980Z CLI debug [selenium] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Hub at https://hub-apse.browserstack.com responded successfully with latency: 1021.7931989990175 ms.
85
+ 2025-12-13T15:44:33.980Z CLI debug [core:http] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Starting queued request: GET check
86
+ 2025-12-13T15:44:33.980Z CLI info [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] [PRODUCTION] Making GET request to https://hub-aps.browserstack.com
87
+ 2025-12-13T15:44:33.981Z CLI debug [core:http] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Sending request to https://hub-aps.browserstack.com/check
88
+ 2025-12-13T15:44:33.984Z CLI debug [selenium] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Successfully found nearest hub
89
+ 2025-12-13T15:44:33.984Z CLI debug [sdk:service] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Cached new nearest hub URL: https://hub-apse.browserstack.com/wd/hub for binSessionId=9b957440-9e57-4451-a383-c207179308f5
90
+ 2025-12-13T15:44:33.985Z CLI debug [sdk:service] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] ConnectBinSession details: {"binSessionId":"9b957440-9e57-4451-a383-c207179308f5","sdkLanguage":"ECMAScript","sdkVersion":"9.20.1","pathProject":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/wdio_fresh_framework","pathConfig":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/wdio_fresh_framework/browserstack.yml","cliArgs":["./froth_configs/wdio.common.conf.js"],"frameworks":["WebdriverIO","WebdriverIO-mocha"],"frameworkVersions":{"WebdriverIO":"9.20.1","WebdriverIO-mocha":"9.20.1"},"language":"ECMAScript","languageVersion":"","testFramework":"WebdriverIO-mocha","wdioConfig":"{\"userName\":\"[REDACTED]\",\"accessKey\":\"[REDACTED]\",\"platforms\":[{\"platformName\":\"android\",\"buildName\":\"Mobile_Build-\",\"sessionName\":\"Mobile Test\",\"deviceName\":\"Google Pixel 9\",\"osVersion\":\"16.0\",\"debug\":true,\"networkLogs\":true,\"interactiveDebugging\":true,\"wdioService\":\"9.20.1\"}],\"isNonBstackA11yWDIO\":false,\"buildIdentifier\":\"test\",\"browserstackLocal\":true,\"accessibility\":null,\"testObservability\":true,\"browserStackLocalOptions\":{\"forcelocal\":true,\"localIdentifier\":\"wdio-54693\"},\"testContextOptions\":{\"skipSessionName\":false,\"skipSessionStatus\":false,\"sessionNameOmitTestTitle\":false,\"sessionNamePrependTopLevelSuiteTitle\":false,\"sessionNameFormat\":\"\"},\"buildTag\":[]}","id":"9b957440-9e57-4451-a383-c207179308f5","config":{"userName":"[REDACTED]","accessKey":"[REDACTED]","platforms":[{"platformName":"android","buildName":"Mobile_Build-","sessionName":"Mobile Test","deviceName":"Google Pixel 9","osVersion":"16.0","debug":true,"networkLogs":true,"interactiveDebugging":true,"wdioService":"9.20.1"}],"isNonBstackA11yWDIO":false,"buildIdentifier":"test","browserstackLocal":true,"accessibility":false,"testObservability":true,"browserStackLocalOptions":{"forcelocal":true,"localIdentifier":"wdio-54693","key":"[REDACTED]","skipBinaryInitialisation":false},"testContextOptions":{"skipSessionName":false,"skipSessionStatus":false,"sessionNameOmitTestTitle":false,"sessionNamePrependTopLevelSuiteTitle":false,"sessionNameFormat":""},"buildTag":[],"browserstackAutomation":true,"selfHeal":false,"disableAutoCaptureLogs":false,"testhub":true,"additionalPlatforms":[],"additionalParams":{},"buildName":"test","testOrchestrationOptions":{"retryTestsOnFailure":{},"abortBuildOnFailure":{}},"apis":{"automate":{"hub":"https://hub.browserstack.com","cdp":"https://cdp.browserstack.com","api":"https://api.browserstack.com","upload":"https://api-cloud.browserstack.com"},"appAutomate":{"hub":"https://hub.browserstack.com","api":"https://api.browserstack.com","upload":"https://api-cloud.browserstack.com"},"percy":{"api":"https://api.browserstack.com"},"turboScale":{"api":"https://grid.browserstack.com"},"accessibility":{"api":"https://accessibility.browserstack.com"},"appAccessibility":{"api":"https://app-accessibility.browserstack.com"},"observability":{"api":"https://collector-observability.browserstack.com","upload":"https://upload-observability.browserstack.com"},"configServer":{"api":"https://sdk.browserstack.com"},"edsInstrumentation":{"api":"https://eds.browserstack.com"},"tcg":{"api":"https://tcg.browserstack.com"}},"hubUrl":"https://hub.browserstack.com/wd/hub","proxySettings":{}},"ciInfo":{"build_number":null},"versionControlInfo":{"name":"git","short_sha":null,"branch":"main","tag":null,"committer":null,"committer_date":null,"author":null,"author_date":null,"commit_message":null,"root":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO","common_git_dir":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/.git","worktree_git_dir":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/.git","last_tag":null,"commits_since_last_tag":0,"remotes":[{"name":"origin","url":"https://github.com/RoboticoDigitalProjects/frothtestops-coderepo.git"}]},"hostInfo":{"hostname":"Subhras-MacBook-Pro.local","platform":"darwin","type":"Darwin","version":"Darwin Kernel Version 24.6.0: Mon Jul 14 11:28:17 PDT 2025; root:xnu-11417.140.69~1/RELEASE_X86_64","arch":"x64"},"data":{},"isAppAutomate":false,"browserstackSDK":"WebdriverIO-mocha-ECMAScriptagent/9.20.1","productMap":{"observability":true,"accessibility":false,"percy":false,"automate":true,"app_automate":false,"turboscale":false,"central_scanner":false},"apis":{"automate":{"hub":"https://hub.browserstack.com","cdp":"https://cdp.browserstack.com","api":"https://api.browserstack.com","upload":"https://api-cloud.browserstack.com"},"appAutomate":{"hub":"https://hub.browserstack.com","api":"https://api.browserstack.com","upload":"https://api-cloud.browserstack.com"},"percy":{"api":"https://api.browserstack.com"},"turboScale":{"api":"https://grid.browserstack.com"},"accessibility":{"api":"https://accessibility.browserstack.com"},"appAccessibility":{"api":"https://app-accessibility.browserstack.com"},"observability":{"api":"https://collector-observability.browserstack.com","upload":"https://upload-observability.browserstack.com"},"configServer":{"api":"https://sdk.browserstack.com"},"edsInstrumentation":{"api":"https://eds.browserstack.com"},"tcg":{"api":"https://tcg.browserstack.com"}},"centralAuthFlow":true,"testhub":{"automate":{"success":true,"options":{"allow_screenshots":true}},"jwt":"eyJhbGciOiJSUzI1NiJ9.eyJleHAiOiIxNzY1NjUxNDYzIiwiaXNzIjoid3d3LmJyb3dzZXJzdGFjay5jb20iLCJzdWIiOjY2OTQ3MTUsInNjb3BlIjp7InByb2R1Y3QiOiJzZGsiLCJ1c2VyX2FjY2VzcyI6eyJ0ZXN0X29ic2VydmFiaWxpdHkiOjEsImF1dG9tYXRlIjoxLCJhcHBfYXV0b21hdGUiOjEsInBlcmN5IjowLCJhcHBfcGVyY3kiOjEsImFjY2Vzc2liaWxpdHlfdGVzdGluZyI6MSwiYXBwX2FjY2Vzc2liaWxpdHlfdGVzdGluZyI6MSwiYXV0b21hdGVfdHVyYm9zY2FsZSI6MSwibG93X2NvZGVfYXV0b21hdGlvbiI6MX0sImlhYW1fcm9sZSI6ImFkbWluIn0sImdyb3VwX2lkIjo2NDMwNzM3LCJ0ZWFtX2lkIjpudWxsLCJ1ZGFjX2FjY2VzcyI6Imdsb2JhbCJ9.MiWjBLbb13-qjG0a8Isn-fiOcTVmUo-mGDudb3dfIsbZNAJJSEgsst2jzPKCgLC697_LVUqHgp5Fl5YqSSZnqdNn831e-zTu-2JcM91fqDI5FTJGoSoMyR8hKahFBg_H4G4jeRQsJ8a3P6hIunXBhwRfZMdnmitO-cKi62fgxA331-XyaXNMN00fP2yrCw5y5H3aWm7_QVJ77EDPM2Eihw2Ino5pguhnNCUAnDu_JhohgnzRt8E_owD7ZvSAIbwar3_2W9mhvRBn480PjcB-wzu61PR_s7OTvY3QIKE9AKAzbT0bG7BmIMWh5TOxIxu8IEKuemts8wBQN8e0MZe9Lw","buildHashedId":"7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza","testhubEvents":true,"jwtExpiresIn":1765648524},"observability":{"success":true,"options":{"allow_screenshots":true,"testObservabilityOptions":{}}}}
91
+ 2025-12-13T15:44:33.985Z CLI debug [sdk:service] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] onConnect hook invoked successfully.
92
+ 2025-12-13T15:44:33.991Z CLI debug [sdk:service] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] ConnectBinSession completed: time=2077.7514510005713
93
+ 2025-12-13T15:44:33.992Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Need to write this in file sdk:cli:findNearestHub
94
+ 2025-12-13T15:44:33.993Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] lock attaned.
95
+ 2025-12-13T15:44:33.993Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Not Needed to write this in file request:https://hub-apse.browserstack.com/check {"name":"request:https://hub-apse.browserstack.com/check","entryType":"measure","startTime":10425.896846998483,"duration":1019.8103689998388,"detail":null,"success":true,"failure":null,"worker":54704}
96
+ 2025-12-13T15:44:34.013Z CLI debug [sdk:service] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Multi-Driver DriverInit: binSessionId=9b957440-9e57-4451-a383-c207179308f5, platformIndex=0, isSecondary=false
97
+ 2025-12-13T15:44:34.013Z CLI debug [sdk:service] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] User incomingParams "{\"platformName\":\"android\",\"bstack:options\":{\"buildName\":\"Mobile_Build-\",\"sessionName\":\"Mobile Test\",\"deviceName\":\"Google Pixel 9\",\"osVersion\":\"16.0\",\"debug\":true,\"networkLogs\":true,\"interactiveDebugging\":true,\"wdioService\":\"9.20.1\",\"testhubBuildUuid\":\"7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza\",\"buildProductMap\":{\"observability\":true,\"accessibility\":null,\"percy\":false,\"automate\":true,\"app_automate\":false},\"app\":\"bs://30fdf3a163d0bad126f64a3d5713e9ab0086a41e\"},\"appium:app\":\"bs://30fdf3a163d0bad126f64a3d5713e9ab0086a41e\"}"
98
+ 2025-12-13T15:44:34.013Z CLI debug [sdk:service] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Using cached nearest hub URL: https://hub-apse.browserstack.com/wd/hub
99
+ 2025-12-13T15:44:34.015Z CLI debug [sdk:service] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Cached new nearest hub URL: https://hub-apse.browserstack.com/wd/hub for binSessionId=9b957440-9e57-4451-a383-c207179308f5
100
+ 2025-12-13T15:44:34.015Z CLI debug [sdk:service] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] DriverInit: platformIndex=0 hubUrl=https://hub-apse.browserstack.com/wd/hub
101
+ 2025-12-13T15:44:34.016Z CLI debug [sdk:service] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] DriverInit details: {"binSessionId":"9b957440-9e57-4451-a383-c207179308f5","sdkLanguage":"ECMAScript","sdkVersion":"9.20.1","pathProject":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/wdio_fresh_framework","pathConfig":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/wdio_fresh_framework/browserstack.yml","cliArgs":["./froth_configs/wdio.common.conf.js"],"frameworks":["WebdriverIO","WebdriverIO-mocha"],"frameworkVersions":{"WebdriverIO":"9.20.1","WebdriverIO-mocha":"9.20.1"},"language":"ECMAScript","languageVersion":"","testFramework":"WebdriverIO-mocha","wdioConfig":"{\"userName\":\"[REDACTED]\",\"accessKey\":\"[REDACTED]\",\"platforms\":[{\"platformName\":\"android\",\"buildName\":\"Mobile_Build-\",\"sessionName\":\"Mobile Test\",\"deviceName\":\"Google Pixel 9\",\"osVersion\":\"16.0\",\"debug\":true,\"networkLogs\":true,\"interactiveDebugging\":true,\"wdioService\":\"9.20.1\"}],\"isNonBstackA11yWDIO\":false,\"buildIdentifier\":\"test\",\"browserstackLocal\":true,\"accessibility\":null,\"testObservability\":true,\"browserStackLocalOptions\":{\"forcelocal\":true,\"localIdentifier\":\"wdio-54693\"},\"testContextOptions\":{\"skipSessionName\":false,\"skipSessionStatus\":false,\"sessionNameOmitTestTitle\":false,\"sessionNamePrependTopLevelSuiteTitle\":false,\"sessionNameFormat\":\"\"},\"buildTag\":[]}","id":"9b957440-9e57-4451-a383-c207179308f5","config":{"userName":"[REDACTED]","accessKey":"[REDACTED]","platforms":[{"platformName":"android","buildName":"Mobile_Build-","sessionName":"Mobile Test","deviceName":"Google Pixel 9","osVersion":"16.0","debug":true,"networkLogs":true,"interactiveDebugging":true,"wdioService":"9.20.1"}],"isNonBstackA11yWDIO":false,"buildIdentifier":"test","browserstackLocal":true,"accessibility":false,"testObservability":true,"browserStackLocalOptions":{"forcelocal":true,"localIdentifier":"wdio-54693","key":"[REDACTED]","skipBinaryInitialisation":false},"testContextOptions":{"skipSessionName":false,"skipSessionStatus":false,"sessionNameOmitTestTitle":false,"sessionNamePrependTopLevelSuiteTitle":false,"sessionNameFormat":""},"buildTag":[],"browserstackAutomation":true,"selfHeal":false,"disableAutoCaptureLogs":false,"testhub":true,"additionalPlatforms":[],"additionalParams":{},"buildName":"test","testOrchestrationOptions":{"retryTestsOnFailure":{},"abortBuildOnFailure":{}},"apis":{"automate":{"hub":"https://hub.browserstack.com","cdp":"https://cdp.browserstack.com","api":"https://api.browserstack.com","upload":"https://api-cloud.browserstack.com"},"appAutomate":{"hub":"https://hub.browserstack.com","api":"https://api.browserstack.com","upload":"https://api-cloud.browserstack.com"},"percy":{"api":"https://api.browserstack.com"},"turboScale":{"api":"https://grid.browserstack.com"},"accessibility":{"api":"https://accessibility.browserstack.com"},"appAccessibility":{"api":"https://app-accessibility.browserstack.com"},"observability":{"api":"https://collector-observability.browserstack.com","upload":"https://upload-observability.browserstack.com"},"configServer":{"api":"https://sdk.browserstack.com"},"edsInstrumentation":{"api":"https://eds.browserstack.com"},"tcg":{"api":"https://tcg.browserstack.com"}},"hubUrl":"https://hub-apse.browserstack.com/wd/hub","proxySettings":{}},"ciInfo":{"build_number":null},"versionControlInfo":{"name":"git","short_sha":null,"branch":"main","tag":null,"committer":null,"committer_date":null,"author":null,"author_date":null,"commit_message":null,"root":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO","common_git_dir":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/.git","worktree_git_dir":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/.git","last_tag":null,"commits_since_last_tag":0,"remotes":[{"name":"origin","url":"https://github.com/RoboticoDigitalProjects/frothtestops-coderepo.git"}]},"hostInfo":{"hostname":"Subhras-MacBook-Pro.local","platform":"darwin","type":"Darwin","version":"Darwin Kernel Version 24.6.0: Mon Jul 14 11:28:17 PDT 2025; root:xnu-11417.140.69~1/RELEASE_X86_64","arch":"x64"},"data":{},"isAppAutomate":false,"browserstackSDK":"WebdriverIO-mocha-ECMAScriptagent/9.20.1","productMap":{"observability":true,"accessibility":false,"percy":false,"automate":true,"app_automate":false,"turboscale":false,"central_scanner":false},"apis":{"automate":{"hub":"https://hub.browserstack.com","cdp":"https://cdp.browserstack.com","api":"https://api.browserstack.com","upload":"https://api-cloud.browserstack.com"},"appAutomate":{"hub":"https://hub.browserstack.com","api":"https://api.browserstack.com","upload":"https://api-cloud.browserstack.com"},"percy":{"api":"https://api.browserstack.com"},"turboScale":{"api":"https://grid.browserstack.com"},"accessibility":{"api":"https://accessibility.browserstack.com"},"appAccessibility":{"api":"https://app-accessibility.browserstack.com"},"observability":{"api":"https://collector-observability.browserstack.com","upload":"https://upload-observability.browserstack.com"},"configServer":{"api":"https://sdk.browserstack.com"},"edsInstrumentation":{"api":"https://eds.browserstack.com"},"tcg":{"api":"https://tcg.browserstack.com"}},"centralAuthFlow":true,"testhub":{"automate":{"success":true,"options":{"allow_screenshots":true}},"jwt":"eyJhbGciOiJSUzI1NiJ9.eyJleHAiOiIxNzY1NjUxNDYzIiwiaXNzIjoid3d3LmJyb3dzZXJzdGFjay5jb20iLCJzdWIiOjY2OTQ3MTUsInNjb3BlIjp7InByb2R1Y3QiOiJzZGsiLCJ1c2VyX2FjY2VzcyI6eyJ0ZXN0X29ic2VydmFiaWxpdHkiOjEsImF1dG9tYXRlIjoxLCJhcHBfYXV0b21hdGUiOjEsInBlcmN5IjowLCJhcHBfcGVyY3kiOjEsImFjY2Vzc2liaWxpdHlfdGVzdGluZyI6MSwiYXBwX2FjY2Vzc2liaWxpdHlfdGVzdGluZyI6MSwiYXV0b21hdGVfdHVyYm9zY2FsZSI6MSwibG93X2NvZGVfYXV0b21hdGlvbiI6MX0sImlhYW1fcm9sZSI6ImFkbWluIn0sImdyb3VwX2lkIjo2NDMwNzM3LCJ0ZWFtX2lkIjpudWxsLCJ1ZGFjX2FjY2VzcyI6Imdsb2JhbCJ9.MiWjBLbb13-qjG0a8Isn-fiOcTVmUo-mGDudb3dfIsbZNAJJSEgsst2jzPKCgLC697_LVUqHgp5Fl5YqSSZnqdNn831e-zTu-2JcM91fqDI5FTJGoSoMyR8hKahFBg_H4G4jeRQsJ8a3P6hIunXBhwRfZMdnmitO-cKi62fgxA331-XyaXNMN00fP2yrCw5y5H3aWm7_QVJ77EDPM2Eihw2Ino5pguhnNCUAnDu_JhohgnzRt8E_owD7ZvSAIbwar3_2W9mhvRBn480PjcB-wzu61PR_s7OTvY3QIKE9AKAzbT0bG7BmIMWh5TOxIxu8IEKuemts8wBQN8e0MZe9Lw","buildHashedId":"7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza","testhubEvents":true,"jwtExpiresIn":1765648524},"observability":{"success":true,"options":{"allow_screenshots":true,"testObservabilityOptions":{}}}}
102
+ 2025-12-13T15:44:34.016Z CLI debug [core:bin-session] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] [Current] Platform capabilities for platform 0: {"bstack:options":{"userName":"[REDACTED]","accessKey":"[REDACTED]","buildIdentifier":"test","buildName":"Mobile_Build-","platformName":"android","sessionName":"Mobile Test","deviceName":"Google Pixel 9","osVersion":"16.0","debug":true,"networkLogs":true,"interactiveDebugging":true,"wdioService":"9.20.1","hostName":"Subhras-MacBook-Pro.local","browserstackSDK":"WebdriverIO-mocha-ECMAScriptagent/9.20.1","buildProductMap":{"observability":true,"accessibility":false,"percy":false,"automate":true,"app_automate":false,"turboscale":false,"central_scanner":false},"useW3C":true,"accessibilityOptions":{}}}
103
+ 2025-12-13T15:44:34.017Z CLI debug [core:bin-session] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] [Final] Set Platform capabilities for session Id 9b957440-9e57-4451-a383-c207179308f5 for platform 0: {"bstack:options":{"userName":"[REDACTED]","accessKey":"[REDACTED]","buildIdentifier":"test","buildName":"Mobile_Build-","platformName":"android","sessionName":"Mobile Test","deviceName":"Google Pixel 9","osVersion":"16.0","debug":true,"networkLogs":true,"interactiveDebugging":true,"wdioService":"9.20.1","hostName":"Subhras-MacBook-Pro.local","browserstackSDK":"WebdriverIO-mocha-ECMAScriptagent/9.20.1","buildProductMap":{"observability":true,"accessibility":false,"percy":false,"automate":true,"app_automate":false,"turboscale":false,"central_scanner":false},"useW3C":true,"accessibilityOptions":{}},"platformName":"android","appium:app":"bs://30fdf3a163d0bad126f64a3d5713e9ab0086a41e"}
104
+ 2025-12-13T15:44:34.017Z CLI debug [accessibility:module] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] accessibilityCaps is not a valid array undefined
105
+ 2025-12-13T15:44:34.017Z CLI info [sdk:service] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Driver initialized as primary driver: platformIndex=0
106
+ 2025-12-13T15:44:34.018Z CLI debug [sdk:service] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Get Platform capabilities for session Id 9b957440-9e57-4451-a383-c207179308f5 for platform 0: {"bstack:options":{"userName":"[REDACTED]","accessKey":"[REDACTED]","buildIdentifier":"test","buildName":"Mobile_Build-","platformName":"android","sessionName":"Mobile Test","deviceName":"Google Pixel 9","osVersion":"16.0","debug":true,"networkLogs":true,"interactiveDebugging":true,"wdioService":"9.20.1","hostName":"Subhras-MacBook-Pro.local","browserstackSDK":"WebdriverIO-mocha-ECMAScriptagent/9.20.1","buildProductMap":{"observability":true,"accessibility":false,"percy":false,"automate":true,"app_automate":false,"turboscale":false,"central_scanner":false},"useW3C":true,"accessibilityOptions":{},"local":true,"localIdentifier":"wdio-54693","browserstackAutomation":true,"testhubBuildUuid":"7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza"},"platformName":"android","appium:app":"bs://30fdf3a163d0bad126f64a3d5713e9ab0086a41e"} for session {"binSessionId":"9b957440-9e57-4451-a383-c207179308f5","sdkLanguage":"ECMAScript","sdkVersion":"9.20.1","pathProject":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/wdio_fresh_framework","pathConfig":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/wdio_fresh_framework/browserstack.yml","cliArgs":["./froth_configs/wdio.common.conf.js"],"frameworks":["WebdriverIO","WebdriverIO-mocha"],"frameworkVersions":{"WebdriverIO":"9.20.1","WebdriverIO-mocha":"9.20.1"},"language":"ECMAScript","languageVersion":"","testFramework":"WebdriverIO-mocha","wdioConfig":"{\"userName\":\"[REDACTED]\",\"accessKey\":\"[REDACTED]\",\"platforms\":[{\"platformName\":\"android\",\"buildName\":\"Mobile_Build-\",\"sessionName\":\"Mobile Test\",\"deviceName\":\"Google Pixel 9\",\"osVersion\":\"16.0\",\"debug\":true,\"networkLogs\":true,\"interactiveDebugging\":true,\"wdioService\":\"9.20.1\"}],\"isNonBstackA11yWDIO\":false,\"buildIdentifier\":\"test\",\"browserstackLocal\":true,\"accessibility\":null,\"testObservability\":true,\"browserStackLocalOptions\":{\"forcelocal\":true,\"localIdentifier\":\"wdio-54693\"},\"testContextOptions\":{\"skipSessionName\":false,\"skipSessionStatus\":false,\"sessionNameOmitTestTitle\":false,\"sessionNamePrependTopLevelSuiteTitle\":false,\"sessionNameFormat\":\"\"},\"buildTag\":[]}","id":"9b957440-9e57-4451-a383-c207179308f5","config":{"userName":"[REDACTED]","accessKey":"[REDACTED]","platforms":[{"platformName":"android","buildName":"Mobile_Build-","sessionName":"Mobile Test","deviceName":"Google Pixel 9","osVersion":"16.0","debug":true,"networkLogs":true,"interactiveDebugging":true,"wdioService":"9.20.1"}],"isNonBstackA11yWDIO":false,"buildIdentifier":"test","browserstackLocal":true,"accessibility":false,"testObservability":true,"browserStackLocalOptions":{"forcelocal":true,"localIdentifier":"wdio-54693","key":"[REDACTED]","skipBinaryInitialisation":false},"testContextOptions":{"skipSessionName":false,"skipSessionStatus":false,"sessionNameOmitTestTitle":false,"sessionNamePrependTopLevelSuiteTitle":false,"sessionNameFormat":""},"buildTag":[],"browserstackAutomation":true,"selfHeal":false,"disableAutoCaptureLogs":false,"testhub":true,"additionalPlatforms":[],"additionalParams":{},"buildName":"test","testOrchestrationOptions":{"retryTestsOnFailure":{},"abortBuildOnFailure":{}},"apis":{"automate":{"hub":"https://hub.browserstack.com","cdp":"https://cdp.browserstack.com","api":"https://api.browserstack.com","upload":"https://api-cloud.browserstack.com"},"appAutomate":{"hub":"https://hub.browserstack.com","api":"https://api.browserstack.com","upload":"https://api-cloud.browserstack.com"},"percy":{"api":"https://api.browserstack.com"},"turboScale":{"api":"https://grid.browserstack.com"},"accessibility":{"api":"https://accessibility.browserstack.com"},"appAccessibility":{"api":"https://app-accessibility.browserstack.com"},"observability":{"api":"https://collector-observability.browserstack.com","upload":"https://upload-observability.browserstack.com"},"configServer":{"api":"https://sdk.browserstack.com"},"edsInstrumentation":{"api":"https://eds.browserstack.com"},"tcg":{"api":"https://tcg.browserstack.com"}},"hubUrl":"https://hub-apse.browserstack.com/wd/hub","proxySettings":{}},"ciInfo":{"build_number":null},"versionControlInfo":{"name":"git","short_sha":null,"branch":"main","tag":null,"committer":null,"committer_date":null,"author":null,"author_date":null,"commit_message":null,"root":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO","common_git_dir":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/.git","worktree_git_dir":"/Users/subhrasubudhi/WORKSPACES/WEBDRIVERIO/.git","last_tag":null,"commits_since_last_tag":0,"remotes":[{"name":"origin","url":"https://github.com/RoboticoDigitalProjects/frothtestops-coderepo.git"}]},"hostInfo":{"hostname":"Subhras-MacBook-Pro.local","platform":"darwin","type":"Darwin","version":"Darwin Kernel Version 24.6.0: Mon Jul 14 11:28:17 PDT 2025; root:xnu-11417.140.69~1/RELEASE_X86_64","arch":"x64"},"data":{},"isAppAutomate":false,"browserstackSDK":"WebdriverIO-mocha-ECMAScriptagent/9.20.1","productMap":{"observability":true,"accessibility":false,"percy":false,"automate":true,"app_automate":false,"turboscale":false,"central_scanner":false},"apis":{"automate":{"hub":"https://hub.browserstack.com","cdp":"https://cdp.browserstack.com","api":"https://api.browserstack.com","upload":"https://api-cloud.browserstack.com"},"appAutomate":{"hub":"https://hub.browserstack.com","api":"https://api.browserstack.com","upload":"https://api-cloud.browserstack.com"},"percy":{"api":"https://api.browserstack.com"},"turboScale":{"api":"https://grid.browserstack.com"},"accessibility":{"api":"https://accessibility.browserstack.com"},"appAccessibility":{"api":"https://app-accessibility.browserstack.com"},"observability":{"api":"https://collector-observability.browserstack.com","upload":"https://upload-observability.browserstack.com"},"configServer":{"api":"https://sdk.browserstack.com"},"edsInstrumentation":{"api":"https://eds.browserstack.com"},"tcg":{"api":"https://tcg.browserstack.com"}},"centralAuthFlow":true,"testhub":{"automate":{"success":true,"options":{"allow_screenshots":true}},"jwt":"eyJhbGciOiJSUzI1NiJ9.eyJleHAiOiIxNzY1NjUxNDYzIiwiaXNzIjoid3d3LmJyb3dzZXJzdGFjay5jb20iLCJzdWIiOjY2OTQ3MTUsInNjb3BlIjp7InByb2R1Y3QiOiJzZGsiLCJ1c2VyX2FjY2VzcyI6eyJ0ZXN0X29ic2VydmFiaWxpdHkiOjEsImF1dG9tYXRlIjoxLCJhcHBfYXV0b21hdGUiOjEsInBlcmN5IjowLCJhcHBfcGVyY3kiOjEsImFjY2Vzc2liaWxpdHlfdGVzdGluZyI6MSwiYXBwX2FjY2Vzc2liaWxpdHlfdGVzdGluZyI6MSwiYXV0b21hdGVfdHVyYm9zY2FsZSI6MSwibG93X2NvZGVfYXV0b21hdGlvbiI6MX0sImlhYW1fcm9sZSI6ImFkbWluIn0sImdyb3VwX2lkIjo2NDMwNzM3LCJ0ZWFtX2lkIjpudWxsLCJ1ZGFjX2FjY2VzcyI6Imdsb2JhbCJ9.MiWjBLbb13-qjG0a8Isn-fiOcTVmUo-mGDudb3dfIsbZNAJJSEgsst2jzPKCgLC697_LVUqHgp5Fl5YqSSZnqdNn831e-zTu-2JcM91fqDI5FTJGoSoMyR8hKahFBg_H4G4jeRQsJ8a3P6hIunXBhwRfZMdnmitO-cKi62fgxA331-XyaXNMN00fP2yrCw5y5H3aWm7_QVJ77EDPM2Eihw2Ino5pguhnNCUAnDu_JhohgnzRt8E_owD7ZvSAIbwar3_2W9mhvRBn480PjcB-wzu61PR_s7OTvY3QIKE9AKAzbT0bG7BmIMWh5TOxIxu8IEKuemts8wBQN8e0MZe9Lw","buildHashedId":"7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza","testhubEvents":true,"jwtExpiresIn":1765648524},"observability":{"success":true,"options":{"allow_screenshots":true,"testObservabilityOptions":{}}}}
107
+ 2025-12-13T15:44:34.019Z CLI debug [sdk:service] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] DriverInit completed: time=6.220718000084162
108
+ 2025-12-13T15:44:34.020Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Not Needed to write this in file sdk:cli:driverInit {"name":"sdk:cli:driverInit","entryType":"measure","startTime":11479.150835998356,"duration":0.37533900141716003,"detail":null,"success":true,"failure":null,"worker":54704}
109
+ 2025-12-13T15:44:34.333Z CLI debug [core:http] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Response from https://hub-aps.browserstack.com/check: 200 OK
110
+ 2025-12-13T15:44:34.334Z CLI debug [core:http] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Completed queued request: GET check
111
+ 2025-12-13T15:44:34.334Z CLI debug [selenium] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Response from https://hub-aps.browserstack.com/check: 200 - Hub available
112
+ 2025-12-13T15:44:34.334Z CLI debug [selenium] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Hub at https://hub-aps.browserstack.com responded successfully with latency: 1375.109021000564 ms.
113
+ 2025-12-13T15:44:34.334Z CLI debug [core:http] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Starting queued request: GET check
114
+ 2025-12-13T15:44:34.334Z CLI info [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] [PRODUCTION] Making GET request to https://hub-usw.browserstack.com
115
+ 2025-12-13T15:44:34.334Z CLI debug [core:http] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Sending request to https://hub-usw.browserstack.com/check
116
+ 2025-12-13T15:44:34.337Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Not Needed to write this in file request:https://hub-aps.browserstack.com/check {"name":"request:https://hub-aps.browserstack.com/check","entryType":"measure","startTime":11447.157055001706,"duration":352.57802299782634,"detail":null,"success":true,"failure":null,"worker":54704}
117
+ 2025-12-13T15:44:35.236Z CLI debug [core:http] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Response from https://hub-usw.browserstack.com/check: 200 OK
118
+ 2025-12-13T15:44:35.237Z CLI debug [core:http] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Completed queued request: GET check
119
+ 2025-12-13T15:44:35.237Z CLI debug [selenium] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Response from https://hub-usw.browserstack.com/check: 200 - Hub available
120
+ 2025-12-13T15:44:35.237Z CLI debug [selenium] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Hub at https://hub-usw.browserstack.com responded successfully with latency: 2277.256372001022 ms.
121
+ 2025-12-13T15:44:35.238Z CLI debug [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Not Needed to write this in file request:https://hub-usw.browserstack.com/check {"name":"request:https://hub-usw.browserstack.com/check","entryType":"measure","startTime":11800.21759499982,"duration":901.8425900004804,"detail":null,"success":true,"failure":null,"worker":54704}
122
+ 2025-12-13T15:45:12.226Z CLI info [main] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Received graceful signal termination, performing cleanup
package/log/sdk-cli.log CHANGED
@@ -16960,3 +16960,15 @@
16960
16960
  2025-12-13T15:25:41.623Z CLI info [naveen_OSt3Pw] [cfsvm63p1gofahh8mwbjy1unky2oxzt2u7lsylg6] [fd8bd4a8-f1ba-4137-970e-c21c25ca0479] [PRODUCTION] Making GET request to https://api.browserstack.com
16961
16961
  2025-12-13T15:25:42.117Z CLI info [naveen_OSt3Pw] [cfsvm63p1gofahh8mwbjy1unky2oxzt2u7lsylg6] [fd8bd4a8-f1ba-4137-970e-c21c25ca0479] [PRODUCTION] Making POST request to https://eds.browserstack.com
16962
16962
  2025-12-13T15:25:43.165Z CLI info [main] [naveen_OSt3Pw] [cfsvm63p1gofahh8mwbjy1unky2oxzt2u7lsylg6] [fd8bd4a8-f1ba-4137-970e-c21c25ca0479] Received graceful signal termination, performing cleanup
16963
+ 2025-12-13T15:44:23.165Z CLI info Config : {"userName":"[REDACTED]","accessKey":"[REDACTED]","platforms":[{"platformName":"android","buildName":"Mobile_Build-","sessionName":"Mobile Test","deviceName":"Google Pixel 9","osVersion":"16.0","debug":true,"networkLogs":true,"interactiveDebugging":true,"wdioService":"9.20.1"}],"isNonBstackA11yWDIO":false,"buildIdentifier":"test","browserstackLocal":true,"accessibility":null,"testObservability":true,"browserStackLocalOptions":{"forcelocal":true,"localIdentifier":"wdio-54693"},"testContextOptions":{"skipSessionName":false,"skipSessionStatus":false,"sessionNameOmitTestTitle":false,"sessionNamePrependTopLevelSuiteTitle":false,"sessionNameFormat":""},"buildTag":[]}
16964
+ 2025-12-13T15:44:23.175Z CLI info Should start debug utility: undefined
16965
+ 2025-12-13T15:44:23.233Z CLI info [testhub:module] [naveen_OSt3Pw] [9b957440-9e57-4451-a383-c207179308f5] Starting testhub from 54704:0
16966
+ 2025-12-13T15:44:23.235Z CLI info [naveen_OSt3Pw] [9b957440-9e57-4451-a383-c207179308f5] [PRODUCTION] Making POST request to https://sdk.browserstack.com
16967
+ 2025-12-13T15:44:24.681Z CLI info [testhub:module] [naveen_OSt3Pw] [9b957440-9e57-4451-a383-c207179308f5] startBuild: response=7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza
16968
+ 2025-12-13T15:44:24.687Z CLI info [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] [PRODUCTION] Making POST request to https://api.browserstack.com
16969
+ 2025-12-13T15:44:31.916Z CLI info [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] [PRODUCTION] Making GET request to https://hub.browserstack.com
16970
+ 2025-12-13T15:44:32.959Z CLI info [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] [PRODUCTION] Making GET request to https://hub-apse.browserstack.com
16971
+ 2025-12-13T15:44:33.980Z CLI info [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] [PRODUCTION] Making GET request to https://hub-aps.browserstack.com
16972
+ 2025-12-13T15:44:34.017Z CLI info [sdk:service] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Driver initialized as primary driver: platformIndex=0
16973
+ 2025-12-13T15:44:34.334Z CLI info [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] [PRODUCTION] Making GET request to https://hub-usw.browserstack.com
16974
+ 2025-12-13T15:45:12.226Z CLI info [main] [naveen_OSt3Pw] [7dbfjzl0rnpwumlr3qlj3dtf9aayw1mwkuf1bsza] [9b957440-9e57-4451-a383-c207179308f5] Received graceful signal termination, performing cleanup
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "froth-webdriverio-framework",
3
- "version": "6.0.61",
3
+ "version": "6.0.62",
4
4
  "readme": "WendriverIO Integration with [BrowserStack](https://www.browserstack.com)",
5
5
  "description": "Selenium examples for WebdriverIO and BrowserStack App Automate",
6
6
  "scripts": {