artes 1.2.16 → 1.2.18
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.
- package/README.md +629 -533
- package/cucumber.config.js +171 -171
- package/docs/functionDefinitions.md +2401 -2401
- package/docs/stepDefinitions.md +391 -352
- package/executer.js +161 -161
- package/index.js +48 -48
- package/package.json +52 -51
- package/src/helper/contextManager/browserManager.js +63 -63
- package/src/helper/contextManager/requestManager.js +23 -23
- package/src/helper/controller/elementController.js +182 -182
- package/src/helper/controller/pomCollector.js +25 -25
- package/src/helper/executers/cleaner.js +19 -19
- package/src/helper/executers/exporter.js +15 -15
- package/src/helper/executers/helper.js +95 -95
- package/src/helper/executers/projectCreator.js +198 -198
- package/src/helper/executers/reportGenerator.js +58 -58
- package/src/helper/executers/testRunner.js +30 -30
- package/src/helper/executers/versionChecker.js +31 -31
- package/src/helper/imports/commons.js +56 -56
- package/src/helper/stepFunctions/APIActions.js +362 -362
- package/src/helper/stepFunctions/assertions.js +523 -523
- package/src/helper/stepFunctions/browserActions.js +22 -22
- package/src/helper/stepFunctions/elementInteractions.js +38 -38
- package/src/helper/stepFunctions/exporter.js +19 -19
- package/src/helper/stepFunctions/frameActions.js +50 -50
- package/src/helper/stepFunctions/keyboardActions.js +41 -41
- package/src/helper/stepFunctions/mouseActions.js +145 -145
- package/src/helper/stepFunctions/pageActions.js +27 -27
- package/src/hooks/context.js +15 -15
- package/src/hooks/hooks.js +257 -257
- package/src/stepDefinitions/API.steps.js +299 -299
- package/src/stepDefinitions/assertions.steps.js +861 -861
- package/src/stepDefinitions/browser.steps.js +7 -7
- package/src/stepDefinitions/frameActions.steps.js +76 -76
- package/src/stepDefinitions/keyboardActions.steps.js +226 -226
- package/src/stepDefinitions/mouseActions.steps.js +275 -275
- package/src/stepDefinitions/page.steps.js +71 -71
- package/src/stepDefinitions/random.steps.js +158 -158
package/executer.js
CHANGED
|
@@ -1,161 +1,161 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
const {
|
|
3
|
-
showHelp,
|
|
4
|
-
showVersion,
|
|
5
|
-
createProject,
|
|
6
|
-
runTests,
|
|
7
|
-
generateReport,
|
|
8
|
-
cleanUp,
|
|
9
|
-
} = require("./src/helper/executers/exporter");
|
|
10
|
-
const fs = require("fs");
|
|
11
|
-
const path = require("path");
|
|
12
|
-
|
|
13
|
-
const configPath = path.resolve(process.cwd(), "artes.config.js");
|
|
14
|
-
|
|
15
|
-
let artesConfig = {};
|
|
16
|
-
|
|
17
|
-
if (fs.existsSync(configPath)) {
|
|
18
|
-
artesConfig = require(configPath);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const args = process.argv.slice(2);
|
|
22
|
-
|
|
23
|
-
const flags = {
|
|
24
|
-
help: args.includes("-h") || args.includes("--help"),
|
|
25
|
-
version: args.includes("-v") || args.includes("--version"),
|
|
26
|
-
create: args.includes("-c") || args.includes("--create"),
|
|
27
|
-
createYes: args.includes("-y") || args.includes("--yes"),
|
|
28
|
-
report: args.includes("-r") || args.includes("--report"),
|
|
29
|
-
reportSuccess: args.includes("--reportSuccess"),
|
|
30
|
-
trace: args.includes("-t") || args.includes("--trace"),
|
|
31
|
-
reportWithTrace: args.includes("-rwt") || args.includes("--reportWithTrace"),
|
|
32
|
-
singleFileReport: args.includes("--singleFileReport"),
|
|
33
|
-
zip: args.includes("--zip"),
|
|
34
|
-
features: args.includes("--features"),
|
|
35
|
-
stepDef: args.includes("--stepDef"),
|
|
36
|
-
tags: args.includes("--tags"),
|
|
37
|
-
env: args.includes("--env"),
|
|
38
|
-
headless: args.includes("--headless"),
|
|
39
|
-
parallel: args.includes("--parallel"),
|
|
40
|
-
retry: args.includes("--retry"),
|
|
41
|
-
dryRun: args.includes("--dryRun"),
|
|
42
|
-
percentage: args.includes("--percentage"),
|
|
43
|
-
browser: args.includes("--browser"),
|
|
44
|
-
baseURL: args.includes("--baseURL"),
|
|
45
|
-
maximizeScreen: args.includes("--maxScreen"),
|
|
46
|
-
width: args.includes("--width"),
|
|
47
|
-
height: args.includes("--height"),
|
|
48
|
-
timeout: args.includes("--timeout"),
|
|
49
|
-
slowMo: args.includes("--slowMo"),
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
const env = args[args.indexOf("--env") + 1];
|
|
53
|
-
const featureFiles = args[args.indexOf("--features") + 1];
|
|
54
|
-
const features = flags.features && featureFiles;
|
|
55
|
-
const stepDef = args[args.indexOf("--stepDef") + 1];
|
|
56
|
-
const tags = args[args.indexOf("--tags") + 1];
|
|
57
|
-
const parallel = args[args.indexOf("--parallel") + 1];
|
|
58
|
-
const retry = args[args.indexOf("--retry") + 1];
|
|
59
|
-
const percentage = args[args.indexOf("--percentage") + 1];
|
|
60
|
-
const browser = args[args.indexOf("--browser") + 1];
|
|
61
|
-
const baseURL = args[args.indexOf("--baseURL") + 1];
|
|
62
|
-
const width = args[args.indexOf("--width") + 1];
|
|
63
|
-
const height = args[args.indexOf("--height") + 1];
|
|
64
|
-
const timeout = args[args.indexOf("--timeout") + 1];
|
|
65
|
-
const slowMo = args[args.indexOf("--slowMo") + 1];
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
flags.env ? (process.env.ENV = env) : ""
|
|
69
|
-
|
|
70
|
-
flags.reportWithTrace ||
|
|
71
|
-
artesConfig.reportWithTrace ||
|
|
72
|
-
flags.report ||
|
|
73
|
-
artesConfig.report
|
|
74
|
-
? (process.env.REPORT_FORMAT = JSON.stringify([
|
|
75
|
-
"allure-cucumberjs/reporter:./allure-results",
|
|
76
|
-
]))
|
|
77
|
-
: "";
|
|
78
|
-
|
|
79
|
-
flags.reportSuccess ? (process.env.REPORT_SUCCESS = true) : "";
|
|
80
|
-
|
|
81
|
-
flags.tags && console.log("Running tags:", tags);
|
|
82
|
-
flags.tags ? (process.env.RUN_TAGS = JSON.stringify(tags)) : "";
|
|
83
|
-
|
|
84
|
-
flags.features && console.log("Running features:", features);
|
|
85
|
-
flags.features ? (process.env.FEATURES = features) : "";
|
|
86
|
-
|
|
87
|
-
flags.stepDef && console.log("Running step definitions:", flags.stepDef);
|
|
88
|
-
flags.stepDef ? (process.env.STEP_DEFINITIONS = stepDef) : "";
|
|
89
|
-
|
|
90
|
-
flags.report ? (process.env.REPORT = true) : "";
|
|
91
|
-
|
|
92
|
-
flags.trace ? (process.env.TRACE = true) : "";
|
|
93
|
-
|
|
94
|
-
flags.reportWithTrace ? (process.env.REPORT_WITH_TRACE = true) : (process.env.REPORT_WITH_TRACE=false);
|
|
95
|
-
|
|
96
|
-
flags.singleFileReport ? (process.env.SINGLE_FILE_REPORT = true) : (process.env.SINGLE_FILE_REPORT=false);
|
|
97
|
-
|
|
98
|
-
flags.zip ? (process.env.ZIP = true) : (process.env.ZIP=false);
|
|
99
|
-
|
|
100
|
-
flags.headless &&
|
|
101
|
-
console.log("Running mode:", flags.headless ? "headless" : "headed");
|
|
102
|
-
flags.headless ? (process.env.MODE = JSON.stringify(true)) : false;
|
|
103
|
-
|
|
104
|
-
flags.parallel ? (process.env.PARALLEL = parallel) : "";
|
|
105
|
-
|
|
106
|
-
flags.retry ? (process.env.RETRY = retry) : "";
|
|
107
|
-
|
|
108
|
-
flags.dryRun ? (process.env.DRYRUN = flags.dryRun) : "";
|
|
109
|
-
|
|
110
|
-
flags.percentage ? (process.env.PERCENTAGE = percentage) : "";
|
|
111
|
-
|
|
112
|
-
flags.browser && console.log("Running browser:", browser);
|
|
113
|
-
flags.browser ? (process.env.BROWSER = JSON.stringify(browser)) : "";
|
|
114
|
-
|
|
115
|
-
flags.baseURL ? (process.env.BASE_URL = JSON.stringify(baseURL)) : "";
|
|
116
|
-
|
|
117
|
-
flags.maximizeScreen
|
|
118
|
-
? (process.env.MAXIMIZE_SCREEN = flags.maximizeScreen)
|
|
119
|
-
: "";
|
|
120
|
-
|
|
121
|
-
flags.width && console.log("Running width:", width);
|
|
122
|
-
flags.width ? (process.env.WIDTH = width) : "";
|
|
123
|
-
|
|
124
|
-
flags.height && console.log("Running height:", height);
|
|
125
|
-
flags.height ? (process.env.HEIGHT = height) : "";
|
|
126
|
-
|
|
127
|
-
flags.timeout ? (process.env.TIMEOUT = timeout) : "";
|
|
128
|
-
|
|
129
|
-
flags.slowMo ? (process.env.SLOWMO = slowMo) : "";
|
|
130
|
-
|
|
131
|
-
function main() {
|
|
132
|
-
if (flags.help) return showHelp();
|
|
133
|
-
if (flags.version) return showVersion();
|
|
134
|
-
if (flags.create) return createProject(flags.createYes);
|
|
135
|
-
|
|
136
|
-
runTests();
|
|
137
|
-
if (
|
|
138
|
-
flags.reportWithTrace ||
|
|
139
|
-
artesConfig.reportWithTrace ||
|
|
140
|
-
flags.report ||
|
|
141
|
-
artesConfig.report
|
|
142
|
-
)
|
|
143
|
-
generateReport();
|
|
144
|
-
|
|
145
|
-
if (
|
|
146
|
-
fs.existsSync(
|
|
147
|
-
path.join(process.cwd(), "node_modules", "artes", "EXIT_CODE.txt"),
|
|
148
|
-
)
|
|
149
|
-
) {
|
|
150
|
-
const data = fs.readFileSync(
|
|
151
|
-
path.join(process.cwd(), "node_modules", "artes", "EXIT_CODE.txt"),
|
|
152
|
-
"utf8",
|
|
153
|
-
);
|
|
154
|
-
process.env.EXIT_CODE = parseInt(data, 10);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
cleanUp();
|
|
158
|
-
process.exit(process.env.EXIT_CODE);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
main();
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const {
|
|
3
|
+
showHelp,
|
|
4
|
+
showVersion,
|
|
5
|
+
createProject,
|
|
6
|
+
runTests,
|
|
7
|
+
generateReport,
|
|
8
|
+
cleanUp,
|
|
9
|
+
} = require("./src/helper/executers/exporter");
|
|
10
|
+
const fs = require("fs");
|
|
11
|
+
const path = require("path");
|
|
12
|
+
|
|
13
|
+
const configPath = path.resolve(process.cwd(), "artes.config.js");
|
|
14
|
+
|
|
15
|
+
let artesConfig = {};
|
|
16
|
+
|
|
17
|
+
if (fs.existsSync(configPath)) {
|
|
18
|
+
artesConfig = require(configPath);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const args = process.argv.slice(2);
|
|
22
|
+
|
|
23
|
+
const flags = {
|
|
24
|
+
help: args.includes("-h") || args.includes("--help"),
|
|
25
|
+
version: args.includes("-v") || args.includes("--version"),
|
|
26
|
+
create: args.includes("-c") || args.includes("--create"),
|
|
27
|
+
createYes: args.includes("-y") || args.includes("--yes"),
|
|
28
|
+
report: args.includes("-r") || args.includes("--report"),
|
|
29
|
+
reportSuccess: args.includes("--reportSuccess"),
|
|
30
|
+
trace: args.includes("-t") || args.includes("--trace"),
|
|
31
|
+
reportWithTrace: args.includes("-rwt") || args.includes("--reportWithTrace"),
|
|
32
|
+
singleFileReport: args.includes("--singleFileReport"),
|
|
33
|
+
zip: args.includes("--zip"),
|
|
34
|
+
features: args.includes("--features"),
|
|
35
|
+
stepDef: args.includes("--stepDef"),
|
|
36
|
+
tags: args.includes("--tags"),
|
|
37
|
+
env: args.includes("--env"),
|
|
38
|
+
headless: args.includes("--headless"),
|
|
39
|
+
parallel: args.includes("--parallel"),
|
|
40
|
+
retry: args.includes("--retry"),
|
|
41
|
+
dryRun: args.includes("--dryRun"),
|
|
42
|
+
percentage: args.includes("--percentage"),
|
|
43
|
+
browser: args.includes("--browser"),
|
|
44
|
+
baseURL: args.includes("--baseURL"),
|
|
45
|
+
maximizeScreen: args.includes("--maxScreen"),
|
|
46
|
+
width: args.includes("--width"),
|
|
47
|
+
height: args.includes("--height"),
|
|
48
|
+
timeout: args.includes("--timeout"),
|
|
49
|
+
slowMo: args.includes("--slowMo"),
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
const env = args[args.indexOf("--env") + 1];
|
|
53
|
+
const featureFiles = args[args.indexOf("--features") + 1];
|
|
54
|
+
const features = flags.features && featureFiles;
|
|
55
|
+
const stepDef = args[args.indexOf("--stepDef") + 1];
|
|
56
|
+
const tags = args[args.indexOf("--tags") + 1];
|
|
57
|
+
const parallel = args[args.indexOf("--parallel") + 1];
|
|
58
|
+
const retry = args[args.indexOf("--retry") + 1];
|
|
59
|
+
const percentage = args[args.indexOf("--percentage") + 1];
|
|
60
|
+
const browser = args[args.indexOf("--browser") + 1];
|
|
61
|
+
const baseURL = args[args.indexOf("--baseURL") + 1];
|
|
62
|
+
const width = args[args.indexOf("--width") + 1];
|
|
63
|
+
const height = args[args.indexOf("--height") + 1];
|
|
64
|
+
const timeout = args[args.indexOf("--timeout") + 1];
|
|
65
|
+
const slowMo = args[args.indexOf("--slowMo") + 1];
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
flags.env ? (process.env.ENV = env) : ""
|
|
69
|
+
|
|
70
|
+
flags.reportWithTrace ||
|
|
71
|
+
artesConfig.reportWithTrace ||
|
|
72
|
+
flags.report ||
|
|
73
|
+
artesConfig.report
|
|
74
|
+
? (process.env.REPORT_FORMAT = JSON.stringify([
|
|
75
|
+
"allure-cucumberjs/reporter:./allure-results",
|
|
76
|
+
]))
|
|
77
|
+
: "";
|
|
78
|
+
|
|
79
|
+
flags.reportSuccess ? (process.env.REPORT_SUCCESS = true) : "";
|
|
80
|
+
|
|
81
|
+
flags.tags && console.log("Running tags:", tags);
|
|
82
|
+
flags.tags ? (process.env.RUN_TAGS = JSON.stringify(tags)) : "";
|
|
83
|
+
|
|
84
|
+
flags.features && console.log("Running features:", features);
|
|
85
|
+
flags.features ? (process.env.FEATURES = features) : "";
|
|
86
|
+
|
|
87
|
+
flags.stepDef && console.log("Running step definitions:", flags.stepDef);
|
|
88
|
+
flags.stepDef ? (process.env.STEP_DEFINITIONS = stepDef) : "";
|
|
89
|
+
|
|
90
|
+
flags.report ? (process.env.REPORT = true) : "";
|
|
91
|
+
|
|
92
|
+
flags.trace ? (process.env.TRACE = true) : "";
|
|
93
|
+
|
|
94
|
+
flags.reportWithTrace ? (process.env.REPORT_WITH_TRACE = true) : (process.env.REPORT_WITH_TRACE=false);
|
|
95
|
+
|
|
96
|
+
flags.singleFileReport ? (process.env.SINGLE_FILE_REPORT = true) : (process.env.SINGLE_FILE_REPORT=false);
|
|
97
|
+
|
|
98
|
+
flags.zip ? (process.env.ZIP = true) : (process.env.ZIP=false);
|
|
99
|
+
|
|
100
|
+
flags.headless &&
|
|
101
|
+
console.log("Running mode:", flags.headless ? "headless" : "headed");
|
|
102
|
+
flags.headless ? (process.env.MODE = JSON.stringify(true)) : false;
|
|
103
|
+
|
|
104
|
+
flags.parallel ? (process.env.PARALLEL = parallel) : "";
|
|
105
|
+
|
|
106
|
+
flags.retry ? (process.env.RETRY = retry) : "";
|
|
107
|
+
|
|
108
|
+
flags.dryRun ? (process.env.DRYRUN = flags.dryRun) : "";
|
|
109
|
+
|
|
110
|
+
flags.percentage ? (process.env.PERCENTAGE = percentage) : "";
|
|
111
|
+
|
|
112
|
+
flags.browser && console.log("Running browser:", browser);
|
|
113
|
+
flags.browser ? (process.env.BROWSER = JSON.stringify(browser)) : "";
|
|
114
|
+
|
|
115
|
+
flags.baseURL ? (process.env.BASE_URL = JSON.stringify(baseURL)) : "";
|
|
116
|
+
|
|
117
|
+
flags.maximizeScreen
|
|
118
|
+
? (process.env.MAXIMIZE_SCREEN = flags.maximizeScreen)
|
|
119
|
+
: "";
|
|
120
|
+
|
|
121
|
+
flags.width && console.log("Running width:", width);
|
|
122
|
+
flags.width ? (process.env.WIDTH = width) : "";
|
|
123
|
+
|
|
124
|
+
flags.height && console.log("Running height:", height);
|
|
125
|
+
flags.height ? (process.env.HEIGHT = height) : "";
|
|
126
|
+
|
|
127
|
+
flags.timeout ? (process.env.TIMEOUT = timeout) : "";
|
|
128
|
+
|
|
129
|
+
flags.slowMo ? (process.env.SLOWMO = slowMo) : "";
|
|
130
|
+
|
|
131
|
+
function main() {
|
|
132
|
+
if (flags.help) return showHelp();
|
|
133
|
+
if (flags.version) return showVersion();
|
|
134
|
+
if (flags.create) return createProject(flags.createYes);
|
|
135
|
+
|
|
136
|
+
runTests();
|
|
137
|
+
if (
|
|
138
|
+
flags.reportWithTrace ||
|
|
139
|
+
artesConfig.reportWithTrace ||
|
|
140
|
+
flags.report ||
|
|
141
|
+
artesConfig.report
|
|
142
|
+
)
|
|
143
|
+
generateReport();
|
|
144
|
+
|
|
145
|
+
if (
|
|
146
|
+
fs.existsSync(
|
|
147
|
+
path.join(process.cwd(), "node_modules", "artes", "EXIT_CODE.txt"),
|
|
148
|
+
)
|
|
149
|
+
) {
|
|
150
|
+
const data = fs.readFileSync(
|
|
151
|
+
path.join(process.cwd(), "node_modules", "artes", "EXIT_CODE.txt"),
|
|
152
|
+
"utf8",
|
|
153
|
+
);
|
|
154
|
+
process.env.EXIT_CODE = parseInt(data, 10);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
cleanUp();
|
|
158
|
+
process.exit(process.env.EXIT_CODE);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
main();
|
package/index.js
CHANGED
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
const {
|
|
2
|
-
expect,
|
|
3
|
-
Given,
|
|
4
|
-
When,
|
|
5
|
-
Then,
|
|
6
|
-
context,
|
|
7
|
-
element,
|
|
8
|
-
selector,
|
|
9
|
-
saveVar,
|
|
10
|
-
extractVarsFromResponse,
|
|
11
|
-
page,
|
|
12
|
-
request,
|
|
13
|
-
random,
|
|
14
|
-
time,
|
|
15
|
-
resolveVariable,
|
|
16
|
-
} = require("./src/helper/imports/commons");
|
|
17
|
-
const {
|
|
18
|
-
keyboard,
|
|
19
|
-
mouse,
|
|
20
|
-
frame,
|
|
21
|
-
assert,
|
|
22
|
-
elementInteractions,
|
|
23
|
-
api,
|
|
24
|
-
} = require("./src/helper/stepFunctions/exporter");
|
|
25
|
-
|
|
26
|
-
module.exports = {
|
|
27
|
-
expect,
|
|
28
|
-
Given,
|
|
29
|
-
When,
|
|
30
|
-
Then,
|
|
31
|
-
element,
|
|
32
|
-
selector,
|
|
33
|
-
saveVar,
|
|
34
|
-
extractVarsFromResponse,
|
|
35
|
-
resolveVariable,
|
|
36
|
-
context,
|
|
37
|
-
api,
|
|
38
|
-
random,
|
|
39
|
-
time,
|
|
40
|
-
page,
|
|
41
|
-
request,
|
|
42
|
-
api,
|
|
43
|
-
keyboard,
|
|
44
|
-
mouse,
|
|
45
|
-
frame,
|
|
46
|
-
assert,
|
|
47
|
-
elementInteractions,
|
|
48
|
-
};
|
|
1
|
+
const {
|
|
2
|
+
expect,
|
|
3
|
+
Given,
|
|
4
|
+
When,
|
|
5
|
+
Then,
|
|
6
|
+
context,
|
|
7
|
+
element,
|
|
8
|
+
selector,
|
|
9
|
+
saveVar,
|
|
10
|
+
extractVarsFromResponse,
|
|
11
|
+
page,
|
|
12
|
+
request,
|
|
13
|
+
random,
|
|
14
|
+
time,
|
|
15
|
+
resolveVariable,
|
|
16
|
+
} = require("./src/helper/imports/commons");
|
|
17
|
+
const {
|
|
18
|
+
keyboard,
|
|
19
|
+
mouse,
|
|
20
|
+
frame,
|
|
21
|
+
assert,
|
|
22
|
+
elementInteractions,
|
|
23
|
+
api,
|
|
24
|
+
} = require("./src/helper/stepFunctions/exporter");
|
|
25
|
+
|
|
26
|
+
module.exports = {
|
|
27
|
+
expect,
|
|
28
|
+
Given,
|
|
29
|
+
When,
|
|
30
|
+
Then,
|
|
31
|
+
element,
|
|
32
|
+
selector,
|
|
33
|
+
saveVar,
|
|
34
|
+
extractVarsFromResponse,
|
|
35
|
+
resolveVariable,
|
|
36
|
+
context,
|
|
37
|
+
api,
|
|
38
|
+
random,
|
|
39
|
+
time,
|
|
40
|
+
page,
|
|
41
|
+
request,
|
|
42
|
+
api,
|
|
43
|
+
keyboard,
|
|
44
|
+
mouse,
|
|
45
|
+
frame,
|
|
46
|
+
assert,
|
|
47
|
+
elementInteractions,
|
|
48
|
+
};
|
package/package.json
CHANGED
|
@@ -1,51 +1,52 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "artes",
|
|
3
|
-
"version": "1.2.
|
|
4
|
-
"description": "The simplest way to automate UI and API tests using Cucumber-style steps.",
|
|
5
|
-
"main": "index.js",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"test": "cucumber-js --config=cucumber.config.js",
|
|
8
|
-
"createProject": "node ./src/helper/executers/projectCreator.js",
|
|
9
|
-
"clean": "rimraf",
|
|
10
|
-
"publishOnly": "prettier -w . && npm version patch && npm publish"
|
|
11
|
-
},
|
|
12
|
-
"bin": {
|
|
13
|
-
"artes": "./executer.js"
|
|
14
|
-
},
|
|
15
|
-
"publishConfig": {
|
|
16
|
-
"registry": "https://registry.npmjs.org/"
|
|
17
|
-
},
|
|
18
|
-
"author": "VhdAghyv",
|
|
19
|
-
"license": "ISC",
|
|
20
|
-
"dependencies": {
|
|
21
|
-
"@cucumber/cucumber": "11.0.1",
|
|
22
|
-
"@cucumber/messages": "26.0.1",
|
|
23
|
-
"@faker-js/faker": "9.8.0",
|
|
24
|
-
"@types/node": "22.9.0",
|
|
25
|
-
"ajv": "8.17.1",
|
|
26
|
-
"allure-commandline": "2.30.0",
|
|
27
|
-
"allure-cucumberjs": "3.0.5",
|
|
28
|
-
"allure-js-commons": "3.0.5",
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
"
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "artes",
|
|
3
|
+
"version": "1.2.18",
|
|
4
|
+
"description": "The simplest way to automate UI and API tests using Cucumber-style steps.",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"test": "cucumber-js --config=cucumber.config.js",
|
|
8
|
+
"createProject": "node ./src/helper/executers/projectCreator.js",
|
|
9
|
+
"clean": "rimraf",
|
|
10
|
+
"publishOnly": "prettier -w . && npm version patch && npm publish"
|
|
11
|
+
},
|
|
12
|
+
"bin": {
|
|
13
|
+
"artes": "./executer.js"
|
|
14
|
+
},
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"registry": "https://registry.npmjs.org/"
|
|
17
|
+
},
|
|
18
|
+
"author": "VhdAghyv",
|
|
19
|
+
"license": "ISC",
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"@cucumber/cucumber": "11.0.1",
|
|
22
|
+
"@cucumber/messages": "26.0.1",
|
|
23
|
+
"@faker-js/faker": "9.8.0",
|
|
24
|
+
"@types/node": "22.9.0",
|
|
25
|
+
"ajv": "8.17.1",
|
|
26
|
+
"allure-commandline": "2.30.0",
|
|
27
|
+
"allure-cucumberjs": "3.0.5",
|
|
28
|
+
"allure-js-commons": "3.0.5",
|
|
29
|
+
"archiver": "^7.0.1",
|
|
30
|
+
"dayjs": "1.11.13",
|
|
31
|
+
"deasync": "^0.1.31",
|
|
32
|
+
"playwright": "1.52.0",
|
|
33
|
+
"rimraf": "6.0.1"
|
|
34
|
+
},
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "git+https://github.com/4gayev1/Artes"
|
|
38
|
+
},
|
|
39
|
+
"bugs": {
|
|
40
|
+
"url": "https://github.com/4gayev1/Artes/issues"
|
|
41
|
+
},
|
|
42
|
+
"homepage": "https://github.com/4gayev1/Artes/blob/main/README.md",
|
|
43
|
+
"keywords": [
|
|
44
|
+
"kdt",
|
|
45
|
+
"automation",
|
|
46
|
+
"playwright",
|
|
47
|
+
"cucumber",
|
|
48
|
+
"test automation",
|
|
49
|
+
"end-to-end",
|
|
50
|
+
"API testing"
|
|
51
|
+
]
|
|
52
|
+
}
|
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
const { chromium, firefox, webkit } = require("playwright");
|
|
2
|
-
const cucumberConfig = require("../../../cucumber.config.js");
|
|
3
|
-
|
|
4
|
-
const invokeBrowser = async () => {
|
|
5
|
-
let browser;
|
|
6
|
-
|
|
7
|
-
let baseURL = "";
|
|
8
|
-
|
|
9
|
-
if (typeof cucumberConfig.baseURL === "object") {
|
|
10
|
-
const env = (cucumberConfig.env || "").trim();
|
|
11
|
-
baseURL = cucumberConfig.baseURL[env];
|
|
12
|
-
} else {
|
|
13
|
-
baseURL = cucumberConfig.baseURL;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const options = {
|
|
17
|
-
headless: cucumberConfig.browser.headless,
|
|
18
|
-
slowMo: cucumberConfig.browser.slowMo,
|
|
19
|
-
args: [cucumberConfig.browser.maximizeScreen ? "--start-maximized" : ""],
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
const browserType =
|
|
23
|
-
cucumberConfig.browser.browserType.toLowerCase() || "chrome";
|
|
24
|
-
|
|
25
|
-
const browserContextOptions = {
|
|
26
|
-
baseURL: baseURL,
|
|
27
|
-
viewport: cucumberConfig.browser.maximizeScreen
|
|
28
|
-
? null
|
|
29
|
-
: cucumberConfig.browser.viewport,
|
|
30
|
-
recordVideo: {
|
|
31
|
-
dir: "./test-results/visualReport/",
|
|
32
|
-
size: cucumberConfig.browser.viewport,
|
|
33
|
-
},
|
|
34
|
-
ignoreHTTPSErrors: true,
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
switch (browserType) {
|
|
38
|
-
case "chrome":
|
|
39
|
-
browser = await chromium.launch(options);
|
|
40
|
-
break;
|
|
41
|
-
case "firefox":
|
|
42
|
-
browser = await firefox.launch(options);
|
|
43
|
-
break;
|
|
44
|
-
case "webkit":
|
|
45
|
-
browser = await webkit.launch(options);
|
|
46
|
-
break;
|
|
47
|
-
default:
|
|
48
|
-
throw new Error(
|
|
49
|
-
"Please set the proper browser!\n Options: chrome, firefox, webkit",
|
|
50
|
-
);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
const context = await browser.newContext(browserContextOptions);
|
|
54
|
-
|
|
55
|
-
return {
|
|
56
|
-
browser: browser,
|
|
57
|
-
context: context,
|
|
58
|
-
};
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
module.exports = {
|
|
62
|
-
invokeBrowser,
|
|
63
|
-
};
|
|
1
|
+
const { chromium, firefox, webkit } = require("playwright");
|
|
2
|
+
const cucumberConfig = require("../../../cucumber.config.js");
|
|
3
|
+
|
|
4
|
+
const invokeBrowser = async () => {
|
|
5
|
+
let browser;
|
|
6
|
+
|
|
7
|
+
let baseURL = "";
|
|
8
|
+
|
|
9
|
+
if (typeof cucumberConfig.baseURL === "object") {
|
|
10
|
+
const env = (cucumberConfig.env || "").trim();
|
|
11
|
+
baseURL = cucumberConfig.baseURL[env];
|
|
12
|
+
} else {
|
|
13
|
+
baseURL = cucumberConfig.baseURL;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const options = {
|
|
17
|
+
headless: cucumberConfig.browser.headless,
|
|
18
|
+
slowMo: cucumberConfig.browser.slowMo,
|
|
19
|
+
args: [cucumberConfig.browser.maximizeScreen ? "--start-maximized" : ""],
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const browserType =
|
|
23
|
+
cucumberConfig.browser.browserType.toLowerCase() || "chrome";
|
|
24
|
+
|
|
25
|
+
const browserContextOptions = {
|
|
26
|
+
baseURL: baseURL,
|
|
27
|
+
viewport: cucumberConfig.browser.maximizeScreen
|
|
28
|
+
? null
|
|
29
|
+
: cucumberConfig.browser.viewport,
|
|
30
|
+
recordVideo: {
|
|
31
|
+
dir: "./test-results/visualReport/",
|
|
32
|
+
size: cucumberConfig.browser.viewport,
|
|
33
|
+
},
|
|
34
|
+
ignoreHTTPSErrors: true,
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
switch (browserType) {
|
|
38
|
+
case "chrome":
|
|
39
|
+
browser = await chromium.launch(options);
|
|
40
|
+
break;
|
|
41
|
+
case "firefox":
|
|
42
|
+
browser = await firefox.launch(options);
|
|
43
|
+
break;
|
|
44
|
+
case "webkit":
|
|
45
|
+
browser = await webkit.launch(options);
|
|
46
|
+
break;
|
|
47
|
+
default:
|
|
48
|
+
throw new Error(
|
|
49
|
+
"Please set the proper browser!\n Options: chrome, firefox, webkit",
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const context = await browser.newContext(browserContextOptions);
|
|
54
|
+
|
|
55
|
+
return {
|
|
56
|
+
browser: browser,
|
|
57
|
+
context: context,
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
module.exports = {
|
|
62
|
+
invokeBrowser,
|
|
63
|
+
};
|