gitextract_0ovktbaz/ ├── .github/ │ ├── CODE_OF_CONDUCT.md │ ├── CONTRIBUTING.md │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE.md │ ├── PULL_REQUEST_TEMPLATE.md │ ├── dependabot.yml │ └── workflows/ │ ├── codeql.yml │ ├── delete-workflow-runs.yml │ ├── jdk-compat.yml │ ├── maven-build.yml │ └── maven-release.yml ├── .gitignore ├── LICENSE ├── README.md ├── SECURITY.md ├── _config.yml ├── _includes/ │ ├── nav.html │ └── toc.html ├── build-docker.sh ├── examples/ │ ├── README.md │ ├── consumer-driven-contracts/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── payment-consumer/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── payment/ │ │ │ │ └── consumer/ │ │ │ │ └── Consumer.java │ │ │ └── test/ │ │ │ └── java/ │ │ │ ├── logback-test.xml │ │ │ └── payment/ │ │ │ └── consumer/ │ │ │ ├── ConsumerIntegrationAgainstMockTest.java │ │ │ └── ConsumerIntegrationTest.java │ │ ├── payment-producer/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── payment/ │ │ │ │ └── producer/ │ │ │ │ ├── Payment.java │ │ │ │ ├── PaymentService.java │ │ │ │ └── ServerStartedInitializingBean.java │ │ │ └── test/ │ │ │ └── java/ │ │ │ ├── karate-config.js │ │ │ ├── logback-test.xml │ │ │ └── payment/ │ │ │ └── producer/ │ │ │ ├── contract/ │ │ │ │ ├── PaymentContractTest.java │ │ │ │ └── payment-contract.feature │ │ │ └── mock/ │ │ │ ├── PaymentContractAgainstMockTest.java │ │ │ ├── payment-mock.feature │ │ │ └── test.feature │ │ └── pom.xml │ ├── gatling/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── build.gradle │ │ ├── pom.xml │ │ └── src/ │ │ └── test/ │ │ └── java/ │ │ ├── karate-config.js │ │ ├── logback-test.xml │ │ └── mock/ │ │ ├── CatsGatlingSimulation.scala │ │ ├── CatsKarateSimulation.scala │ │ ├── MockUtils.java │ │ ├── cats-create.feature │ │ ├── cats-delete-one.feature │ │ ├── cats-delete.feature │ │ ├── custom-rpc.feature │ │ ├── feeder.feature │ │ └── mock.feature │ ├── image-comparison/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── test/ │ │ └── java/ │ │ ├── karate-config.js │ │ ├── logback-test.xml │ │ └── ui/ │ │ ├── 1_establish_baseline.feature │ │ ├── 2_compare_baseline.feature │ │ ├── 3_custom_rebase.feature │ │ ├── 4_generic_rebase.feature │ │ ├── 5_custom_config.feature │ │ ├── 6_outline.feature │ │ ├── 7_api.feature │ │ ├── ImageComparisonRunner.java │ │ ├── MockRunner.java │ │ ├── html/ │ │ │ └── index.html │ │ └── screenshots/ │ │ └── config/ │ │ ├── loaded_phone.json │ │ ├── loaded_tablet.json │ │ ├── loading_phone.json │ │ └── loading_tablet.json │ ├── mobile-test/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── test/ │ │ └── java/ │ │ ├── android/ │ │ │ ├── AndroidTest.java │ │ │ └── android.feature │ │ ├── karate-config.js │ │ └── logback-test.xml │ ├── profiling-test/ │ │ ├── pom.xml │ │ └── src/ │ │ └── test/ │ │ └── java/ │ │ ├── karate-config.js │ │ ├── logback-test.xml │ │ └── perf/ │ │ ├── Main.java │ │ ├── TestSimulation.scala │ │ ├── TestUtils.java │ │ ├── called.feature │ │ ├── main.feature │ │ └── mock.feature │ ├── robot-test/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── test/ │ │ └── java/ │ │ ├── karate-config.js │ │ ├── logback-test.xml │ │ ├── mac/ │ │ │ ├── ChromeRunner.java │ │ │ └── chrome.feature │ │ └── win/ │ │ ├── CalcRunner.java │ │ └── calc.feature │ ├── ui-test/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── test/ │ │ └── java/ │ │ ├── logback-test.xml │ │ └── ui/ │ │ ├── MockRunner.java │ │ ├── UiRunner.java │ │ ├── html/ │ │ │ ├── index.html │ │ │ ├── karate.js │ │ │ └── page-01.html │ │ └── test.feature │ └── zip-release/ │ └── src/ │ └── demo/ │ ├── api/ │ │ ├── httpbin.feature │ │ └── users.feature │ ├── mock/ │ │ ├── cats-mock.feature │ │ ├── cats-test.feature │ │ └── cats.html │ ├── robot/ │ │ ├── calc-old.feature │ │ └── calc.feature │ └── web/ │ └── google.feature ├── jbang-catalog.json ├── karate-archetype/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── resources/ │ ├── META-INF/ │ │ └── maven/ │ │ └── archetype-metadata.xml │ └── archetype-resources/ │ ├── .gitignore │ ├── pom.xml │ └── src/ │ └── test/ │ └── java/ │ ├── examples/ │ │ ├── ExamplesTest.java │ │ └── users/ │ │ ├── UsersRunner.java │ │ └── users.feature │ ├── karate-config.js │ └── logback-test.xml ├── karate-core/ │ ├── README.md │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── antlr4/ │ │ │ └── com/ │ │ │ └── intuit/ │ │ │ └── karate/ │ │ │ └── core/ │ │ │ ├── KarateLexer.g4 │ │ │ └── KarateParser.g4 │ │ └── java/ │ │ ├── com/ │ │ │ └── intuit/ │ │ │ └── karate/ │ │ │ ├── Actions.java │ │ │ ├── Constants.java │ │ │ ├── FileUtils.java │ │ │ ├── Http.java │ │ │ ├── ImageComparison.java │ │ │ ├── Json.java │ │ │ ├── JsonUtils.java │ │ │ ├── KarateException.java │ │ │ ├── LogAppender.java │ │ │ ├── Logger.java │ │ │ ├── Main.java │ │ │ ├── Match.java │ │ │ ├── MatchOperation.java │ │ │ ├── MatchOperator.java │ │ │ ├── MatchStep.java │ │ │ ├── PerfContext.java │ │ │ ├── PerfHook.java │ │ │ ├── Results.java │ │ │ ├── Runner.java │ │ │ ├── RuntimeHook.java │ │ │ ├── ScenarioActions.java │ │ │ ├── StringUtils.java │ │ │ ├── Suite.java │ │ │ ├── XmlUtils.java │ │ │ ├── core/ │ │ │ │ ├── Action.java │ │ │ │ ├── AfterHookType.java │ │ │ │ ├── AssignType.java │ │ │ │ ├── AutoDef.java │ │ │ │ ├── Background.java │ │ │ │ ├── Channel.java │ │ │ │ ├── ChannelFactory.java │ │ │ │ ├── Config.java │ │ │ │ ├── Embed.java │ │ │ │ ├── ExamplesTable.java │ │ │ │ ├── Feature.java │ │ │ │ ├── FeatureCall.java │ │ │ │ ├── FeatureParser.java │ │ │ │ ├── FeatureResult.java │ │ │ │ ├── FeatureRuntime.java │ │ │ │ ├── FeatureSection.java │ │ │ │ ├── MockHandler.java │ │ │ │ ├── MockInterceptor.java │ │ │ │ ├── MockServer.java │ │ │ │ ├── ParallelProcessor.java │ │ │ │ ├── ParserErrorListener.java │ │ │ │ ├── PerfEvent.java │ │ │ │ ├── Plugin.java │ │ │ │ ├── PluginFactory.java │ │ │ │ ├── Result.java │ │ │ │ ├── RuntimeHookFactory.java │ │ │ │ ├── Scenario.java │ │ │ │ ├── ScenarioBridge.java │ │ │ │ ├── ScenarioCall.java │ │ │ │ ├── ScenarioEngine.java │ │ │ │ ├── ScenarioFileReader.java │ │ │ │ ├── ScenarioIterator.java │ │ │ │ ├── ScenarioOutline.java │ │ │ │ ├── ScenarioOutlineResult.java │ │ │ │ ├── ScenarioResult.java │ │ │ │ ├── ScenarioRuntime.java │ │ │ │ ├── Step.java │ │ │ │ ├── StepResult.java │ │ │ │ ├── StepRuntime.java │ │ │ │ ├── SyncExecutorService.java │ │ │ │ ├── Table.java │ │ │ │ ├── Tag.java │ │ │ │ ├── TagResults.java │ │ │ │ ├── Tags.java │ │ │ │ ├── TimelineResults.java │ │ │ │ ├── Variable.java │ │ │ │ └── When.java │ │ │ ├── driver/ │ │ │ │ ├── DevToolsDriver.java │ │ │ │ ├── DevToolsMessage.java │ │ │ │ ├── DevToolsMock.java │ │ │ │ ├── DevToolsWait.java │ │ │ │ ├── DockerTarget.java │ │ │ │ ├── Driver.java │ │ │ │ ├── DriverElement.java │ │ │ │ ├── DriverMouse.java │ │ │ │ ├── DriverOptions.java │ │ │ │ ├── DriverRunner.java │ │ │ │ ├── Element.java │ │ │ │ ├── ElementFinder.java │ │ │ │ ├── Finder.java │ │ │ │ ├── Frame.java │ │ │ │ ├── Input.java │ │ │ │ ├── Key.java │ │ │ │ ├── Keys.java │ │ │ │ ├── MissingElement.java │ │ │ │ ├── MissingFinder.java │ │ │ │ ├── Mouse.java │ │ │ │ ├── Target.java │ │ │ │ ├── WebDriver.java │ │ │ │ ├── appium/ │ │ │ │ │ ├── AndroidDriver.java │ │ │ │ │ ├── AppiumDriver.java │ │ │ │ │ ├── IosDriver.java │ │ │ │ │ └── MobileDriverOptions.java │ │ │ │ ├── chrome/ │ │ │ │ │ ├── Chrome.java │ │ │ │ │ └── ChromeWebDriver.java │ │ │ │ ├── firefox/ │ │ │ │ │ └── GeckoWebDriver.java │ │ │ │ ├── microsoft/ │ │ │ │ │ ├── EdgeChromium.java │ │ │ │ │ ├── IeWebDriver.java │ │ │ │ │ ├── MsEdgeDriver.java │ │ │ │ │ ├── MsWebDriver.java │ │ │ │ │ └── WinAppDriver.java │ │ │ │ ├── playwright/ │ │ │ │ │ ├── PlaywrightDriver.java │ │ │ │ │ ├── PlaywrightMessage.java │ │ │ │ │ └── PlaywrightWait.java │ │ │ │ └── safari/ │ │ │ │ └── SafariWebDriver.java │ │ │ ├── graal/ │ │ │ │ ├── JsArray.java │ │ │ │ ├── JsEngine.java │ │ │ │ ├── JsFunction.java │ │ │ │ ├── JsLambda.java │ │ │ │ ├── JsList.java │ │ │ │ ├── JsMap.java │ │ │ │ ├── JsValue.java │ │ │ │ ├── JsXml.java │ │ │ │ └── Methods.java │ │ │ ├── http/ │ │ │ │ ├── ApacheHttpClient.java │ │ │ │ ├── ArmeriaHttpClient.java │ │ │ │ ├── AwsLambdaHandler.java │ │ │ │ ├── Cookies.java │ │ │ │ ├── CustomHttpRequestRetryHandler.java │ │ │ │ ├── GenericHttpHeaderTracking.java │ │ │ │ ├── HttpClient.java │ │ │ │ ├── HttpClientFactory.java │ │ │ │ ├── HttpConstants.java │ │ │ │ ├── HttpHeaderTracking.java │ │ │ │ ├── HttpLogModifier.java │ │ │ │ ├── HttpLogger.java │ │ │ │ ├── HttpRequest.java │ │ │ │ ├── HttpRequestBuilder.java │ │ │ │ ├── HttpServer.java │ │ │ │ ├── HttpServerHandler.java │ │ │ │ ├── HttpUtils.java │ │ │ │ ├── JvmSessionStore.java │ │ │ │ ├── LenientTrustManager.java │ │ │ │ ├── MultiPartBuilder.java │ │ │ │ ├── ProxyClientHandler.java │ │ │ │ ├── ProxyContext.java │ │ │ │ ├── ProxyRemoteHandler.java │ │ │ │ ├── ProxyRequest.java │ │ │ │ ├── ProxyResponse.java │ │ │ │ ├── ProxyServer.java │ │ │ │ ├── RedirectException.java │ │ │ │ ├── Request.java │ │ │ │ ├── RequestCycle.java │ │ │ │ ├── RequestFilter.java │ │ │ │ ├── RequestHandler.java │ │ │ │ ├── ResourceType.java │ │ │ │ ├── Response.java │ │ │ │ ├── ResponseBuilder.java │ │ │ │ ├── ResponseFilter.java │ │ │ │ ├── ServerConfig.java │ │ │ │ ├── ServerContext.java │ │ │ │ ├── ServerHandler.java │ │ │ │ ├── Session.java │ │ │ │ ├── SessionStore.java │ │ │ │ ├── SslContextFactory.java │ │ │ │ ├── WebSocketClient.java │ │ │ │ ├── WebSocketClientHandler.java │ │ │ │ ├── WebSocketListener.java │ │ │ │ ├── WebSocketOptions.java │ │ │ │ ├── WebSocketProxyHandler.java │ │ │ │ ├── WebSocketProxyServer.java │ │ │ │ ├── WebSocketServerBase.java │ │ │ │ └── cert/ │ │ │ │ ├── SelfSignedCertGenerator.java │ │ │ │ └── ThreadLocalInsecureRandom.java │ │ │ ├── report/ │ │ │ │ ├── Report.java │ │ │ │ ├── ReportUtils.java │ │ │ │ ├── Resemble.js │ │ │ │ ├── SuiteReports.java │ │ │ │ ├── karate-feature.html │ │ │ │ ├── karate-leftnav.html │ │ │ │ ├── karate-posthog.html │ │ │ │ ├── karate-report.css │ │ │ │ ├── karate-report.js │ │ │ │ ├── karate-step.html │ │ │ │ ├── karate-summary.html │ │ │ │ ├── karate-tags.html │ │ │ │ └── karate-timeline.html │ │ │ ├── resource/ │ │ │ │ ├── FileResource.java │ │ │ │ ├── JarResource.java │ │ │ │ ├── MemoryResource.java │ │ │ │ ├── Resource.java │ │ │ │ ├── ResourceResolver.java │ │ │ │ └── ResourceUtils.java │ │ │ ├── shell/ │ │ │ │ ├── Command.java │ │ │ │ ├── Console.java │ │ │ │ ├── FileLogAppender.java │ │ │ │ ├── StopListenerThread.java │ │ │ │ ├── Stoppable.java │ │ │ │ └── StringLogAppender.java │ │ │ └── template/ │ │ │ ├── KaHxAnyAttrProcessor.java │ │ │ ├── KaHxMethodAttrProcessor.java │ │ │ ├── KaHxValsAttrProcessor.java │ │ │ ├── KaLinkAttrProcessor.java │ │ │ ├── KaScriptAttrProcessor.java │ │ │ ├── KaScriptElemProcessor.java │ │ │ ├── KaSetElemProcessor.java │ │ │ ├── KarateAttributeTagProcessor.java │ │ │ ├── KarateEachTagProcessor.java │ │ │ ├── KarateEngineContext.java │ │ │ ├── KarateExpression.java │ │ │ ├── KarateScriptDialect.java │ │ │ ├── KarateServerDialect.java │ │ │ ├── KarateStandardDialect.java │ │ │ ├── KarateTemplateEngine.java │ │ │ ├── KarateTemplateResource.java │ │ │ ├── KarateWithTagProcessor.java │ │ │ ├── ResourceHtmlTemplateResolver.java │ │ │ ├── ServerHtmlTemplateResolver.java │ │ │ ├── StringHtmlTemplateResolver.java │ │ │ ├── StringTemplateResource.java │ │ │ ├── TemplateContext.java │ │ │ └── TemplateUtils.java │ │ ├── karate-meta.properties │ │ ├── logback-fatjar.xml │ │ ├── logback-nofile.xml │ │ └── nodebug/ │ │ └── io/ │ │ └── karatelabs/ │ │ └── LenientSslConnectionSocketFactory.java │ └── test/ │ ├── java/ │ │ ├── com/ │ │ │ └── intuit/ │ │ │ └── karate/ │ │ │ ├── ComplexPojo.java │ │ │ ├── FileUtilsTest.java │ │ │ ├── ImageComparisonTest.java │ │ │ ├── JsonTest.java │ │ │ ├── JsonUtilsTest.java │ │ │ ├── MainTest.java │ │ │ ├── MatchStepTest.java │ │ │ ├── MatchTest.java │ │ │ ├── SimplePojo.java │ │ │ ├── StringUtilsTest.java │ │ │ ├── SystemPropertiesTest.java │ │ │ ├── TestUtils.java │ │ │ ├── ThreadCountTest.java │ │ │ ├── XmlUtilsTest.java │ │ │ ├── core/ │ │ │ │ ├── CallResponseTest.java │ │ │ │ ├── Cat.java │ │ │ │ ├── ComplexPojo.java │ │ │ │ ├── DummyClient.java │ │ │ │ ├── DummyUiTest.java │ │ │ │ ├── FeatureFailRunner.java │ │ │ │ ├── FeatureResultTest.java │ │ │ │ ├── FeatureRuntimeTest.java │ │ │ │ ├── HttpMockHandlerRunner.java │ │ │ │ ├── HttpMockHandlerTest.java │ │ │ │ ├── JsStubGenerator.java │ │ │ │ ├── KarateHttpMockHandlerTest.java │ │ │ │ ├── KarateMockHandlerTest.java │ │ │ │ ├── MockClient.java │ │ │ │ ├── MockHandlerTest.java │ │ │ │ ├── MockUtils.java │ │ │ │ ├── PaymentsMockRunner.java │ │ │ │ ├── PaymentsRunner.java │ │ │ │ ├── PerfHookTest.java │ │ │ │ ├── PrintTest.java │ │ │ │ ├── ScenarioBridgeTest.java │ │ │ │ ├── ScenarioEngineTest.java │ │ │ │ ├── ScenarioOutlineResultTest.java │ │ │ │ ├── ScenarioRuntimeTest.java │ │ │ │ ├── SimplePojo.java │ │ │ │ ├── StaticUtils.java │ │ │ │ ├── StepRuntimeTest.java │ │ │ │ ├── TagsTest.java │ │ │ │ ├── TestLogAppender.java │ │ │ │ ├── VariableTest.java │ │ │ │ ├── abort.feature │ │ │ │ ├── align.feature │ │ │ │ ├── big-decimal.feature │ │ │ │ ├── call-arg-called.feature │ │ │ │ ├── call-arg-common.feature │ │ │ │ ├── call-arg-null-called.feature │ │ │ │ ├── call-arg-null.feature │ │ │ │ ├── call-arg.feature │ │ │ │ ├── call-by-tag-called.feature │ │ │ │ ├── call-by-tag.feature │ │ │ │ ├── call-feature-called.feature │ │ │ │ ├── call-feature.feature │ │ │ │ ├── call-js-called.feature │ │ │ │ ├── call-js.feature │ │ │ │ ├── call-jsonpath-called.feature │ │ │ │ ├── call-jsonpath.feature │ │ │ │ ├── call-response-called.feature │ │ │ │ ├── call-response-mock.feature │ │ │ │ ├── call-response.feature │ │ │ │ ├── call-self.feature │ │ │ │ ├── call-single-fail-called.feature │ │ │ │ ├── call-single-fail.feature │ │ │ │ ├── call-single-tag-called.feature │ │ │ │ ├── call-single-tag.feature │ │ │ │ ├── callSingleFeature.feature │ │ │ │ ├── callSingleScenario.feature │ │ │ │ ├── called1.feature │ │ │ │ ├── called2.feature │ │ │ │ ├── called3-caller1.js │ │ │ │ ├── called3-caller2.js │ │ │ │ ├── called3.js │ │ │ │ ├── callonce-bg-called.feature │ │ │ │ ├── callonce-bg-outline.feature │ │ │ │ ├── callonce-bg.feature │ │ │ │ ├── callonce-config-called.feature │ │ │ │ ├── callonce-config.feature │ │ │ │ ├── callonce-global-called.feature │ │ │ │ ├── callonce-global.feature │ │ │ │ ├── configure-in-js.feature │ │ │ │ ├── copy-called-nested.feature │ │ │ │ ├── copy-called-overwrite.feature │ │ │ │ ├── copy-called.feature │ │ │ │ ├── copy.feature │ │ │ │ ├── csv.feature │ │ │ │ ├── data.json │ │ │ │ ├── dummy-ui-google.feature │ │ │ │ ├── dummy.feature │ │ │ │ ├── eval-and-set.feature │ │ │ │ ├── eval-assign.feature │ │ │ │ ├── exec.feature │ │ │ │ ├── extract.feature │ │ │ │ ├── extract.html │ │ │ │ ├── fail-api.feature │ │ │ │ ├── fail-js.feature │ │ │ │ ├── fail-tag-failure.feature │ │ │ │ ├── fail-tag.feature │ │ │ │ ├── fail1.feature │ │ │ │ ├── feature-result-called.feature │ │ │ │ ├── feature-result-cucumber.json │ │ │ │ ├── feature-result.feature │ │ │ │ ├── feature-result.json │ │ │ │ ├── features/ │ │ │ │ │ ├── RemainingFeaturesTest.java │ │ │ │ │ ├── feature1.feature │ │ │ │ │ ├── feature2.feature │ │ │ │ │ └── karate-config.js │ │ │ │ ├── fork-listener.feature │ │ │ │ ├── fork.feature │ │ │ │ ├── ignore-step-failure.feature │ │ │ │ ├── increment.js │ │ │ │ ├── js-arrays-products.json │ │ │ │ ├── js-arrays.feature │ │ │ │ ├── js-map-repeat.feature │ │ │ │ ├── jscall/ │ │ │ │ │ ├── JsCallTest.java │ │ │ │ │ ├── JsCallonceTest.java │ │ │ │ │ ├── dummy.feature │ │ │ │ │ ├── js-call.feature │ │ │ │ │ ├── js-called.feature │ │ │ │ │ ├── js-callonce.feature │ │ │ │ │ ├── karate-config.js │ │ │ │ │ └── utils.feature │ │ │ │ ├── jscall2/ │ │ │ │ │ ├── JsCall2Test.java │ │ │ │ │ ├── all.feature │ │ │ │ │ ├── call-once.feature │ │ │ │ │ ├── call-single.feature │ │ │ │ │ ├── call.feature │ │ │ │ │ ├── karate-config.js │ │ │ │ │ ├── local.feature │ │ │ │ │ └── mock.feature │ │ │ │ ├── jsread/ │ │ │ │ │ ├── js-read-2.feature │ │ │ │ │ ├── js-read-2.json │ │ │ │ │ ├── js-read-3.feature │ │ │ │ │ ├── js-read-3.json │ │ │ │ │ ├── js-read-4.feature │ │ │ │ │ ├── js-read-4.json │ │ │ │ │ ├── js-read-5.json │ │ │ │ │ ├── js-read-called-2.feature │ │ │ │ │ ├── js-read-called-3.feature │ │ │ │ │ ├── js-read-called.feature │ │ │ │ │ ├── js-read-reuse-2.feature │ │ │ │ │ ├── js-read-reuse-only-background.feature │ │ │ │ │ ├── js-read-reuse.feature │ │ │ │ │ ├── js-read.feature │ │ │ │ │ └── js-read.json │ │ │ │ ├── karate-config-callonce.js │ │ │ │ ├── karate-config-callsingle.js │ │ │ │ ├── karate-config-callsingletag.js │ │ │ │ ├── karate-config-csfail.js │ │ │ │ ├── karate-config-dev.js │ │ │ │ ├── karate-config-fn.feature │ │ │ │ ├── karate-config-frombase.feature │ │ │ │ ├── karate-config-frombase.js │ │ │ │ ├── karate-config-getscenario.feature │ │ │ │ ├── karate-config-getscenario.js │ │ │ │ ├── karate-config-utils.feature │ │ │ │ ├── karate-config.js │ │ │ │ ├── karate-get-called.feature │ │ │ │ ├── karate-get.feature │ │ │ │ ├── lower-case.feature │ │ │ │ ├── match-each-magic-variables.feature │ │ │ │ ├── match-step.feature │ │ │ │ ├── mock/ │ │ │ │ │ ├── MockRunner.java │ │ │ │ │ ├── MockSslTest.java │ │ │ │ │ ├── MockTest.java │ │ │ │ │ ├── SimpleMockRunner.java │ │ │ │ │ ├── _mock.feature │ │ │ │ │ ├── _simple.feature │ │ │ │ │ ├── binary.feature │ │ │ │ │ ├── brotli.feature │ │ │ │ │ ├── call.feature │ │ │ │ │ ├── called.feature │ │ │ │ │ ├── cookies.feature │ │ │ │ │ ├── delete.feature │ │ │ │ │ ├── download.feature │ │ │ │ │ ├── form.feature │ │ │ │ │ ├── german.feature │ │ │ │ │ ├── headers.feature │ │ │ │ │ ├── hello-data-driven.feature │ │ │ │ │ ├── hello-world.feature │ │ │ │ │ ├── html.feature │ │ │ │ │ ├── invalid-cookie.feature │ │ │ │ │ ├── json-bad.feature │ │ │ │ │ ├── json-order-mock-test.feature │ │ │ │ │ ├── json-order-mock.feature │ │ │ │ │ ├── karate-config.js │ │ │ │ │ ├── malformed.feature │ │ │ │ │ ├── malformed.txt │ │ │ │ │ ├── multi-params.feature │ │ │ │ │ ├── no-headers.feature │ │ │ │ │ ├── no-match.feature │ │ │ │ │ ├── param-commas.feature │ │ │ │ │ ├── patch.feature │ │ │ │ │ ├── test.xlsx │ │ │ │ │ ├── upload.feature │ │ │ │ │ ├── url-encoding.feature │ │ │ │ │ └── white-space.feature │ │ │ │ ├── not-equals.feature │ │ │ │ ├── ntlm-authentication.feature │ │ │ │ ├── outline-background.feature │ │ │ │ ├── outline-cat.json │ │ │ │ ├── outline-cats.json │ │ │ │ ├── outline-config-js.feature │ │ │ │ ├── outline-csv.csv │ │ │ │ ├── outline-csv.feature │ │ │ │ ├── outline-dynamic-fail.feature │ │ │ │ ├── outline-dynamic.feature │ │ │ │ ├── outline-generator.feature │ │ │ │ ├── outline-setup-once.feature │ │ │ │ ├── outline.feature │ │ │ │ ├── parajava/ │ │ │ │ │ ├── ParallelJavaTest.java │ │ │ │ │ ├── karate-config.js │ │ │ │ │ ├── parallel-java1.feature │ │ │ │ │ ├── parallel-java2.feature │ │ │ │ │ └── setup.feature │ │ │ │ ├── parallel/ │ │ │ │ │ ├── Hello.java │ │ │ │ │ ├── HelloTest.java │ │ │ │ │ ├── ParallelCsvTest.java │ │ │ │ │ ├── ParallelOutlineTest.java │ │ │ │ │ ├── ParallelTest.java │ │ │ │ │ ├── call-once-from-feature.feature │ │ │ │ │ ├── call-single-from-config.feature │ │ │ │ │ ├── call-single-from-config2.feature │ │ │ │ │ ├── call-single-from-config3.js │ │ │ │ │ ├── call-single-from-feature.feature │ │ │ │ │ ├── called.feature │ │ │ │ │ ├── cookies.js │ │ │ │ │ ├── data.csv │ │ │ │ │ ├── headers.js │ │ │ │ │ ├── hello.feature │ │ │ │ │ ├── karate-base.js │ │ │ │ │ ├── karate-config.js │ │ │ │ │ ├── mock.feature │ │ │ │ │ ├── parallel-csv.feature │ │ │ │ │ ├── parallel-outline-1.feature │ │ │ │ │ ├── parallel-outline-2.feature │ │ │ │ │ ├── parallel-outline-call-api.feature │ │ │ │ │ └── parallel.feature │ │ │ │ ├── parasimple/ │ │ │ │ │ ├── ParallelOutlineSimpleTest.java │ │ │ │ │ ├── headers.feature │ │ │ │ │ ├── headers.js │ │ │ │ │ ├── karate-config.js │ │ │ │ │ └── parallel-outline-simple.feature │ │ │ │ ├── parser/ │ │ │ │ │ ├── FeatureParserTest.java │ │ │ │ │ ├── test-comments.feature │ │ │ │ │ ├── test-def-docstring.feature │ │ │ │ │ ├── test-edge-cases.feature │ │ │ │ │ ├── test-empty-background.feature │ │ │ │ │ ├── test-empty-first-line1.feature │ │ │ │ │ ├── test-empty-first-line2.feature │ │ │ │ │ ├── test-empty-first-line3.feature │ │ │ │ │ ├── test-empty.feature.txt │ │ │ │ │ ├── test-error.feature │ │ │ │ │ ├── test-feature-header-only.feature │ │ │ │ │ ├── test-hide.feature │ │ │ │ │ ├── test-ignore-feature.feature │ │ │ │ │ ├── test-ignore-scenario.feature │ │ │ │ │ ├── test-outline-dynamic.feature │ │ │ │ │ ├── test-outline-examples-tags.feature │ │ │ │ │ ├── test-outline-name-js.feature │ │ │ │ │ ├── test-outline-name.feature │ │ │ │ │ ├── test-scenario-description.feature │ │ │ │ │ ├── test-set-table.feature │ │ │ │ │ ├── test-simple-background.feature │ │ │ │ │ ├── test-simple.feature │ │ │ │ │ ├── test-table-pipe.feature │ │ │ │ │ └── test-tags-multiline.feature │ │ │ │ ├── payments-mock.feature │ │ │ │ ├── payments.feature │ │ │ │ ├── perf-mock.feature │ │ │ │ ├── perf.feature │ │ │ │ ├── print.feature │ │ │ │ ├── read-expressions.json │ │ │ │ ├── read-expressions.yml │ │ │ │ ├── read-properties.feature │ │ │ │ ├── read-properties.properties │ │ │ │ ├── replace.feature │ │ │ │ ├── retry/ │ │ │ │ │ ├── RetryTest.java │ │ │ │ │ ├── retry-with-setup.feature │ │ │ │ │ └── test.feature │ │ │ │ ├── runner/ │ │ │ │ │ ├── FeatureResultTest.java │ │ │ │ │ ├── FeatureReuseTest.java │ │ │ │ │ ├── NoopDriver.java │ │ │ │ │ ├── RunnerTest.java │ │ │ │ │ ├── TagTest.java │ │ │ │ │ ├── aborted.feature │ │ │ │ │ ├── called-arg-loop.feature │ │ │ │ │ ├── called-arg-null.feature │ │ │ │ │ ├── called-arg-single.feature │ │ │ │ │ ├── called-shared.feature │ │ │ │ │ ├── called-shared2.feature │ │ │ │ │ ├── called.feature │ │ │ │ │ ├── called_2.feature │ │ │ │ │ ├── caller-arg.feature │ │ │ │ │ ├── caller-shared.feature │ │ │ │ │ ├── caller-with-lambda-arg.feature │ │ │ │ │ ├── caller.feature │ │ │ │ │ ├── caller_2.feature │ │ │ │ │ ├── failed.feature │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ ├── HooksTest.java │ │ │ │ │ │ ├── MandatoryTagHook.java │ │ │ │ │ │ ├── NoFeatureTestRuntimeHook.java │ │ │ │ │ │ ├── NoScenarioTestRuntimeHook.java │ │ │ │ │ │ ├── NoStepTestRuntimeHook.java │ │ │ │ │ │ ├── ScenarioHookSkipTest.java │ │ │ │ │ │ ├── ScenarioHookTest.java │ │ │ │ │ │ ├── SkipHook.java │ │ │ │ │ │ ├── TestRuntimeHook.java │ │ │ │ │ │ ├── hook-dynamic-outline.feature │ │ │ │ │ │ ├── hook-multiple-dynamic-outline.feature │ │ │ │ │ │ ├── hook-multiple-outlines.feature │ │ │ │ │ │ ├── hook-outline.feature │ │ │ │ │ │ ├── hook-scenario.feature │ │ │ │ │ │ ├── karate-base.js │ │ │ │ │ │ ├── karate-config.js │ │ │ │ │ │ ├── test-hook-multiexample.feature │ │ │ │ │ │ ├── test-hook-notags.feature │ │ │ │ │ │ └── test-hook-skip.feature │ │ │ │ │ ├── multi-scenario-fail.feature │ │ │ │ │ ├── multi-scenario.feature │ │ │ │ │ ├── no-scenario-name.feature │ │ │ │ │ ├── notEqualMatch.feature │ │ │ │ │ ├── outline.feature │ │ │ │ │ ├── run-arg.feature │ │ │ │ │ ├── run-ignore.feature │ │ │ │ │ ├── scenario.feature │ │ │ │ │ ├── signin.feature │ │ │ │ │ ├── stackoverflow-error.feature │ │ │ │ │ ├── table.feature │ │ │ │ │ ├── test-called-embedded-file.feature │ │ │ │ │ ├── test-called-embedded.feature │ │ │ │ │ ├── test-called.feature │ │ │ │ │ ├── test.json │ │ │ │ │ └── test.xml │ │ │ │ ├── scenario-outline-result.feature │ │ │ │ ├── scenario-variable-scope.feature │ │ │ │ ├── schema-like-odds.json │ │ │ │ ├── schema-like-time-validator.js │ │ │ │ ├── schema-like.feature │ │ │ │ ├── schema-read-inner.json │ │ │ │ ├── schema-read.feature │ │ │ │ ├── schema-read.json │ │ │ │ ├── set-xml.feature │ │ │ │ ├── set.feature │ │ │ │ ├── single-scenario.feature │ │ │ │ ├── sort-array.feature │ │ │ │ ├── sort-array.js │ │ │ │ ├── table.feature │ │ │ │ ├── tags/ │ │ │ │ │ ├── TagsTest.java │ │ │ │ │ ├── env-tags.feature │ │ │ │ │ └── outline-tags.feature │ │ │ │ ├── tags.feature │ │ │ │ ├── to-bean-called.feature │ │ │ │ ├── to-bean.feature │ │ │ │ ├── type-conv-query.txt │ │ │ │ ├── type-conv-query2.txt │ │ │ │ ├── type-conv.feature │ │ │ │ ├── type-conversion.feature │ │ │ │ ├── ui-google.feature │ │ │ │ ├── users-doc.feature │ │ │ │ ├── users-single.html │ │ │ │ ├── users.html │ │ │ │ ├── utils-reuse-common.feature │ │ │ │ ├── utils-reuse.feature │ │ │ │ ├── uuid.js │ │ │ │ ├── websocket.feature │ │ │ │ ├── xml/ │ │ │ │ │ ├── XmlTest.java │ │ │ │ │ ├── envelope1.xml │ │ │ │ │ ├── envelope2.xml │ │ │ │ │ ├── soap1.xml │ │ │ │ │ ├── soap2.xml │ │ │ │ │ ├── xml-and-xpath.feature │ │ │ │ │ ├── xml-call.feature │ │ │ │ │ ├── xml-called.feature │ │ │ │ │ └── xml.feature │ │ │ │ └── xml-pretty.feature │ │ │ ├── driver/ │ │ │ │ ├── DriverElementTest.java │ │ │ │ ├── DriverOptionsTest.java │ │ │ │ ├── ElementFinderTest.java │ │ │ │ ├── KeyTest.java │ │ │ │ ├── appium/ │ │ │ │ │ └── MobileDriverOptionsTest.java │ │ │ │ └── playwright/ │ │ │ │ └── PlaywrightDriverRunner.java │ │ │ ├── fatjar/ │ │ │ │ ├── ClientRunner.java │ │ │ │ ├── FeatureProxyRunner.java │ │ │ │ ├── FeatureServerRunner.java │ │ │ │ ├── FeatureServerTest.java │ │ │ │ ├── MainRunner.java │ │ │ │ ├── MainSslRunner.java │ │ │ │ ├── ProxyServerRunner.java │ │ │ │ ├── ProxyServerSslMain.java │ │ │ │ ├── ProxyServerSslTest.java │ │ │ │ ├── ProxyServerTest.java │ │ │ │ ├── client.feature │ │ │ │ ├── karate-config.js │ │ │ │ ├── proxy.feature │ │ │ │ ├── server.feature │ │ │ │ └── temp.html │ │ │ ├── graal/ │ │ │ │ ├── JsEngineTest.java │ │ │ │ ├── JsValueTest.java │ │ │ │ ├── SimplePojo.java │ │ │ │ └── StaticPojo.java │ │ │ ├── http/ │ │ │ │ ├── AwsLambdaHandlerTest.java │ │ │ │ ├── GenericHttpHeaderTrackingTest.java │ │ │ │ ├── HttpClientTester.java │ │ │ │ ├── HttpHookTest.java │ │ │ │ ├── HttpLoggerTest.java │ │ │ │ ├── HttpRequestBuilderTest.java │ │ │ │ ├── HttpUtilsTest.java │ │ │ │ ├── MultiPartBuilderTest.java │ │ │ │ ├── ProxyContextTest.java │ │ │ │ ├── RequestHandlerTest.java │ │ │ │ ├── WebSocketClientRunner.java │ │ │ │ ├── WebSocketProxyRunner.java │ │ │ │ ├── WebSocketTempRunner.java │ │ │ │ ├── api.json │ │ │ │ ├── cats.json │ │ │ │ ├── form.json │ │ │ │ ├── index.json │ │ │ │ ├── mock.feature │ │ │ │ └── root.json │ │ │ ├── malformed.txt │ │ │ ├── report/ │ │ │ │ ├── ReportUtilsTest.java │ │ │ │ ├── called-loop.feature │ │ │ │ ├── called.feature │ │ │ │ ├── called2.feature │ │ │ │ ├── called3.feature │ │ │ │ ├── customTags.feature │ │ │ │ ├── data.csv │ │ │ │ └── test.feature │ │ │ ├── resource/ │ │ │ │ ├── ResourceUtilsTest.java │ │ │ │ ├── dir1/ │ │ │ │ │ └── dir1.log │ │ │ │ ├── dir2/ │ │ │ │ │ └── dir2.log │ │ │ │ ├── test.feature │ │ │ │ ├── test1.txt │ │ │ │ └── test2.log │ │ │ ├── shell/ │ │ │ │ ├── CommandTest.java │ │ │ │ └── CommandTester.java │ │ │ ├── template/ │ │ │ │ ├── TemplateTest.java │ │ │ │ ├── attr.html │ │ │ │ ├── called1.html │ │ │ │ ├── global.js │ │ │ │ ├── ka-set.html │ │ │ │ ├── local.js │ │ │ │ ├── main.html │ │ │ │ ├── nocache.html │ │ │ │ ├── temp.html │ │ │ │ ├── temp.js │ │ │ │ ├── with-called.html │ │ │ │ └── with.html │ │ │ └── test/ │ │ │ └── file-utils-test.feature │ │ ├── demo/ │ │ │ ├── ServerRunner.java │ │ │ ├── api/ │ │ │ │ ├── cats.js │ │ │ │ ├── demo.js │ │ │ │ ├── payments.js │ │ │ │ ├── render.js │ │ │ │ └── test.html │ │ │ ├── apidocs.html │ │ │ ├── app.css │ │ │ ├── cats.html │ │ │ ├── details.html │ │ │ ├── index.html │ │ │ ├── person.html │ │ │ ├── user.html │ │ │ └── users.html │ │ ├── karate-base.js │ │ ├── karate-config.js │ │ ├── logback-test.xml │ │ └── payments.jmx │ └── resources/ │ ├── analytics.md │ └── readme.txt ├── karate-demo/ │ ├── README.md │ ├── build.gradle │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── intuit/ │ │ │ └── karate/ │ │ │ └── demo/ │ │ │ ├── Application.java │ │ │ ├── config/ │ │ │ │ ├── ServerStartedInitializingBean.java │ │ │ │ ├── TomcatConfig.java │ │ │ │ ├── WebSecurityConfig.java │ │ │ │ └── WebSocketConfig.java │ │ │ ├── controller/ │ │ │ │ ├── CatsController.java │ │ │ │ ├── DogsController.java │ │ │ │ ├── EchoController.java │ │ │ │ ├── EncodingController.java │ │ │ │ ├── GraphqlController.java │ │ │ │ ├── GreetingController.java │ │ │ │ ├── HeadersController.java │ │ │ │ ├── RedirectController.java │ │ │ │ ├── SearchController.java │ │ │ │ ├── SignInController.java │ │ │ │ ├── SoapController.java │ │ │ │ ├── UploadController.java │ │ │ │ ├── WebSocketController.java │ │ │ │ └── WebSocketHandler.java │ │ │ ├── domain/ │ │ │ │ ├── Binary.java │ │ │ │ ├── Cat.java │ │ │ │ ├── Dog.java │ │ │ │ ├── FileInfo.java │ │ │ │ ├── Greeting.java │ │ │ │ ├── Message.java │ │ │ │ └── SignIn.java │ │ │ ├── exception/ │ │ │ │ ├── ErrorResponse.java │ │ │ │ └── GlobalExceptionHandler.java │ │ │ └── util/ │ │ │ ├── DbUtils.java │ │ │ ├── FileChecker.java │ │ │ ├── FizzBuzz.java │ │ │ ├── JavaDemo.java │ │ │ └── SchemaUtils.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── graphql-1.json │ │ ├── graphql-2.json │ │ ├── schema.sql │ │ ├── soap-1.xml │ │ └── soap-2.xml │ └── test/ │ └── java/ │ ├── demo/ │ │ ├── DemoRunner.java │ │ ├── DemoTestParallel.java │ │ ├── DemoTestSelected.java │ │ ├── TestBase.java │ │ ├── abort/ │ │ │ └── abort.feature │ │ ├── binary/ │ │ │ └── binary.feature │ │ ├── callarray/ │ │ │ ├── call-json-array.feature │ │ │ ├── kitten-create.feature │ │ │ └── kittens.json │ │ ├── calldynamic/ │ │ │ ├── call-dynamic-json.feature │ │ │ └── get-cat.feature │ │ ├── callfeature/ │ │ │ ├── call-feature.feature │ │ │ ├── called-arg.feature │ │ │ ├── called-normal.feature │ │ │ ├── create-cats-outline.feature │ │ │ └── create-two-cats.feature │ │ ├── callnested/ │ │ │ ├── call-nested.feature │ │ │ ├── called1.feature │ │ │ ├── called2.feature │ │ │ └── called3.feature │ │ ├── callonce/ │ │ │ └── call-once.feature │ │ ├── calltable/ │ │ │ ├── call-table.feature │ │ │ └── kitten-create.feature │ │ ├── cats/ │ │ │ ├── CatsJava.java │ │ │ ├── billie-expected.json │ │ │ ├── cats-put.feature │ │ │ ├── cats.feature │ │ │ ├── kittens.feature │ │ │ └── syntax-demo.feature │ │ ├── cookies/ │ │ │ └── cookies.feature │ │ ├── delete/ │ │ │ └── delete.feature │ │ ├── dogs/ │ │ │ └── dogs.feature │ │ ├── dsl/ │ │ │ ├── common.feature │ │ │ ├── dsl.feature │ │ │ ├── greet.js │ │ │ └── login.feature │ │ ├── embed/ │ │ │ ├── embed-pdf.js │ │ │ └── embed.feature │ │ ├── encoding/ │ │ │ └── encoding.feature │ │ ├── error/ │ │ │ ├── error.feature │ │ │ └── no-url.feature │ │ ├── form/ │ │ │ └── form.feature │ │ ├── graphql/ │ │ │ ├── graphql.feature │ │ │ └── user-by-id.graphql │ │ ├── greeting/ │ │ │ └── greeting.feature │ │ ├── headers/ │ │ │ ├── DemoLogModifier.java │ │ │ ├── call-isolated-config.feature │ │ │ ├── call-isolated-headers.feature │ │ │ ├── call-updates-config.feature │ │ │ ├── callonce-background-multiscenario.feature │ │ │ ├── common-multiple.feature │ │ │ ├── common-noheaders.feature │ │ │ ├── common.feature │ │ │ ├── content-type.feature │ │ │ ├── headers-alt.js │ │ │ ├── headers-background-configure.feature │ │ │ ├── headers-background.feature │ │ │ ├── headers-form-get.feature │ │ │ ├── headers-masking.feature │ │ │ ├── headers-override.feature │ │ │ ├── headers-single.feature │ │ │ ├── headers-uuid.feature │ │ │ ├── headers.feature │ │ │ └── null-header.feature │ │ ├── hooks/ │ │ │ ├── after-feature.feature │ │ │ ├── after-scenario.feature │ │ │ ├── called.feature │ │ │ └── hooks.feature │ │ ├── info/ │ │ │ └── info.feature │ │ ├── java/ │ │ │ ├── JavaApiTest.java │ │ │ ├── cats-java.feature │ │ │ └── from-java.feature │ │ ├── jwt/ │ │ │ └── jwt.feature │ │ ├── oauth/ │ │ │ ├── Signer.java │ │ │ ├── oauth1.feature │ │ │ └── oauth2.feature │ │ ├── outline/ │ │ │ ├── dynamic-csv.feature │ │ │ ├── dynamic-generator.feature │ │ │ ├── dynamic.feature │ │ │ ├── examples.feature │ │ │ ├── kittens.csv │ │ │ └── setup-outline.feature │ │ ├── params/ │ │ │ └── params.feature │ │ ├── polling/ │ │ │ ├── get.feature │ │ │ └── polling.feature │ │ ├── read/ │ │ │ ├── read-files.feature │ │ │ ├── sample.json │ │ │ └── sample.xml │ │ ├── redirect/ │ │ │ └── redirect.feature │ │ ├── request/ │ │ │ └── request.feature │ │ ├── schema/ │ │ │ ├── products-schema.json │ │ │ ├── products.json │ │ │ └── schema.feature │ │ ├── search/ │ │ │ ├── dynamic-params.feature │ │ │ ├── get-response-param.js │ │ │ ├── search-complex.feature │ │ │ └── search-simple.feature │ │ ├── signin/ │ │ │ └── sign-in.feature │ │ ├── soap/ │ │ │ ├── expected.xml │ │ │ ├── request.xml │ │ │ └── soap.feature │ │ ├── tags/ │ │ │ ├── TagsRunner.java │ │ │ ├── first.feature │ │ │ └── second.feature │ │ ├── unit/ │ │ │ ├── cat.feature │ │ │ ├── common.feature │ │ │ └── fizz-buzz.feature │ │ ├── upload/ │ │ │ ├── upload-image.feature │ │ │ ├── upload-multiple-fields.feature │ │ │ ├── upload-multiple-files.feature │ │ │ ├── upload-retry.feature │ │ │ └── upload.feature │ │ ├── websocket/ │ │ │ ├── WebSocketClientRunner.java │ │ │ ├── echo.feature │ │ │ └── websocket.feature │ │ └── xml/ │ │ └── preserve-whitespace.feature │ ├── driver/ │ │ ├── demo/ │ │ │ ├── Demo01JavaRunner.java │ │ │ ├── demo-01.feature │ │ │ ├── demo-02.feature │ │ │ ├── demo-03.feature │ │ │ ├── demo-04.feature │ │ │ ├── demo-05.feature │ │ │ └── demo-06.feature │ │ ├── mock/ │ │ │ ├── demo-01.feature │ │ │ ├── demo-02.feature │ │ │ ├── mock-01.feature │ │ │ ├── mock-02.feature │ │ │ └── response.json │ │ ├── screenshot/ │ │ │ ├── ChromeFullPageRunner.java │ │ │ ├── ChromePdfRunner.java │ │ │ ├── EdgeChromiumFullPageRunner.java │ │ │ └── EdgeChromiumPdfRunner.java │ │ └── windows/ │ │ └── calc.feature │ ├── headers.js │ ├── karate-config.js │ ├── log4j2.properties │ ├── logback-test.xml │ ├── mock/ │ │ ├── async/ │ │ │ ├── AsyncTest.java │ │ │ ├── QueueConsumer.java │ │ │ ├── QueueUtils.java │ │ │ ├── karate-config.js │ │ │ ├── main.feature │ │ │ └── mock.feature │ │ ├── contract/ │ │ │ ├── Consumer.java │ │ │ ├── ConsumerIntegrationTest.java │ │ │ ├── ConsumerUsingMockTest.java │ │ │ ├── ConsumerUsingProxyHttpTest.java │ │ │ ├── ConsumerUsingProxyRewriteSslTest.java │ │ │ ├── ConsumerUsingProxyRewriteTest.java │ │ │ ├── Payment.java │ │ │ ├── PaymentService.java │ │ │ ├── PaymentServiceContractSslTest.java │ │ │ ├── PaymentServiceContractTest.java │ │ │ ├── PaymentServiceContractUsingMockSslTest.java │ │ │ ├── PaymentServiceContractUsingMockTest.java │ │ │ ├── PaymentServiceMockMain.java │ │ │ ├── PaymentServiceMockSslMain.java │ │ │ ├── QueueConsumer.java │ │ │ ├── QueueUtils.java │ │ │ ├── QueueUtilsTest.java │ │ │ ├── Shipment.java │ │ │ ├── increment.js │ │ │ ├── karate-config.js │ │ │ ├── payment-service-mock.feature │ │ │ ├── payment-service-proxy.feature │ │ │ ├── payment-service.feature │ │ │ └── payments.html │ │ ├── micro/ │ │ │ ├── CatsMockRunner.java │ │ │ ├── cats-mock.feature │ │ │ └── cats.feature │ │ ├── proxy/ │ │ │ ├── DemoMockProceedRunner.java │ │ │ ├── DemoMockProxyRunner.java │ │ │ ├── DemoMockProxySslRunner.java │ │ │ ├── DemoMockRunner.java │ │ │ ├── DemoMockSslRunner.java │ │ │ ├── demo-mock-proceed.feature │ │ │ ├── demo-mock.feature │ │ │ └── karate-config.js │ │ └── web/ │ │ ├── CatsMockRunner.java │ │ ├── CatsMockStarter.java │ │ ├── CatsTestRunner.java │ │ ├── cats-mock.feature │ │ ├── cats-test.feature │ │ └── cats.html │ ├── mock-cert.pem │ ├── mock-contract.jmx │ ├── mock-key.pem │ ├── server-keystore-cert.pem │ ├── server-keystore-key.pem │ ├── server-keystore.p12 │ ├── server-keystore.pem │ ├── ssl/ │ │ ├── SslTest.java │ │ ├── TestService.java │ │ ├── ssl-keystore.feature │ │ └── ssl-truststore.feature │ └── test/ │ ├── MonitorThread.java │ ├── ServerStart.java │ ├── ServerStop.java │ └── Stoppable.java ├── karate-docker/ │ ├── karate-chrome/ │ │ ├── Dockerfile │ │ ├── entrypoint.sh │ │ └── supervisord.conf │ ├── karate-chromium/ │ │ ├── Dockerfile │ │ ├── entrypoint.sh │ │ └── supervisord.conf │ └── karate-firefox/ │ ├── Dockerfile │ ├── build.sh │ ├── entrypoint.sh │ ├── install.sh │ └── supervisord.conf ├── karate-e2e-tests/ │ ├── README.md │ ├── pom.xml │ └── src/ │ └── test/ │ └── java/ │ ├── axe/ │ │ ├── AxeRunner.java │ │ ├── axe-report.html │ │ └── axe.feature │ ├── driver/ │ │ ├── 00.feature │ │ ├── 00_outline.feature │ │ ├── 01.feature │ │ ├── 02.feature │ │ ├── 03.feature │ │ ├── 04.feature │ │ ├── 05.feature │ │ ├── 05_mock.feature │ │ ├── 06.feature │ │ ├── 07.feature │ │ ├── 08.feature │ │ ├── 09.feature │ │ ├── 10.feature │ │ ├── 11.feature │ │ ├── 12.feature │ │ ├── 13.feature │ │ ├── 14.feature │ │ ├── 15.feature │ │ ├── 16.feature │ │ ├── 17.feature │ │ ├── 18.feature │ │ ├── 19.feature │ │ ├── 99_bootstrap.feature │ │ ├── DockerRunner.java │ │ ├── JavaApiPlaywrightRunner.java │ │ ├── JavaApiRunner.java │ │ ├── LocalParallelRunner.java │ │ ├── LocalPlaywrightRunner.java │ │ ├── LocalSingleRunner.java │ │ ├── ServerStarter.java │ │ ├── html/ │ │ │ ├── 00.css │ │ │ ├── 00.html │ │ │ ├── 00.js │ │ │ ├── 01.html │ │ │ ├── 02.html │ │ │ ├── 03.html │ │ │ ├── 04.html │ │ │ ├── 05.html │ │ │ ├── 06.html │ │ │ ├── 07.html │ │ │ ├── 08.html │ │ │ ├── 08_upload.html │ │ │ ├── 09.html │ │ │ ├── 10.html │ │ │ ├── 11.html │ │ │ ├── 11_tab.html │ │ │ ├── 13.html │ │ │ ├── 14.html │ │ │ ├── 14_embedded.html │ │ │ ├── 14_processing.html │ │ │ ├── 15.html │ │ │ ├── 16.html │ │ │ ├── 17_a.html │ │ │ ├── 17_b.html │ │ │ ├── 18.html │ │ │ ├── 19.html │ │ │ ├── 99_bootstrap.html │ │ │ ├── api/ │ │ │ │ └── 05.js │ │ │ └── scratch.html │ │ ├── karate-config-docker.js │ │ ├── karate-config-playwright.js │ │ ├── karate-config-single.js │ │ ├── karate-config-xbrowser.js │ │ ├── karate-config.js │ │ └── scratch.feature │ ├── logback-test.xml │ └── regex/ │ ├── RegexRunner.java │ └── regex.feature ├── karate-gatling/ │ ├── README.md │ ├── dummy.txt │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── intuit/ │ │ │ └── karate/ │ │ │ └── gatling/ │ │ │ └── javaapi/ │ │ │ ├── KarateDsl.java │ │ │ ├── KarateFeatureBuilder.java │ │ │ ├── KarateProtocolBuilder.java │ │ │ └── KarateUriPattern.java │ │ └── scala/ │ │ └── com/ │ │ └── intuit/ │ │ └── karate/ │ │ └── gatling/ │ │ ├── KarateActions.scala │ │ ├── KarateProtocol.scala │ │ └── PreDef.scala │ └── test/ │ ├── java/ │ │ ├── com/ │ │ │ └── intuit/ │ │ │ └── karate/ │ │ │ └── gatling/ │ │ │ └── javaapi/ │ │ │ └── KarateProtocolBuilderTest.java │ │ └── mock/ │ │ ├── CatsChainedSimulation.java │ │ ├── CatsSimulation.java │ │ ├── MockUtils.java │ │ ├── cats-chained.feature │ │ ├── cats-create.feature │ │ ├── cats-delete-one.feature │ │ ├── cats-delete.feature │ │ ├── custom-rpc.feature │ │ └── mock.feature │ ├── resources/ │ │ ├── gatling-akka.conf │ │ ├── karate-config-perf.js │ │ ├── karate-config.js │ │ ├── logback-test.xml │ │ └── test.feature │ └── scala/ │ └── mock/ │ ├── CatsChainedScalaSimulation.scala │ ├── CatsScalaSimulation.scala │ └── CatsSimulationWithSilentWarmUp.scala ├── karate-junit5/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── intuit/ │ │ └── karate/ │ │ └── junit5/ │ │ ├── FeatureNode.java │ │ └── Karate.java │ └── test/ │ └── java/ │ ├── karate/ │ │ ├── NoFeatureNoScenarioTest.java │ │ ├── SampleCustomTagsTest.java │ │ ├── SampleTest.java │ │ ├── SetupDryRunTest.java │ │ ├── customTags.feature │ │ ├── embed.feature │ │ ├── noFeatureNoScenario.feature │ │ ├── sample.feature │ │ ├── setup-with-dryrun.feature │ │ └── tags.feature │ ├── karate-config.js │ └── logback-test.xml ├── karate-netty/ │ └── README.md ├── karate-playwright/ │ ├── .gitignore │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── intuit/ │ │ └── karate/ │ │ ├── driver/ │ │ │ └── playwright/ │ │ │ └── PlaywrightDriver.java │ │ └── playwright/ │ │ └── driver/ │ │ ├── InvocationHandlers.java │ │ ├── PlaywrightDriver.java │ │ ├── PlaywrightDriverOptions.java │ │ ├── PlaywrightElement.java │ │ ├── PlaywrightFinder.java │ │ ├── PlaywrightMouse.java │ │ ├── PlaywrightToken.java │ │ └── util/ │ │ └── KarateTokenParser.java │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── intuit/ │ │ └── karate/ │ │ └── playwright/ │ │ └── driver/ │ │ ├── PlaywrightDriverTest.java │ │ └── PlaywrightElementTest.java │ └── resources/ │ └── html/ │ └── 02.html ├── karate-robot/ │ ├── README.md │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── intuit/ │ │ └── karate/ │ │ └── robot/ │ │ ├── Element.java │ │ ├── ImageElement.java │ │ ├── Location.java │ │ ├── MissingElement.java │ │ ├── OpenCvUtils.java │ │ ├── Region.java │ │ ├── Robot.java │ │ ├── RobotBase.java │ │ ├── RobotFactory.java │ │ ├── RobotUtils.java │ │ ├── StringMatcher.java │ │ ├── Tesseract.java │ │ ├── Window.java │ │ ├── linux/ │ │ │ └── LinuxRobot.java │ │ ├── mac/ │ │ │ └── MacRobot.java │ │ └── win/ │ │ ├── ComAllocated.java │ │ ├── ComAllocatedStr.java │ │ ├── ComAllocatedVarInt.java │ │ ├── ComAllocatedVarStr.java │ │ ├── ComFunction.java │ │ ├── ComInterface.java │ │ ├── ComLibrary.java │ │ ├── ComRef.java │ │ ├── ComUtils.java │ │ ├── ControlType.java │ │ ├── IUIAutomation.java │ │ ├── IUIAutomationBase.java │ │ ├── IUIAutomationCondition.java │ │ ├── IUIAutomationElement.java │ │ ├── IUIAutomationElementArray.java │ │ ├── IUIAutomationInvokePattern.java │ │ ├── IUIAutomationScrollPattern.java │ │ ├── IUIAutomationSelectionItemPattern.java │ │ ├── IUIAutomationTreeWalker.java │ │ ├── IUIAutomationValuePattern.java │ │ ├── IUIAutomationWindowPattern.java │ │ ├── PathSearch.java │ │ ├── Pattern.java │ │ ├── Property.java │ │ ├── ScrollAmount.java │ │ ├── TreeScope.java │ │ ├── WinElement.java │ │ ├── WinRobot.java │ │ └── WinWindow.java │ └── test/ │ └── java/ │ ├── com/ │ │ └── intuit/ │ │ └── karate/ │ │ └── robot/ │ │ ├── OpenCvUtilsTest.java │ │ ├── TesseractRunner.java │ │ └── win/ │ │ ├── IUIAutomationRunner.java │ │ ├── PathSearchTest.java │ │ └── WinRobotRunner.java │ ├── logback-test.xml │ └── robot/ │ └── core/ │ ├── ChromeJavaRunner.java │ ├── CoreRunner.java │ ├── calc.feature │ ├── called.feature │ ├── caller.feature │ ├── chrome.feature │ ├── dummy.feature │ ├── iphone.feature │ ├── upload.feature │ └── wordpad.feature └── pom.xml