├── .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 | --------------------------------------------------------------------------------