├── .gitignore
├── .idea
├── .gitignore
├── dbnavigator.xml
├── encodings.xml
├── misc.xml
└── vcs.xml
├── README.md
├── allure-results
├── 1f19df9c-89a8-4b44-bcb3-fb7d858df88a-container.json
├── 26af3ff4-c059-4c1e-bb50-45c21483bb29-result.json
├── 3af8c556-3226-43fd-ad30-6ae87b250e63-container.json
├── 7fd01489-b497-473d-84c1-5c9897df08d6-container.json
├── 89e5cf42-bbc3-46a1-a918-743c7b0f6ebf-container.json
├── 9efa31ef-6dd8-4bf0-b088-49230ca9495d-container.json
├── a09f1974-b1c7-44e2-a86b-a9664d3ac22f-container.json
├── a83381b3-f17b-4683-bb57-fbe0e2583ab5-result.json
├── c684e1d4-a3df-4ffc-87f0-d8c2a8ab2651-container.json
├── d18e067a-c728-47b2-b5ac-f7f755d43606-result.json
├── db905e13-7e2f-4066-924a-001c5f2ac417-result.json
└── ff7ed05e-d8e4-4bef-bbba-3bcad7ba73c4-result.json
├── pom.xml
└── src
└── test
└── java
├── callers
└── RestfullCreateToken.feature
├── data
├── createBooking.json
├── examples.csv
├── generate.js
├── postUser.json
├── token.json
└── update.json
├── feature
├── GET_goldCurrencyAndStockMarketAPI.feature
├── GET_onDutyPharmacyAPI.feature
├── GET_turkeyDieselPriceAPI.feature
├── PATCHbooking.feature
├── POST_CreateBookingAPI.feature
├── POST_operationsAboutUserAPI.feature
├── PUTbooking.feature
└── PetStoreGET.feature~
├── karate-config.js
├── logback-test.xml
└── testRunner
└── TestRunner.java
/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 | !.mvn/wrapper/maven-wrapper.jar
3 | !**/src/main/**/target/
4 | !**/src/test/**/target/
5 |
6 | ### IntelliJ IDEA ###
7 | .idea/modules.xml
8 | .idea/jarRepositories.xml
9 | .idea/compiler.xml
10 | .idea/libraries/
11 | *.iws
12 | *.iml
13 | *.ipr
14 |
15 | ### Eclipse ###
16 | .apt_generated
17 | .classpath
18 | .factorypath
19 | .project
20 | .settings
21 | .springBeans
22 | .sts4-cache
23 |
24 | ### NetBeans ###
25 | /nbproject/private/
26 | /nbbuild/
27 | /dist/
28 | /nbdist/
29 | /.nb-gradle/
30 | build/
31 | !**/src/main/**/build/
32 | !**/src/test/**/build/
33 |
34 | ### VS Code ###
35 | .vscode/
36 |
37 | ### Mac OS ###
38 | .DS_Store
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/.idea/dbnavigator.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 |
271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
291 |
292 |
293 |
294 |
295 |
296 |
297 |
298 |
299 |
300 |
301 |
302 |
303 |
304 |
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 |
313 |
314 |
315 |
316 |
317 |
318 |
319 |
320 |
321 |
322 |
323 |
324 |
325 |
326 |
327 |
328 |
329 |
330 |
331 |
332 |
333 |
334 |
335 |
336 |
337 |
338 |
339 |
340 |
341 |
342 |
343 |
344 |
345 |
346 |
347 |
348 |
349 |
350 |
351 |
352 |
353 |
354 |
355 |
356 |
357 |
358 |
359 |
360 |
361 |
362 |
363 |
364 |
365 |
366 |
367 |
368 |
369 |
370 |
371 |
372 |
373 |
374 |
375 |
376 |
377 |
378 |
379 |
380 |
381 |
382 |
383 |
384 |
385 |
386 |
387 |
388 |
389 |
390 |
391 |
392 |
393 |
394 |
395 |
396 |
397 |
398 |
399 |
400 |
401 |
402 |
403 |
404 |
405 |
406 |
407 |
408 |
409 |
410 |
411 |
412 |
413 |
414 |
415 |
416 |
417 |
418 |
419 |
420 |
421 |
422 |
423 |
424 |
425 |
426 |
427 |
428 |
--------------------------------------------------------------------------------
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Karate API Test Automation Project
2 |
3 | This project is an API test automation suite built with [Karate Framework](https://karatelabs.io/). It includes various `GET`, `POST`, `PATCH`, and `DELETE` request tests against multiple public APIs.
4 |
5 | ## 🌐 APIs Used
6 |
7 | - **Pet Store API** – `https://petstore.swagger.io/v2/`
8 | - **Another Host API** – `https://another-host.com/v1/`
9 | - **Restful Booker API** – `https://restful-booker.herokuapp.com/`
10 | - **Fuel Prices API (CollectAPI)** – `https://api.collectapi.com/`
11 | - **Pharmacy API (CollectAPI)** – `https://api.collectapi.com/`
12 | - **Gold & Stock Market API (CollectAPI)** – `https://api.collectapi.com/`
13 |
14 | ## ✅ Features
15 |
16 | - End-to-end API testing with Karate DSL
17 | - Covers positive and negative test cases
18 | - Uses external data sources (JSON, CSV, JS)
19 | - Organized folder structure for maintainability
20 |
21 |
22 | ## ☕ Java Version
23 |
24 | - Java 11 (Recommended: [Eclipse Temurin 11](https://adoptium.net/en-GB/temurin/releases/?version=11))
25 |
26 | ## 📁 Project Structure
27 |
28 | ```
29 | 📁 KarateFramework
30 | ├── .idea
31 | ├── src
32 | │ ├── main
33 | │ │ ├── java
34 | │ │ ├── resources
35 | │ ├── test
36 | │ │ ├── java
37 | │ │ │ ├── callers
38 | │ │ │ ├── data
39 | │ │ │ ├── feature
40 | │ │ │ ├── performanceRunners
41 | │ │ │ ├── testRunner
42 | │ │ │ ├── utilities
43 | │ │ ├── karate-config.js
44 | │ │ ├── logback-test.xml
45 | ├── target
46 | ├── .gitignore
47 | ├── pom.xml
48 | ├── External Libraries
49 | ├── Scratches and Consoles
50 |
--------------------------------------------------------------------------------
/allure-results/1f19df9c-89a8-4b44-bcb3-fb7d858df88a-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"1f19df9c-89a8-4b44-bcb3-fb7d858df88a","name":"testAll()","children":["a83381b3-f17b-4683-bb57-fbe0e2583ab5"],"befores":[],"afters":[],"start":1747751378298,"stop":1747751378902}
--------------------------------------------------------------------------------
/allure-results/26af3ff4-c059-4c1e-bb50-45c21483bb29-result.json:
--------------------------------------------------------------------------------
1 | {"uuid":"26af3ff4-c059-4c1e-bb50-45c21483bb29","historyId":"e462bd2d433f0664011d62cdf40c39c3","testCaseId":"[engine:junit-jupiter]/[class:testrunner.TestRunner]/[test-factory:testSmoke()]","testCaseName":"testSmoke()","fullName":"testrunner.TestRunner.testSmoke","labels":[{"name":"junit.platform.uniqueid","value":"[engine:junit-jupiter]/[class:testrunner.TestRunner]/[test-factory:testSmoke()]"},{"name":"host","value":"DESKTOP-3SRMBP7"},{"name":"thread","value":"14368@DESKTOP-3SRMBP7.main(1)"},{"name":"framework","value":"junit-platform"},{"name":"language","value":"java"},{"name":"package","value":"testrunner.TestRunner"},{"name":"testClass","value":"testrunner.TestRunner"},{"name":"testMethod","value":"testSmoke"},{"name":"suite","value":"testrunner.TestRunner"},{"name":"AS_ID","value":"-1"}],"links":[],"name":"testSmoke()","status":"failed","statusDetails":{"known":false,"muted":false,"flaky":false,"message":"no features or scenarios found: [classpath:feature]","trace":"org.opentest4j.AssertionFailedError: no features or scenarios found: [classpath:feature]\r\n\tat org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:39)\r\n\tat org.junit.jupiter.api.Assertions.fail(Assertions.java:134)\r\n\tat com.intuit.karate.junit5.Karate.iterator(Karate.java:72)\r\n\tat java.base/java.lang.Iterable.spliterator(Iterable.java:101)\r\n\tat org.junit.platform.commons.util.CollectionUtils.toStream(CollectionUtils.java:153)\r\n\tat org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.toDynamicNodeStream(TestFactoryTestDescriptor.java:124)\r\n\tat org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.lambda$invokeTestMethod$1(TestFactoryTestDescriptor.java:101)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.invokeTestMethod(TestFactoryTestDescriptor.java:95)\r\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)\r\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\r\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\r\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\r\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\r\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\r\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\r\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\r\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\r\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)\r\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)\r\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54)\r\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)\r\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)\r\n\tat org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)\r\n\tat org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53)\r\n\tat com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:57)\r\n\tat com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)\r\n\tat com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)\r\n\tat com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)\r\n\tat com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)\r\n\tat com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)\r\n"},"stage":"finished","description":"","steps":[],"attachments":[],"parameters":[],"start":1747751836407,"stop":1747751836408}
--------------------------------------------------------------------------------
/allure-results/3af8c556-3226-43fd-ad30-6ae87b250e63-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"3af8c556-3226-43fd-ad30-6ae87b250e63","name":"testRegression()","children":["ff7ed05e-d8e4-4bef-bbba-3bcad7ba73c4"],"befores":[],"afters":[],"start":1747751379157,"stop":1747751379259}
--------------------------------------------------------------------------------
/allure-results/7fd01489-b497-473d-84c1-5c9897df08d6-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"7fd01489-b497-473d-84c1-5c9897df08d6","name":"testSmoke()","children":["26af3ff4-c059-4c1e-bb50-45c21483bb29"],"befores":[],"afters":[],"start":1747751835852,"stop":1747751836460}
--------------------------------------------------------------------------------
/allure-results/89e5cf42-bbc3-46a1-a918-743c7b0f6ebf-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"89e5cf42-bbc3-46a1-a918-743c7b0f6ebf","name":"testWithoutSmoke()","children":["db905e13-7e2f-4066-924a-001c5f2ac417"],"befores":[],"afters":[],"start":1747751379060,"stop":1747751379155}
--------------------------------------------------------------------------------
/allure-results/9efa31ef-6dd8-4bf0-b088-49230ca9495d-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"9efa31ef-6dd8-4bf0-b088-49230ca9495d","name":"testSmoke()","children":["d18e067a-c728-47b2-b5ac-f7f755d43606"],"befores":[],"afters":[],"start":1747751378911,"stop":1747751379055}
--------------------------------------------------------------------------------
/allure-results/a09f1974-b1c7-44e2-a86b-a9664d3ac22f-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"a09f1974-b1c7-44e2-a86b-a9664d3ac22f","name":"TestRunner","children":[],"befores":[],"afters":[],"start":1747751378291,"stop":1747751379263}
--------------------------------------------------------------------------------
/allure-results/a83381b3-f17b-4683-bb57-fbe0e2583ab5-result.json:
--------------------------------------------------------------------------------
1 | {"uuid":"a83381b3-f17b-4683-bb57-fbe0e2583ab5","historyId":"625a97b7c5fe3fb934dd5727dfa170aa","testCaseId":"[engine:junit-jupiter]/[class:testRunner.TestRunner]/[test-factory:testAll()]","testCaseName":"testAll()","fullName":"testRunner.TestRunner.testAll","labels":[{"name":"junit.platform.uniqueid","value":"[engine:junit-jupiter]/[class:testRunner.TestRunner]/[test-factory:testAll()]"},{"name":"host","value":"DESKTOP-3SRMBP7"},{"name":"thread","value":"9192@DESKTOP-3SRMBP7.main(1)"},{"name":"framework","value":"junit-platform"},{"name":"language","value":"java"},{"name":"package","value":"testRunner.TestRunner"},{"name":"testClass","value":"testRunner.TestRunner"},{"name":"testMethod","value":"testAll"},{"name":"suite","value":"testRunner.TestRunner"},{"name":"AS_ID","value":"-1"}],"links":[],"name":"testAll()","status":"failed","statusDetails":{"known":false,"muted":false,"flaky":false,"message":"no features or scenarios found: [classpath:feature]","trace":"org.opentest4j.AssertionFailedError: no features or scenarios found: [classpath:feature]\r\n\tat org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:39)\r\n\tat org.junit.jupiter.api.Assertions.fail(Assertions.java:117)\r\n\tat com.intuit.karate.junit5.Karate.iterator(Karate.java:72)\r\n\tat java.base/java.lang.Iterable.spliterator(Iterable.java:101)\r\n\tat org.junit.platform.commons.util.CollectionUtils.toStream(CollectionUtils.java:153)\r\n\tat org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.toDynamicNodeStream(TestFactoryTestDescriptor.java:122)\r\n\tat org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.lambda$invokeTestMethod$1(TestFactoryTestDescriptor.java:99)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.invokeTestMethod(TestFactoryTestDescriptor.java:93)\r\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:131)\r\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:65)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129)\r\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84)\r\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\r\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129)\r\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84)\r\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\r\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129)\r\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84)\r\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)\r\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)\r\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54)\r\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)\r\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)\r\n\tat org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)\r\n\tat org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53)\r\n\tat com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:57)\r\n\tat com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)\r\n\tat com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)\r\n\tat com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)\r\n\tat com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)\r\n\tat com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)\r\n"},"stage":"finished","description":"","steps":[],"attachments":[],"parameters":[],"start":1747751378853,"stop":1747751378853}
--------------------------------------------------------------------------------
/allure-results/c684e1d4-a3df-4ffc-87f0-d8c2a8ab2651-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"c684e1d4-a3df-4ffc-87f0-d8c2a8ab2651","name":"TestRunner","children":[],"befores":[],"afters":[],"start":1747751835843,"stop":1747751836470}
--------------------------------------------------------------------------------
/allure-results/d18e067a-c728-47b2-b5ac-f7f755d43606-result.json:
--------------------------------------------------------------------------------
1 | {"uuid":"d18e067a-c728-47b2-b5ac-f7f755d43606","historyId":"e5520cbd4abd04c8817e8bef6867cbab","testCaseId":"[engine:junit-jupiter]/[class:testRunner.TestRunner]/[test-factory:testSmoke()]","testCaseName":"testSmoke()","fullName":"testRunner.TestRunner.testSmoke","labels":[{"name":"junit.platform.uniqueid","value":"[engine:junit-jupiter]/[class:testRunner.TestRunner]/[test-factory:testSmoke()]"},{"name":"host","value":"DESKTOP-3SRMBP7"},{"name":"thread","value":"9192@DESKTOP-3SRMBP7.main(1)"},{"name":"framework","value":"junit-platform"},{"name":"language","value":"java"},{"name":"package","value":"testRunner.TestRunner"},{"name":"testClass","value":"testRunner.TestRunner"},{"name":"testMethod","value":"testSmoke"},{"name":"suite","value":"testRunner.TestRunner"},{"name":"AS_ID","value":"-1"}],"links":[],"name":"testSmoke()","status":"failed","statusDetails":{"known":false,"muted":false,"flaky":false,"message":"no features or scenarios found: [classpath:feature]","trace":"org.opentest4j.AssertionFailedError: no features or scenarios found: [classpath:feature]\r\n\tat org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:39)\r\n\tat org.junit.jupiter.api.Assertions.fail(Assertions.java:117)\r\n\tat com.intuit.karate.junit5.Karate.iterator(Karate.java:72)\r\n\tat java.base/java.lang.Iterable.spliterator(Iterable.java:101)\r\n\tat org.junit.platform.commons.util.CollectionUtils.toStream(CollectionUtils.java:153)\r\n\tat org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.toDynamicNodeStream(TestFactoryTestDescriptor.java:122)\r\n\tat org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.lambda$invokeTestMethod$1(TestFactoryTestDescriptor.java:99)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.invokeTestMethod(TestFactoryTestDescriptor.java:93)\r\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:131)\r\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:65)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129)\r\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84)\r\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\r\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129)\r\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84)\r\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\r\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129)\r\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84)\r\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)\r\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)\r\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54)\r\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)\r\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)\r\n\tat org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)\r\n\tat org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53)\r\n\tat com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:57)\r\n\tat com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)\r\n\tat com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)\r\n\tat com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)\r\n\tat com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)\r\n\tat com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)\r\n"},"stage":"finished","description":"","steps":[],"attachments":[],"parameters":[],"start":1747751379054,"stop":1747751379054}
--------------------------------------------------------------------------------
/allure-results/db905e13-7e2f-4066-924a-001c5f2ac417-result.json:
--------------------------------------------------------------------------------
1 | {"uuid":"db905e13-7e2f-4066-924a-001c5f2ac417","historyId":"66de120fbc10096f6d8580aacd707518","testCaseId":"[engine:junit-jupiter]/[class:testRunner.TestRunner]/[test-factory:testWithoutSmoke()]","testCaseName":"testWithoutSmoke()","fullName":"testRunner.TestRunner.testWithoutSmoke","labels":[{"name":"junit.platform.uniqueid","value":"[engine:junit-jupiter]/[class:testRunner.TestRunner]/[test-factory:testWithoutSmoke()]"},{"name":"host","value":"DESKTOP-3SRMBP7"},{"name":"thread","value":"9192@DESKTOP-3SRMBP7.main(1)"},{"name":"framework","value":"junit-platform"},{"name":"language","value":"java"},{"name":"package","value":"testRunner.TestRunner"},{"name":"testClass","value":"testRunner.TestRunner"},{"name":"testMethod","value":"testWithoutSmoke"},{"name":"suite","value":"testRunner.TestRunner"},{"name":"AS_ID","value":"-1"}],"links":[],"name":"testWithoutSmoke()","status":"failed","statusDetails":{"known":false,"muted":false,"flaky":false,"message":"no features or scenarios found: [classpath:feature]","trace":"org.opentest4j.AssertionFailedError: no features or scenarios found: [classpath:feature]\r\n\tat org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:39)\r\n\tat org.junit.jupiter.api.Assertions.fail(Assertions.java:117)\r\n\tat com.intuit.karate.junit5.Karate.iterator(Karate.java:72)\r\n\tat java.base/java.lang.Iterable.spliterator(Iterable.java:101)\r\n\tat org.junit.platform.commons.util.CollectionUtils.toStream(CollectionUtils.java:153)\r\n\tat org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.toDynamicNodeStream(TestFactoryTestDescriptor.java:122)\r\n\tat org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.lambda$invokeTestMethod$1(TestFactoryTestDescriptor.java:99)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.invokeTestMethod(TestFactoryTestDescriptor.java:93)\r\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:131)\r\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:65)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129)\r\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84)\r\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\r\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129)\r\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84)\r\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\r\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129)\r\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84)\r\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)\r\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)\r\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54)\r\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)\r\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)\r\n\tat org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)\r\n\tat org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53)\r\n\tat com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:57)\r\n\tat com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)\r\n\tat com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)\r\n\tat com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)\r\n\tat com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)\r\n\tat com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)\r\n"},"stage":"finished","description":"","steps":[],"attachments":[],"parameters":[],"start":1747751379154,"stop":1747751379154}
--------------------------------------------------------------------------------
/allure-results/ff7ed05e-d8e4-4bef-bbba-3bcad7ba73c4-result.json:
--------------------------------------------------------------------------------
1 | {"uuid":"ff7ed05e-d8e4-4bef-bbba-3bcad7ba73c4","historyId":"d172e98c95904ab77d6986fbedbd8616","testCaseId":"[engine:junit-jupiter]/[class:testRunner.TestRunner]/[test-factory:testRegression()]","testCaseName":"testRegression()","fullName":"testRunner.TestRunner.testRegression","labels":[{"name":"junit.platform.uniqueid","value":"[engine:junit-jupiter]/[class:testRunner.TestRunner]/[test-factory:testRegression()]"},{"name":"host","value":"DESKTOP-3SRMBP7"},{"name":"thread","value":"9192@DESKTOP-3SRMBP7.main(1)"},{"name":"framework","value":"junit-platform"},{"name":"language","value":"java"},{"name":"package","value":"testRunner.TestRunner"},{"name":"testClass","value":"testRunner.TestRunner"},{"name":"testMethod","value":"testRegression"},{"name":"suite","value":"testRunner.TestRunner"},{"name":"AS_ID","value":"-1"}],"links":[],"name":"testRegression()","status":"failed","statusDetails":{"known":false,"muted":false,"flaky":false,"message":"no features or scenarios found: [classpath:feature]","trace":"org.opentest4j.AssertionFailedError: no features or scenarios found: [classpath:feature]\r\n\tat org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:39)\r\n\tat org.junit.jupiter.api.Assertions.fail(Assertions.java:117)\r\n\tat com.intuit.karate.junit5.Karate.iterator(Karate.java:72)\r\n\tat java.base/java.lang.Iterable.spliterator(Iterable.java:101)\r\n\tat org.junit.platform.commons.util.CollectionUtils.toStream(CollectionUtils.java:153)\r\n\tat org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.toDynamicNodeStream(TestFactoryTestDescriptor.java:122)\r\n\tat org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.lambda$invokeTestMethod$1(TestFactoryTestDescriptor.java:99)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.invokeTestMethod(TestFactoryTestDescriptor.java:93)\r\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:131)\r\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:65)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129)\r\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84)\r\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\r\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129)\r\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84)\r\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\r\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129)\r\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127)\r\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126)\r\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84)\r\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)\r\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)\r\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102)\r\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54)\r\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)\r\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)\r\n\tat org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)\r\n\tat org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53)\r\n\tat com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:57)\r\n\tat com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)\r\n\tat com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)\r\n\tat com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)\r\n\tat com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)\r\n\tat com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)\r\n"},"stage":"finished","description":"","steps":[],"attachments":[],"parameters":[],"start":1747751379258,"stop":1747751379258}
--------------------------------------------------------------------------------
/pom.xml:
--------------------------------------------------------------------------------
1 |
3 | 4.0.0
4 |
5 | com.mycompany
6 | webinar
7 | 1.0-SNAPSHOT
8 | jar
9 |
10 |
11 | UTF-8
12 | 1.8
13 | 3.8.1
14 | 2.22.2
15 | 1.3.1
16 |
17 |
18 |
19 |
20 | com.intuit.karate
21 | karate-junit5
22 | ${karate.version}
23 | test
24 |
25 |
26 |
27 | net.masterthought
28 | cucumber-reporting
29 | 5.0.0
30 | test
31 |
32 |
33 | junit
34 | junit
35 | 4.13.2
36 | test
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | src/test/java
45 |
46 | **/*.java
47 |
48 |
49 |
50 |
51 |
52 | org.apache.maven.plugins
53 | maven-compiler-plugin
54 | ${maven.compiler.version}
55 |
56 | UTF-8
57 | ${java.version}
58 | ${java.version}
59 | -Werror
60 |
61 |
62 |
63 | org.apache.maven.plugins
64 | maven-surefire-plugin
65 | ${maven.surefire.version}
66 |
67 | -Dfile.encoding=UTF-8
68 |
69 |
70 |
71 |
72 |
73 |
--------------------------------------------------------------------------------
/src/test/java/callers/RestfullCreateToken.feature:
--------------------------------------------------------------------------------
1 | Feature: Restfull API Create Token
2 |
3 | Scenario: Create Token
4 | Given url restfulBaseUrl
5 | And path 'auth'
6 | And header Content-Type = 'application/json'
7 | * def requestBody = read('classpath:data/token.json')
8 | And request requestBody
9 | And method POST
10 | And print response
11 | Then status 200
--------------------------------------------------------------------------------
/src/test/java/data/createBooking.json:
--------------------------------------------------------------------------------
1 | {
2 | "firstname" : "John",
3 | "lastname" : "Doe",
4 | "totalprice" : 1000,
5 | "depositpaid" : true,
6 | "bookingdates" : {
7 | "checkin" : "2025-05-19",
8 | "checkout" : "2025-05-22"
9 | },
10 | "additionalneeds" : "Breakfast"
11 | }
--------------------------------------------------------------------------------
/src/test/java/data/examples.csv:
--------------------------------------------------------------------------------
1 | id
2 | 250
3 | 251
4 | 252
5 | 253
6 |
--------------------------------------------------------------------------------
/src/test/java/data/generate.js:
--------------------------------------------------------------------------------
1 | function a(length) {
2 | var result = '';
3 | var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
4 | var charactersLength = characters.length;
5 | for (var i = 0; i < length; i++) {
6 | result += characters.charAt(Math.floor(Math.random() * charactersLength));
7 | }
8 | return result;
9 | }
10 |
--------------------------------------------------------------------------------
/src/test/java/data/postUser.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 0,
4 | "username": "johndoe",
5 | "firstName": "John",
6 | "lastName": "Doe",
7 | "email": "johndoe@gmail.com",
8 | "password": "practice123",
9 | "phone": "05055050505",
10 | "userStatus": 1
11 | }
12 | ]
--------------------------------------------------------------------------------
/src/test/java/data/token.json:
--------------------------------------------------------------------------------
1 | {
2 | "username" : "admin",
3 | "password" : "password123"
4 | }
--------------------------------------------------------------------------------
/src/test/java/data/update.json:
--------------------------------------------------------------------------------
1 | {
2 | "firstname" : "Jack",
3 | "lastname" : "Sparrow",
4 | "totalprice" : 15,
5 | "depositpaid" : true,
6 | "bookingdates" : {
7 | "checkin" : "2025-06-20",
8 | "checkout" : "2025-06-25"
9 | },
10 | "additionalneeds" : "Breakfast"
11 | }
--------------------------------------------------------------------------------
/src/test/java/feature/GET_goldCurrencyAndStockMarketAPI.feature:
--------------------------------------------------------------------------------
1 | Feature: Retrieve financial data from Gold, Currency, and Stock Market API
2 |
3 | Background:
4 |
5 | * def token = collectApiToken
6 | Given url goldStockMarketBaseUrl
7 | And path 'economy', 'currencyToAll'
8 | And header Authorization = 'apikey ' + token
9 | And header content-type = 'application/json'
10 |
11 | Scenario: Send GET request and verify success is true
12 |
13 | And params { int: 10 , base: 'USD' }
14 | When method GET
15 | And print response
16 | Then match response.success == true
17 | Then status 200
18 |
19 | Scenario: Verify that the data contains Argentine Peso
20 | And params { int: 10 , base: 'USD' }
21 | When method GET
22 | And print response
23 | Then match response.result.data[0].name == 'Argentine Peso'
24 |
25 | Scenario: Verify that 1 USD equals 1.550903 Australian Dollar
26 | And params { int: 10 , base: 'USD' }
27 | When method GET
28 | And print response
29 | Then assert response.result.data[1].rate > 1.4
30 | And assert response.result.data[1].rate < 1.7
31 |
32 |
33 |
--------------------------------------------------------------------------------
/src/test/java/feature/GET_onDutyPharmacyAPI.feature:
--------------------------------------------------------------------------------
1 | Feature: Retrieve on-duty pharmacies from the Pharmacy on Duty API
2 |
3 | Background:
4 | * def token = collectApiToken
5 | Given url pharmacyBaseUrl
6 | And path 'health', 'dutyPharmacy'
7 | And header Authorization = 'apikey ' + token
8 | And header content-type = 'application/json'
9 |
10 | Scenario: Send GET request for on-duty pharmacies in Cankaya, Ankara and verify success is true
11 | And params { il: 'ankara', ilce: 'çankaya' }
12 | When method GET
13 | And print response
14 | Then match response.success == true
15 | Then status 200
16 |
17 | Scenario: Verify on-duty pharmacies in Cankaya, Ankara have valid structure
18 | And params { il: 'ankara', ilce: 'çankaya' }
19 | When method GET
20 | And print response
21 | Then status 200
22 | And match response.success == true
23 | And match response.result != [] # Liste isnt empty check!
24 | And match each response.result contains {name: '#string',address: '#string',dist: '#string',phone: '#string',loc: '#string'}
--------------------------------------------------------------------------------
/src/test/java/feature/GET_turkeyDieselPriceAPI.feature:
--------------------------------------------------------------------------------
1 | Feature: Retrieve fuel prices from the Fuel API
2 |
3 | Background:
4 | * def token = collectApiToken
5 | Given url fuelBaseUrl
6 | And path 'gasPrice','turkeyDiesel'
7 | And header Authorization = 'apikey ' + token
8 | And header content-type = 'application/json'
9 |
10 | Scenario: Get current fuel prices for a specific city
11 |
12 | And param city = 'istanbul'
13 | And param district = 'kadikoy'
14 | When method GET
15 | And print response
16 | Then status 200
17 |
18 | Scenario: Check Seferihisar, Izmir has at least one diesel price
19 | And params { city: 'izmir', district: 'seferihisar' }
20 | When method GET
21 | Then status 200
22 | Then match response.success == true
23 | * def hasDiesel = response.result.filter(x => x.dizel != null).length > 0
24 | Then assert hasDiesel
25 |
26 | Scenario: Check Petrol Ofisi diesel price exists in Cankaya, Ankara
27 | And params { city: 'ankara', district: 'cankaya' }
28 | When method GET
29 | Then status 200
30 | Then match response.success == true
31 | * def po = response.result.filter(x => x.marka == 'Petrol Ofisi')[0]
32 | Then assert po.dizel != null
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/src/test/java/feature/PATCHbooking.feature:
--------------------------------------------------------------------------------
1 | Feature: Update an existing booking partially using PUT method
2 |
3 | Background:
4 | ## "Since I am using a RESTful API, I did not implement token retrieval via a createToken process
5 | * def myToken = 'Basic YWRtaW46cGFzc3dvcmQxMjM='
6 |
7 | Scenario: Successfully update an existing booking using valid token
8 |
9 | # Dinamic firstname ve totalprice
10 | * def randomFirstName = 'Jack_' + Math.floor(Math.random() * 1000)
11 | * def randomPrice = 15 + Math.floor(Math.random() * 100)
12 |
13 | # JSON body
14 | * def myRequestBody =
15 | """
16 | {
17 | "firstname": "#(randomFirstName)",
18 | "lastname": "Sparrow",
19 | "totalprice": #(randomPrice),
20 | "depositpaid": true,
21 | "bookingdates": {
22 | "checkin": "2025-06-20",
23 | "checkout": "2025-06-25"
24 | },
25 | "additionalneeds": "Breakfast"
26 | }
27 | """
28 |
29 | Given url restfulBaseUrl
30 | And path 'booking', 10
31 | And header Content-Type = 'application/json'
32 | And header Accept = 'application/json'
33 | And header Authorization = myToken
34 | And request myRequestBody
35 | When method PUT
36 | Then status 200
37 | * print response
38 |
39 | # Verify
40 | Then match response.firstname == myRequestBody.firstname
41 | Then match response.lastname == myRequestBody.lastname
42 | Then match response.totalprice == myRequestBody.totalprice
43 | Then match response.additionalneeds == myRequestBody.additionalneeds
44 |
--------------------------------------------------------------------------------
/src/test/java/feature/POST_CreateBookingAPI.feature:
--------------------------------------------------------------------------------
1 | Feature: Create and Verify Booking
2 |
3 | Background:
4 | * url restfulBaseUrl
5 | * def requestBody = read('classpath:data/createBooking.json')
6 |
7 | Scenario: Create booking and verify it exists
8 |
9 | # --- Create Booking ---
10 | Given path 'booking'
11 | And header Accept = 'application/json'
12 | And header Content-Type = 'application/json'
13 | And request requestBody
14 | When method POST
15 | Then status 200
16 | * def bookingId = response.bookingid
17 | * def createdBooking = response.booking
18 | * print 'Created booking ID:', bookingId
19 | * print response
20 |
21 | # --- Verify Booking ---
22 | Given path 'booking', bookingId
23 | And header Accept = 'application/json'
24 | When method GET
25 | * print response
26 | Then status 200
27 | And match response.firstname == createdBooking.firstname
28 | And match response.lastname == createdBooking.lastname
29 | And match response.additionalneeds == createdBooking.additionalneeds
30 |
31 |
--------------------------------------------------------------------------------
/src/test/java/feature/POST_operationsAboutUserAPI.feature:
--------------------------------------------------------------------------------
1 | Feature: API testing on the OpenAboutUser page
2 |
3 | Scenario: Create user and verify user information by username
4 |
5 | # --- Create user ---
6 | Given url petBaseUrl
7 | And path 'user', 'createWithList'
8 | * def myRequestBody = read('classpath:data/postUser.json')
9 | And request myRequestBody
10 | And method POST
11 | And print response
12 | Then status 200
13 | Then match response.message == 'ok'
14 | Then match response.type == 'unknown'
15 |
16 | # username
17 | * def username = myRequestBody[0].username
18 |
19 | # --- Verify user ---
20 | Given url petBaseUrl
21 | And path 'user', username
22 | And header Accept = 'application/json'
23 | When method GET
24 | Then status 200
25 | Then match response.username == username
26 | Then match response.firstName == myRequestBody[0].firstName
27 | Then match response.lastName == myRequestBody[0].lastName
28 | Then match response.email == myRequestBody[0].email
29 | Then match response.phone == myRequestBody[0].phone
30 | Then match response.userStatus == myRequestBody[0].userStatus
31 |
--------------------------------------------------------------------------------
/src/test/java/feature/PUTbooking.feature:
--------------------------------------------------------------------------------
1 | @smoke
2 | Feature: Update an existing booking partially using PUT method
3 |
4 | Background:
5 | # Using static token since token generation is not implemented separately
6 | * def myToken = 'Basic YWRtaW46cGFzc3dvcmQxMjM='
7 |
8 | Scenario: Successfully update an existing booking using a valid token
9 |
10 | Given url restfulBaseUrl
11 | And path 'booking', 10
12 | And header Content-Type = 'application/json'
13 | And header Accept = 'application/json'
14 | And header Authorization = myToken
15 |
16 | # Read base request body from JSON file
17 | * def myRequestBody = read('classpath:data/update.json')
18 |
19 | # Generate dynamic values
20 | * def randomFirstName = 'Jack_' + Math.floor(Math.random() * 1000)
21 | * def randomLastName = 'Sparrow_' + Math.floor(Math.random() * 1000)
22 | * def randomPrice = 50 + Math.floor(Math.random() * 100)
23 | * def randomDeposit = Math.random() < 0.5 ? true : false
24 | * def needsList = ['Breakfast', 'Lunch', 'Late Checkout', 'Wi-Fi']
25 | * def randomNeed = needsList[Math.floor(Math.random() * needsList.length)]
26 |
27 | # Set static dates
28 | * def checkin = '2025-05-20'
29 | * def checkout = '2025-05-23'
30 |
31 | # Update request body with dynamic and static values
32 | * set myRequestBody.firstname = randomFirstName
33 | * set myRequestBody.lastname = randomLastName
34 | * set myRequestBody.totalprice = randomPrice
35 | * set myRequestBody.depositpaid = randomDeposit
36 | * set myRequestBody.bookingdates.checkin = checkin
37 | * set myRequestBody.bookingdates.checkout = checkout
38 | * set myRequestBody.additionalneeds = randomNeed
39 |
40 | # Send PUT request
41 | And request myRequestBody
42 | When method PUT
43 | Then status 200
44 | * print response
45 |
46 | # Validate response matches updated request
47 | Then match response.firstname == myRequestBody.firstname
48 | Then match response.lastname == myRequestBody.lastname
49 | Then match response.totalprice == myRequestBody.totalprice
50 | Then match response.additionalneeds == myRequestBody.additionalneeds
51 |
--------------------------------------------------------------------------------
/src/test/java/feature/PetStoreGET.feature~:
--------------------------------------------------------------------------------
1 | Feature: PetStore üzerindeki GET sorgusu ile yapılan Api Test'leri
2 |
3 | Scenario: pet bölümündeki GET sorgusu yapılan API TESTI
4 | Given url petBaseUrl
5 | And path 'pet',250
6 | When method GET
7 | Then print response
8 | And status 404
9 |
10 | Scenario: store bölümündeki GET sorgusu yapılan API TESTI
11 | Given url petBaseUrl
12 | And path 'store','inventory'
13 | When method GET
14 | Then print response
15 | And status 200
16 |
17 | Scenario: user bölümündeki GET sorgusu yapılan API TESTI
18 | Given url petBaseUrl
19 | And path 'user','login'
20 | When method GET
21 | Then print response
22 | And status 200
23 |
24 | Scenario Outline: pet bölümünde GET sorgusu outline senaryo ile yapılan API TESTI
25 |
26 | Given url petBaseUrl
27 | And path 'pet',id
28 | When method GET
29 | Then print response
30 | And status 404
31 |
32 | Examples:
33 | | id |
34 | | 250 |
35 | | 251 |
36 | | 252 |
37 | | 253 |
38 |
39 |
40 | Scenario Outline: pet bölümünde GET sorgusu outline senaryo ile yapılan API testi
41 | Given url petBaseUrl
42 | And path 'pet',
43 | When method GET
44 | Then print response
45 | And status 404
46 |
47 | Examples:
48 | | id |
49 | | |
50 |
51 |
52 |
53 | Scenario: Burada api testi yapacagim
54 | Given url petBaseUrl
55 | When path 'pet',250
56 | When method GET
57 | * print response
58 | When status 404
59 | When response.name == 'doggie'
60 |
61 | Scenario: Burada store bölümünden api get testi yapacagim.
62 | Given url petBaseUrl
63 | When path 'store','inventory'
64 | When method GET
65 | * print response
66 | When status 200
67 | When response.sold == 5
68 |
69 | Scenario: Burada pet bölümünden bir post api testi yapacagim.
70 | Given url petBaseUrl
71 | When path 'pet'
72 | * def myRequestBody =
73 |
74 | """
75 | {
76 | "id": 0,
77 | "category": {
78 | "id": 0,
79 | "name": "string"
80 | },
81 | "name": "doggie",
82 | "photoUrls": [
83 | "string"
84 | ],
85 | "tags": [
86 | {
87 | "id": 0,
88 | "name": "string"
89 | }
90 | ],
91 | "status": "available"
92 | }
93 | """
94 | And request myRequestBody
95 | When method POST
96 | Then status 200
97 | * print response
98 | Then myRequestBody.id == response.id
99 | Then myRequestBody.name == response.name
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
--------------------------------------------------------------------------------
/src/test/java/karate-config.js:
--------------------------------------------------------------------------------
1 | function fn() {
2 | var env = karate.env; // get java system property 'karate.env'
3 | karate.log('karate.env system property was:', env);
4 | if (!env) {
5 | env = 'dev'; // a custom 'intelligent' default
6 | }
7 | var config = { // base config JSON
8 | petBaseUrl: 'https://petstore.swagger.io/v2/',
9 | anotherUrlBase: 'https://another-host.com/v1/',
10 | restfulBaseUrl: 'https://restful-booker.herokuapp.com/',
11 | fuelBaseUrl : 'https://api.collectapi.com/' ,
12 | pharmacyBaseUrl : 'https://api.collectapi.com/',
13 | goldStockMarketBaseUrl: 'https://api.collectapi.com/',
14 | collectApiToken: karate.properties['collectapi.token'] || '23Pd8e4hQE0VQ5WOxUafC9:16WI1uZWrZV5Z3nOgkAbMg'
15 | };
16 | if (env == 'stage') {
17 | // over-ride only those that need to be
18 | config.baseUrl = 'https://stage-host/v1/auth';
19 |
20 | } else if (env == 'e2e') {
21 | config.baseUrl = 'https://e2e-host/v1/auth';
22 | }
23 | // don't waste time waiting for a connection or if servers don't respond within 5 seconds
24 | karate.configure('connectTimeout', 5000); // maksimum 5 saniye bekler çalışmazsa hata verir.
25 | karate.configure('readTimeout', 5000); // maksimum 5 saniye bekler çalışmazsa hata verir.
26 | return config;
27 | }
28 |
--------------------------------------------------------------------------------
/src/test/java/logback-test.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
7 |
8 |
9 |
10 |
11 | target/karate.log
12 |
13 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/src/test/java/testRunner/TestRunner.java:
--------------------------------------------------------------------------------
1 | package testRunner;
2 |
3 | import com.intuit.karate.junit5.Karate;
4 |
5 | public class TestRunner {
6 |
7 | // Sadece @smoke etiketi ile işaretlenmiş testleri çalıştırır
8 | @Karate.Test
9 | public Karate testSmoke() {
10 | return Karate.run("classpath:feature").tags("@smoke");
11 | }
12 |
13 | // Sadece @regression etiketi ile işaretlenmiş testleri çalıştırır
14 | @Karate.Test
15 | public Karate testRegression() {
16 | return Karate.run("classpath:feature").tags("@regression");
17 | }
18 |
19 | // @smoke etiketi olmayan testleri çalıştırır
20 | @Karate.Test
21 | public Karate testWithoutSmoke() {
22 | return Karate.run("classpath:feature").tags("~@smoke");
23 | }
24 |
25 | // Tüm testleri çalıştırır
26 | @Karate.Test
27 | public Karate testAll() {
28 | return Karate.run("classpath:feature");
29 | }
30 | }
31 |
--------------------------------------------------------------------------------