jenkinsci / xray-connector-plugin

Xray Test Management Connector for Jenkins
https://plugins.jenkins.io/xray-connector/
MIT License
16 stars 13 forks source link

Xray cant't import the execution results as Cucumber JSON Multipart via cucumber.json #78

Open slymanAktas opened 4 months ago

slymanAktas commented 4 months ago

Jenkins and plugins versions report

Jenkins: 2.451 OS: Linux - 4.18.0-477.13.1.el8_8.x86_64 Java: 17.0.10 - Eclipse Adoptium (OpenJDK 64-Bit Server VM)

allure-jenkins-plugin:2.31.1 ant:497.v94e7d9fffa_b_9 antisamy-markup-formatter:162.v0e6ec0fcfcf6 apache-httpcomponents-client-4-api:4.5.14-208.v438351942757 asm-api:9.7-33.v4d23ef79fcc8 authentication-tokens:1.53.v1c90fd9191ab bootstrap5-api:5.3.3-1 bouncycastle-api:2.30.1.77-225.v26ea_c9455fd9 branch-api:2.1152.v6f101e97dd77 build-timeout:1.32 caffeine-api:3.1.8-133.v17b_1ff2e0599 checks-api:2.0.2 cloudbees-bitbucket-branch-source:883.v041fa_695e9c2 cloudbees-folder:6.928.v7c780211d66e command-launcher:107.v773860566e2e commons-lang3-api:3.13.0-62.v7d18e55f51e2 commons-text-api:1.11.0-95.v22a_d30ee5d36 credentials:1337.v60b_d7b_c7b_c9f credentials-binding:657.v2b_19db_7d6e6d dark-theme:439.vdef09f81f85e display-url-api:2.200.vb_9327d658781 durable-task:550.v0930093c4b_a_6 echarts-api:5.5.0-1 email-ext:2.105 font-awesome-api:6.5.1-3 git:5.2.1 git-client:4.7.0 github:1.38.0 github-api:1.318-461.v7a_c09c9fa_d63 github-branch-source:1785.v99802b_69816c gradle:2.10 gson-api:2.10.1-15.v0d99f670e0a_7 handy-uri-templates-2-api:2.1.8-30.v7e777411b_148 htmlpublisher:1.33 instance-identity:185.v303dc7c645f9 ionicons-api:70.v2959a_b_74e3cf jackson2-api:2.17.0-379.v02de8ec9f64c jakarta-activation-api:2.1.3-1 jakarta-mail-api:2.1.3-1 javadoc:243.vb_b_503b_b_45537 javax-activation-api:1.2.0-6 javax-mail-api:1.6.2-9 jaxb:2.3.9-1 jdk-tool:73.vddf737284550 jjwt-api:0.11.5-112.ve82dfb_224b_a_d joda-time-api:2.12.7-29.v5a_b_e3a82269a jquery:1.12.4-1 jquery3-api:3.7.1-2 jsch:0.2.16-86.v42e010d9484b_ json-api:20240303-41.v94e11e6de726 json-path-api:2.9.0-58.v62e3e85b_a_655 junit:1265.v65b_14fa_f12f0 ldap:719.vcb_d039b_77d0d mailer:472.vf7c289a_4b_420 matrix-auth:3.2.2 matrix-project:822.824.v14451b_c0fd42 maven-plugin:3.23 metrics:4.2.21-449.v6960d7c54c69 mina-sshd-api-common:2.12.1-101.v85b_e08b_780dd mina-sshd-api-core:2.12.1-101.v85b_e08b_780dd okhttp-api:4.11.0-172.vda_da_1feeb_c6e pam-auth:1.10 pipeline-build-step:540.vb_e8849e1a_b_d8 pipeline-github-lib:42.v0739460cda_c4 pipeline-graph-analysis:216.vfd8bece330ca pipeline-graph-view:234.v984087d1eb_25 pipeline-groovy-lib:704.vc58b_8890a_384 pipeline-input-step:491.vb_07d21da_1afb pipeline-milestone-step:119.vdfdc43fc3b9a pipeline-model-api:2.2184.v0b_358b_953e69 pipeline-model-definition:2.2184.v0b_358b_953e69 pipeline-model-extensions:2.2184.v0b_358b953e69 pipeline-stage-step:312.v8cd10304c27a pipeline-stage-tags-metadata:2.2184.v0b_358b_953e69 plain-credentials:179.vc5cb_98f6db_38 plugin-util-api:4.1.0 resource-disposer:0.23 scm-api:689.v237b_6d3a_ef7f script-security:1326.vdb_c154de8669 snakeyaml-api:2.2-111.vc6598e30cc65 ssh:2.6.1 ssh-credentials:337.v395d2403ccd4 ssh-slaves:2.948.vb_8050d697fec sshd:3.322.v159e91f6a_550 structs:337.v1b_04ea_4df7c8 theme-manager:215.vc1ff18d67920 timestamper:1.26 token-macro:400.v35420b922dcb trilead-api:2.142.v748523a_76693 variant:60.v7290fc0eb_b_cd workflow-aggregator:596.v8c21c963d92d workflow-api:1291.v51fd2a_625da_7 workflow-basic-steps:1049.v257a_e6b_30fb_d workflow-cps:3894.vd0f0248b_a_fc4 workflow-durable-task-step:1336.v768003e07199 workflow-job:1400.v7fd111b_ec82f workflow-multibranch:783.va_6eb_ef636fb_d workflow-scm-step:427.v4ca_6512e7df1 workflow-step-api:657.v03be8115821b workflow-support:896.v175a_a_9c5b_78f ws-cleanup:0.45 xray-connector:2.6.1

What Operating System are you using (both controller, and any agents involved in the problem)?

cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 12 (bookworm)" NAME="Debian GNU/Linux" VERSION_ID="12" VERSION="12 (bookworm)" VERSION_CODENAME=bookworm ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/"

Reproduction steps

pipeline {
    agent any
    tools {
        maven 'jenkins-maven-3.8.6'
    }
    stages {
         stage('Synch (update) recent tests to Xray'){
            steps {
                checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '6443a6da-848b-4206-8a10-364619f77c50', url: 'ssh://git@git.paycore.com:7999/tauto/ocean-java-test-e2e.git']]])
                step([$class: 'XrayImportFeatureBuilder', folderPath: 'src/test/java/com/paycore/bdd/features', lastModified: '', projectKey: 'XRAYT2', serverInstance: 'SERVER-c29a3e2d-a38f-4f45-8817-e8b69fda923e'])
            }
        }
        stage('Test'){
            steps{
                sh "mvn clean test -Pdebug-jenkins"
            }
        }
    }
    post {
        always {
            step([$class: 'XrayImportBuilder', endpointName: '/cucumber', importFilePath: 'target/cucumber-json-reports/cucumber.json', serverInstance: 'SERVER-c29a3e2d-a38f-4f45-8817-e8b69fda923e'])
        }   
    }
}

Expected Results

After I execute my test suite via jenkins job,

1.step -> I should see all my scenarios (src/test/java/com/paycore/bdd/features) will be imported to jira 2.step -> All case are executed via jenkins 3.step -> After execution, Xray plugin create Test Execution then take action with Test which created on 1.step

Actual Results

First 2 step is ok but inside 3. step Xray plugin create just Test Execution then do nothing

Anything else?

I put here my cucumber.json

[
  {
    "line": 2,
    "elements": [
      {
        "line": 4,
        "name": "",
        "description": "",
        "type": "background",
        "keyword": "Background",
        "steps": [
          {
            "result": {
              "duration": 305528000,
              "status": "passed"
            },
            "line": 9,
            "name": "Init operator named with \"test.otomasyon\" and password as \"/g6qH4cQ\" for \"papara\"",
            "match": {
              "arguments": [
                {
                  "val": "\"test.otomasyon\"",
                  "offset": 25
                },
                {
                  "val": "\"/g6qH4cQ\"",
                  "offset": 58
                },
                {
                  "val": "\"papara\"",
                  "offset": 73
                }
              ],
              "location": "com.paycore.bdd.steps.OperatorSteps.initOperatorNamedWithPasswordAsFor(java.lang.String,java.lang.String,java.lang.String)"
            },
            "after": [
              {
                "result": {
                  "duration": 5999900,
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "Given "
          }
        ]
      },
      {
        "start_timestamp": "2024-04-18T07:18:01.989Z",
        "before": [
          {
            "result": {
              "duration": 67000800,
              "status": "passed"
            },
            "match": {
              "location": "com.paycore.bdd.steps.hooks.StepHooks.initTest(io.cucumber.java.Scenario)"
            }
          }
        ],
        "line": 12,
        "name": "Should Get Access Token as Successfully",
        "description": "",
        "id": "auth-feature;should-get-access-token-as-successfully",
        "after": [
          {
            "result": {
              "duration": 998500,
              "status": "passed"
            },
            "match": {
              "location": "com.paycore.bdd.steps.hooks.StepHooks.killTest(io.cucumber.java.Scenario)"
            }
          }
        ],
        "type": "scenario",
        "keyword": "Scenario",
        "steps": [
          {
            "result": {
              "duration": 1506038700,
              "status": "passed"
            },
            "line": 13,
            "name": "Operator is aim to get access token",
            "match": {
              "location": "com.paycore.bdd.steps.OperatorSteps.getAccessToken()"
            },
            "after": [
              {
                "result": {
                  "duration": 997900,
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "When "
          },
          {
            "result": {
              "error_message": "java.lang.AssertionError: Operator could not be logged in\r\n\tat org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:26)\r\n\tat com.paycore.bdd.steps.OperatorSteps.couldLoggedIn(OperatorSteps.java:75)\r\n\tat ✽.Operator should BE able to get access token(file:///C:/Users/suleyman.aktas/Documents/development/java/ocean-java-test-e2e/src/test/java/com/paycore/bdd/features/authentication/auth.feature:14)\r\n",
              "duration": 4001600,
              "status": "failed"
            },
            "line": 14,
            "name": "Operator should BE able to get access token",
            "match": {
              "arguments": [
                {
                  "val": "BE",
                  "offset": 16
                }
              ],
              "location": "com.paycore.bdd.steps.OperatorSteps.couldLoggedIn(com.paycore.bdd.steps.OperatorSteps$BeOrNotToBe)"
            },
            "after": [
              {
                "result": {
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "Then "
          }
        ],
        "tags": [
          {
            "name": "@debug"
          }
        ]
      },
      {
        "line": 4,
        "name": "",
        "description": "",
        "type": "background",
        "keyword": "Background",
        "steps": [
          {
            "result": {
              "duration": 303526400,
              "status": "passed"
            },
            "line": 9,
            "name": "Init operator named with \"test.otomasyon\" and password as \"/g6qH4cQ\" for \"papara\"",
            "match": {
              "arguments": [
                {
                  "val": "\"test.otomasyon\"",
                  "offset": 25
                },
                {
                  "val": "\"/g6qH4cQ\"",
                  "offset": 58
                },
                {
                  "val": "\"papara\"",
                  "offset": 73
                }
              ],
              "location": "com.paycore.bdd.steps.OperatorSteps.initOperatorNamedWithPasswordAsFor(java.lang.String,java.lang.String,java.lang.String)"
            },
            "after": [
              {
                "result": {
                  "duration": 4000000,
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "Given "
          }
        ]
      },
      {
        "start_timestamp": "2024-04-18T07:18:01.989Z",
        "before": [
          {
            "result": {
              "duration": 70002000,
              "status": "passed"
            },
            "match": {
              "location": "com.paycore.bdd.steps.hooks.StepHooks.initTest(io.cucumber.java.Scenario)"
            }
          }
        ],
        "line": 16,
        "name": "Should Not Get Access Token with Wrong UserCode",
        "description": "",
        "id": "auth-feature;should-not-get-access-token-with-wrong-usercode",
        "after": [
          {
            "result": {
              "duration": 995000,
              "status": "passed"
            },
            "match": {
              "location": "com.paycore.bdd.steps.hooks.StepHooks.killTest(io.cucumber.java.Scenario)"
            }
          }
        ],
        "type": "scenario",
        "keyword": "Scenario",
        "steps": [
          {
            "result": {
              "duration": 12002700,
              "status": "passed"
            },
            "line": 17,
            "name": "Update \"Operator\" Set \"UserCode\" as \"WrongUserCode\" Where \"UserCode\" is \"test.otomasyon\"",
            "match": {
              "arguments": [
                {
                  "val": "\"Operator\"",
                  "offset": 7
                },
                {
                  "val": "\"UserCode\"",
                  "offset": 22
                },
                {
                  "val": "\"WrongUserCode\"",
                  "offset": 36
                },
                {
                  "val": "\"UserCode\"",
                  "offset": 58
                },
                {
                  "val": "\"test.otomasyon\"",
                  "offset": 72
                }
              ],
              "location": "com.paycore.bdd.steps.TestDataSteps.updateTestData(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"
            },
            "after": [
              {
                "result": {
                  "duration": 999800,
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "Given "
          },
          {
            "result": {
              "duration": 1481035300,
              "status": "passed"
            },
            "line": 18,
            "name": "Operator is aim to get access token",
            "match": {
              "location": "com.paycore.bdd.steps.OperatorSteps.getAccessToken()"
            },
            "after": [
              {
                "result": {
                  "duration": 997900,
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "When "
          },
          {
            "result": {
              "duration": 3002500,
              "status": "passed"
            },
            "line": 19,
            "name": "Operator should NOT_TO_BE able to get access token",
            "match": {
              "arguments": [
                {
                  "val": "NOT_TO_BE",
                  "offset": 16
                }
              ],
              "location": "com.paycore.bdd.steps.OperatorSteps.couldLoggedIn(com.paycore.bdd.steps.OperatorSteps$BeOrNotToBe)"
            },
            "after": [
              {
                "result": {
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "Then "
          },
          {
            "result": {
              "error_message": "org.assertj.core.error.AssertJMultipleFailuresError: \r\nMultiple Failures (1 failure)\r\n-- failure 1 --\r\n[In Response, statusCode should shown as 404 on TokenResponse] But it was for : 500\r\nat OperatorSteps.checkResponsePath(OperatorSteps.java:99)\r\n\tat java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67)\r\n\tat java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)\r\n\tat com.paycore.bdd.steps.OperatorSteps.checkResponsePath(OperatorSteps.java:100)\r\n\tat ✽.Operator should see \"statusCode\" as \"404\" on \"TokenResponse\"(file:///C:/Users/suleyman.aktas/Documents/development/java/ocean-java-test-e2e/src/test/java/com/paycore/bdd/features/authentication/auth.feature:21)\r\n",
              "duration": 445013300,
              "status": "failed"
            },
            "line": 21,
            "name": "Operator should see \"statusCode\" as \"404\" on \"TokenResponse\"",
            "match": {
              "arguments": [
                {
                  "val": "\"statusCode\"",
                  "offset": 20
                },
                {
                  "val": "\"404\"",
                  "offset": 36
                },
                {
                  "val": "\"TokenResponse\"",
                  "offset": 45
                }
              ],
              "location": "com.paycore.bdd.steps.OperatorSteps.checkResponsePath(java.lang.String,java.lang.String,java.lang.String)"
            },
            "after": [
              {
                "result": {
                  "duration": 998700,
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "Then "
          },
          {
            "result": {
              "duration": 2002000,
              "status": "skipped"
            },
            "line": 22,
            "name": "Operator should see \"exception.code\" as \"Exception.UserNotFound\" on \"TokenResponse\"",
            "match": {
              "arguments": [
                {
                  "val": "\"exception.code\"",
                  "offset": 20
                },
                {
                  "val": "\"Exception.UserNotFound\"",
                  "offset": 40
                },
                {
                  "val": "\"TokenResponse\"",
                  "offset": 68
                }
              ],
              "location": "com.paycore.bdd.steps.OperatorSteps.checkResponsePath(java.lang.String,java.lang.String,java.lang.String)"
            },
            "after": [
              {
                "result": {
                  "status": "skipped"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "And "
          },
          {
            "result": {
              "status": "skipped"
            },
            "line": 23,
            "name": "Operator should see \"exception.message\" as \"Login failed. Please check your credentials and try again. Id: WrongUserCode\" on \"TokenResponse\"",
            "match": {
              "arguments": [
                {
                  "val": "\"exception.message\"",
                  "offset": 20
                },
                {
                  "val": "\"Login failed. Please check your credentials and try again. Id: WrongUserCode\"",
                  "offset": 43
                },
                {
                  "val": "\"TokenResponse\"",
                  "offset": 125
                }
              ],
              "location": "com.paycore.bdd.steps.OperatorSteps.checkResponsePath(java.lang.String,java.lang.String,java.lang.String)"
            },
            "after": [
              {
                "result": {
                  "status": "skipped"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "And "
          }
        ],
        "tags": [
          {
            "name": "@debug"
          }
        ]
      },
      {
        "line": 4,
        "name": "",
        "description": "",
        "type": "background",
        "keyword": "Background",
        "steps": [
          {
            "result": {
              "duration": 304527500,
              "status": "passed"
            },
            "line": 9,
            "name": "Init operator named with \"test.otomasyon\" and password as \"/g6qH4cQ\" for \"papara\"",
            "match": {
              "arguments": [
                {
                  "val": "\"test.otomasyon\"",
                  "offset": 25
                },
                {
                  "val": "\"/g6qH4cQ\"",
                  "offset": 58
                },
                {
                  "val": "\"papara\"",
                  "offset": 73
                }
              ],
              "location": "com.paycore.bdd.steps.OperatorSteps.initOperatorNamedWithPasswordAsFor(java.lang.String,java.lang.String,java.lang.String)"
            },
            "after": [
              {
                "result": {
                  "duration": 999700,
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "Given "
          }
        ]
      },
      {
        "start_timestamp": "2024-04-18T07:18:01.986Z",
        "before": [
          {
            "result": {
              "duration": 70002000,
              "status": "passed"
            },
            "match": {
              "location": "com.paycore.bdd.steps.hooks.StepHooks.initTest(io.cucumber.java.Scenario)"
            }
          }
        ],
        "line": 25,
        "name": "Should Not Get Access Token with Wrong Password",
        "description": "",
        "id": "auth-feature;should-not-get-access-token-with-wrong-password",
        "after": [
          {
            "result": {
              "duration": 2999100,
              "status": "passed"
            },
            "match": {
              "location": "com.paycore.bdd.steps.hooks.StepHooks.killTest(io.cucumber.java.Scenario)"
            }
          }
        ],
        "type": "scenario",
        "keyword": "Scenario",
        "steps": [
          {
            "result": {
              "duration": 16004200,
              "status": "passed"
            },
            "line": 26,
            "name": "Update \"Operator\" Set \"password\" as \"WrongPass\" Where \"UserCode\" is \"test.otomasyon\"",
            "match": {
              "arguments": [
                {
                  "val": "\"Operator\"",
                  "offset": 7
                },
                {
                  "val": "\"password\"",
                  "offset": 22
                },
                {
                  "val": "\"WrongPass\"",
                  "offset": 36
                },
                {
                  "val": "\"UserCode\"",
                  "offset": 54
                },
                {
                  "val": "\"test.otomasyon\"",
                  "offset": 68
                }
              ],
              "location": "com.paycore.bdd.steps.TestDataSteps.updateTestData(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"
            },
            "after": [
              {
                "result": {
                  "duration": 1002100,
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "Given "
          },
          {
            "result": {
              "duration": 1518001700,
              "status": "passed"
            },
            "line": 27,
            "name": "Operator is aim to get access token",
            "match": {
              "location": "com.paycore.bdd.steps.OperatorSteps.getAccessToken()"
            },
            "after": [
              {
                "result": {
                  "duration": 1001500,
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "When "
          },
          {
            "result": {
              "duration": 2000300,
              "status": "passed"
            },
            "line": 28,
            "name": "Operator should NOT_TO_BE able to get access token",
            "match": {
              "arguments": [
                {
                  "val": "NOT_TO_BE",
                  "offset": 16
                }
              ],
              "location": "com.paycore.bdd.steps.OperatorSteps.couldLoggedIn(com.paycore.bdd.steps.OperatorSteps$BeOrNotToBe)"
            },
            "after": [
              {
                "result": {
                  "duration": 1001000,
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "Then "
          },
          {
            "result": {
              "error_message": "org.assertj.core.error.AssertJMultipleFailuresError: \r\nMultiple Failures (1 failure)\r\n-- failure 1 --\r\n[In Response, statusCode should shown as 406 on TokenResponse] But it was for : 500\r\nat OperatorSteps.checkResponsePath(OperatorSteps.java:99)\r\n\tat java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67)\r\n\tat java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)\r\n\tat com.paycore.bdd.steps.OperatorSteps.checkResponsePath(OperatorSteps.java:100)\r\n\tat ✽.Operator should see \"statusCode\" as \"406\" on \"TokenResponse\"(file:///C:/Users/suleyman.aktas/Documents/development/java/ocean-java-test-e2e/src/test/java/com/paycore/bdd/features/authentication/auth.feature:30)\r\n",
              "duration": 335010000,
              "status": "failed"
            },
            "line": 30,
            "name": "Operator should see \"statusCode\" as \"406\" on \"TokenResponse\"",
            "match": {
              "arguments": [
                {
                  "val": "\"statusCode\"",
                  "offset": 20
                },
                {
                  "val": "\"406\"",
                  "offset": 36
                },
                {
                  "val": "\"TokenResponse\"",
                  "offset": 45
                }
              ],
              "location": "com.paycore.bdd.steps.OperatorSteps.checkResponsePath(java.lang.String,java.lang.String,java.lang.String)"
            },
            "after": [
              {
                "result": {
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "Then "
          },
          {
            "result": {
              "duration": 2002000,
              "status": "skipped"
            },
            "line": 31,
            "name": "Operator should see \"exception.code\" as \"Exception.PasswordMismatch\" on \"TokenResponse\"",
            "match": {
              "arguments": [
                {
                  "val": "\"exception.code\"",
                  "offset": 20
                },
                {
                  "val": "\"Exception.PasswordMismatch\"",
                  "offset": 40
                },
                {
                  "val": "\"TokenResponse\"",
                  "offset": 72
                }
              ],
              "location": "com.paycore.bdd.steps.OperatorSteps.checkResponsePath(java.lang.String,java.lang.String,java.lang.String)"
            },
            "after": [
              {
                "result": {
                  "duration": 997400,
                  "status": "skipped"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "And "
          },
          {
            "result": {
              "status": "skipped"
            },
            "line": 32,
            "name": "Operator should see \"exception.message\" as \"Login failed. Please check your credentials and try again.\" on \"TokenResponse\"",
            "match": {
              "arguments": [
                {
                  "val": "\"exception.message\"",
                  "offset": 20
                },
                {
                  "val": "\"Login failed. Please check your credentials and try again.\"",
                  "offset": 43
                },
                {
                  "val": "\"TokenResponse\"",
                  "offset": 107
                }
              ],
              "location": "com.paycore.bdd.steps.OperatorSteps.checkResponsePath(java.lang.String,java.lang.String,java.lang.String)"
            },
            "after": [
              {
                "result": {
                  "status": "skipped"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "And "
          }
        ],
        "tags": [
          {
            "name": "@debug"
          }
        ]
      },
      {
        "line": 4,
        "name": "",
        "description": "",
        "type": "background",
        "keyword": "Background",
        "steps": [
          {
            "result": {
              "duration": 313528100,
              "status": "passed"
            },
            "line": 9,
            "name": "Init operator named with \"test.otomasyon\" and password as \"/g6qH4cQ\" for \"papara\"",
            "match": {
              "arguments": [
                {
                  "val": "\"test.otomasyon\"",
                  "offset": 25
                },
                {
                  "val": "\"/g6qH4cQ\"",
                  "offset": 58
                },
                {
                  "val": "\"papara\"",
                  "offset": 73
                }
              ],
              "location": "com.paycore.bdd.steps.OperatorSteps.initOperatorNamedWithPasswordAsFor(java.lang.String,java.lang.String,java.lang.String)"
            },
            "after": [
              {
                "result": {
                  "duration": 2999800,
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "Given "
          }
        ]
      },
      {
        "start_timestamp": "2024-04-18T07:18:01.988Z",
        "before": [
          {
            "result": {
              "duration": 70002000,
              "status": "passed"
            },
            "match": {
              "location": "com.paycore.bdd.steps.hooks.StepHooks.initTest(io.cucumber.java.Scenario)"
            }
          }
        ],
        "line": 34,
        "name": "Should Not Get Access Token with Wrong Member",
        "description": "",
        "id": "auth-feature;should-not-get-access-token-with-wrong-member",
        "after": [
          {
            "result": {
              "duration": 1999300,
              "status": "passed"
            },
            "match": {
              "location": "com.paycore.bdd.steps.hooks.StepHooks.killTest(io.cucumber.java.Scenario)"
            }
          }
        ],
        "type": "scenario",
        "keyword": "Scenario",
        "steps": [
          {
            "result": {
              "duration": 13003300,
              "status": "passed"
            },
            "line": 35,
            "name": "Update \"Operator\" Set \"mbrId\" as \"123\" Where \"UserCode\" is \"test.otomasyon\"",
            "match": {
              "arguments": [
                {
                  "val": "\"Operator\"",
                  "offset": 7
                },
                {
                  "val": "\"mbrId\"",
                  "offset": 22
                },
                {
                  "val": "\"123\"",
                  "offset": 33
                },
                {
                  "val": "\"UserCode\"",
                  "offset": 45
                },
                {
                  "val": "\"test.otomasyon\"",
                  "offset": 59
                }
              ],
              "location": "com.paycore.bdd.steps.TestDataSteps.updateTestData(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"
            },
            "after": [
              {
                "result": {
                  "duration": 3033200,
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "Given "
          },
          {
            "result": {
              "duration": 1515033200,
              "status": "passed"
            },
            "line": 36,
            "name": "Operator is aim to get access token",
            "match": {
              "location": "com.paycore.bdd.steps.OperatorSteps.getAccessToken()"
            },
            "after": [
              {
                "result": {
                  "duration": 998900,
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "When "
          },
          {
            "result": {
              "duration": 2000900,
              "status": "passed"
            },
            "line": 37,
            "name": "Operator should NOT_TO_BE able to get access token",
            "match": {
              "arguments": [
                {
                  "val": "NOT_TO_BE",
                  "offset": 16
                }
              ],
              "location": "com.paycore.bdd.steps.OperatorSteps.couldLoggedIn(com.paycore.bdd.steps.OperatorSteps$BeOrNotToBe)"
            },
            "after": [
              {
                "result": {
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "Then "
          },
          {
            "result": {
              "error_message": "org.assertj.core.error.AssertJMultipleFailuresError: \r\nMultiple Failures (1 failure)\r\n-- failure 1 --\r\n[In Response, statusCode should shown as 401 on TokenResponse] But it was for : 500\r\nat OperatorSteps.checkResponsePath(OperatorSteps.java:99)\r\n\tat java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67)\r\n\tat java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)\r\n\tat com.paycore.bdd.steps.OperatorSteps.checkResponsePath(OperatorSteps.java:100)\r\n\tat ✽.Operator should see \"statusCode\" as \"401\" on \"TokenResponse\"(file:///C:/Users/suleyman.aktas/Documents/development/java/ocean-java-test-e2e/src/test/java/com/paycore/bdd/features/authentication/auth.feature:39)\r\n",
              "duration": 358007600,
              "status": "failed"
            },
            "line": 39,
            "name": "Operator should see \"statusCode\" as \"401\" on \"TokenResponse\"",
            "match": {
              "arguments": [
                {
                  "val": "\"statusCode\"",
                  "offset": 20
                },
                {
                  "val": "\"401\"",
                  "offset": 36
                },
                {
                  "val": "\"TokenResponse\"",
                  "offset": 45
                }
              ],
              "location": "com.paycore.bdd.steps.OperatorSteps.checkResponsePath(java.lang.String,java.lang.String,java.lang.String)"
            },
            "after": [
              {
                "result": {
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "Then "
          },
          {
            "result": {
              "status": "skipped"
            },
            "line": 40,
            "name": "Operator should see \"exception.code\" as \"Exception.NotAuthorizedMemberAccessDenied\" on \"TokenResponse\"",
            "match": {
              "arguments": [
                {
                  "val": "\"exception.code\"",
                  "offset": 20
                },
                {
                  "val": "\"Exception.NotAuthorizedMemberAccessDenied\"",
                  "offset": 40
                },
                {
                  "val": "\"TokenResponse\"",
                  "offset": 87
                }
              ],
              "location": "com.paycore.bdd.steps.OperatorSteps.checkResponsePath(java.lang.String,java.lang.String,java.lang.String)"
            },
            "after": [
              {
                "result": {
                  "duration": 999800,
                  "status": "skipped"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "And "
          },
          {
            "result": {
              "status": "skipped"
            },
            "line": 41,
            "name": "Operator should see \"exception.message\" as \"User does not have permission for member. Member Id : 123\" on \"TokenResponse\"",
            "match": {
              "arguments": [
                {
                  "val": "\"exception.message\"",
                  "offset": 20
                },
                {
                  "val": "\"User does not have permission for member. Member Id : 123\"",
                  "offset": 43
                },
                {
                  "val": "\"TokenResponse\"",
                  "offset": 106
                }
              ],
              "location": "com.paycore.bdd.steps.OperatorSteps.checkResponsePath(java.lang.String,java.lang.String,java.lang.String)"
            },
            "after": [
              {
                "result": {
                  "status": "skipped"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "And "
          }
        ],
        "tags": [
          {
            "name": "@debug"
          }
        ]
      }
    ],
    "name": "Auth feature",
    "description": "",
    "id": "auth-feature",
    "keyword": "Feature",
    "uri": "file:src/test/java/com/paycore/bdd/features/authentication/auth.feature",
    "tags": [
      {
        "name": "@debug",
        "type": "Tag",
        "location": {
          "line": 1,
          "column": 1
        }
      }
    ]
  },
  {
    "line": 2,
    "elements": [
      {
        "line": 4,
        "name": "",
        "description": "",
        "type": "background",
        "keyword": "Background",
        "steps": [
          {
            "result": {
              "duration": 302527200,
              "status": "passed"
            },
            "line": 5,
            "name": "Init operator named with \"test.otomasyon\" and password as \"/g6qH4cQ\" for \"papara\"",
            "match": {
              "arguments": [
                {
                  "val": "\"test.otomasyon\"",
                  "offset": 25
                },
                {
                  "val": "\"/g6qH4cQ\"",
                  "offset": 58
                },
                {
                  "val": "\"papara\"",
                  "offset": 73
                }
              ],
              "location": "com.paycore.bdd.steps.OperatorSteps.initOperatorNamedWithPasswordAsFor(java.lang.String,java.lang.String,java.lang.String)"
            },
            "after": [
              {
                "result": {
                  "duration": 5999700,
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "Given "
          },
          {
            "result": {
              "duration": 1540037500,
              "status": "passed"
            },
            "line": 6,
            "name": "Operator is aim to get access token",
            "match": {
              "location": "com.paycore.bdd.steps.OperatorSteps.getAccessToken()"
            },
            "after": [
              {
                "result": {
                  "duration": 1997900,
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "Then "
          }
        ]
      },
      {
        "start_timestamp": "2024-04-18T07:18:01.984Z",
        "before": [
          {
            "result": {
              "duration": 65001600,
              "status": "passed"
            },
            "match": {
              "location": "com.paycore.bdd.steps.hooks.StepHooks.initTest(io.cucumber.java.Scenario)"
            }
          }
        ],
        "line": 9,
        "name": "Should Create Customer as Successfully",
        "description": "",
        "id": "create-customer;should-create-customer-as-successfully",
        "after": [
          {
            "result": {
              "duration": 1968900,
              "status": "passed"
            },
            "match": {
              "location": "com.paycore.bdd.steps.hooks.StepHooks.killTest(io.cucumber.java.Scenario)"
            }
          }
        ],
        "type": "scenario",
        "keyword": "Scenario",
        "steps": [
          {
            "result": {
              "duration": 439010900,
              "status": "passed"
            },
            "line": 10,
            "name": "Operator is trying to register customer",
            "match": {
              "location": "com.paycore.bdd.steps.OperatorSteps.registerCustomer()"
            },
            "after": [
              {
                "result": {
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "When "
          },
          {
            "result": {
              "error_message": "java.lang.AssertionError: Operator is in trouble with create customer\r\n\tat org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:26)\r\n\tat com.paycore.bdd.steps.OperatorSteps.couldCreateCustomer(OperatorSteps.java:88)\r\n\tat ✽.Operator should be able to create customer(file:///C:/Users/suleyman.aktas/Documents/development/java/ocean-java-test-e2e/src/test/java/com/paycore/bdd/features/customer_management/create-customer.feature:11)\r\n",
              "duration": 1000200,
              "status": "failed"
            },
            "line": 11,
            "name": "Operator should be able to create customer",
            "match": {
              "location": "com.paycore.bdd.steps.OperatorSteps.couldCreateCustomer()"
            },
            "after": [
              {
                "result": {
                  "duration": 995500,
                  "status": "passed"
                },
                "match": {
                  "location": "com.paycore.bdd.steps.hooks.StepHooks.afterStep(io.cucumber.java.Scenario)"
                }
              }
            ],
            "keyword": "Then "
          }
        ],
        "tags": [
          {
            "name": "@debug"
          }
        ]
      }
    ],
    "name": "Create Customer",
    "description": "",
    "id": "create-customer",
    "keyword": "Feature",
    "uri": "file:src/test/java/com/paycore/bdd/features/customer_management/create-customer.feature",
    "tags": [
      {
        "name": "@debug",
        "type": "Tag",
        "location": {
          "line": 1,
          "column": 1
        }
      }
    ]
  }
]

Are you interested in contributing a fix?

Of course