Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Import JSON results with REST API

Ewgeni August 31, 2016

Hello,

last week I had some problems with importing Cucumber exectuion results as JSON in XRAY.

This Thread https://answers.atlassian.com/questions/39789353 actually helped me to solve the problem.

Yesterday I started to try this in the automatic way in combination with the REST api.

 

Know the following problem appeared: 

If I upload the execution results in these format (automated  and manually)  :

{
	"tests": [
		{
			"testKey": "XCTP-54",
			"start": "2014-08-30T11:51:00+01:00",
			"finish": "2014-08-30T11:52:30+01:00",
			"comment": "Execution failed. Example #5 FAIL.",
			"status": "PASS",
			"examples": [
				"PASS",
				"PASS",
				"PASS",
				"PASS",
				"PASS"
			]
		}
	]
}

everything works fine and XRAY is able to interprete the results.

 

The problem is Cucumber is actually generating a JSON file looking like this:

[
  {
    "line": 1,
    "elements": [
      {
        "before": [
          {
            "result": {
              "duration": 8630000633,
              "status": "passed"
            },
            "match": {
              "location": "StepDefinitions.setup()"
            }
          }
        ],
        "line": 5,
        "name": "Login",
        "description": "",
        "id": ";login",
        "type": "scenario",
        "keyword": "Scenario",
        "steps": [
          {
            "result": {
              "duration": 1801488144,
              "status": "passed"
            },
            "line": 6,
            "name": "I am on the login portal",
            "match": {
              "location": "StepDefinitions.shouldNavigateToPortal()"
            },
            "keyword": "Given "
          },
          {
            "result": {
              "duration": 245305591,
              "status": "passed"
            },
            "line": 7,
            "name": "I fill in my login data",
            "match": {
              "location": "StepDefLoginData.i_fill_in_my_login_data()"
            },
            "keyword": "When "
          },
          {
            "result": {
              "duration": 115542548,
              "status": "passed"
            },
            "line": 8,
            "name": "I press the login button",
            "match": {
              "location": "StepDefinitions.shouldPressLogIn()"
            },
            "keyword": "And "
          },
          {
            "result": {
              "duration": 2007072617,
              "status": "passed"
            },
            "line": 9,
            "name": "I should see the Aufgabenuebersicht",
            "match": {
              "location": "StepDefinitions.shouldSeeAufgabenuebersicht()"
            },
            "keyword": "Then "
          },
          {
            "result": {
              "duration": 2063241998,
              "status": "passed"
            },
            "line": 10,
            "name": "I click on Kontakt-pers",
            "match": {
              "location": "StepDefinitions.i_click_on_Kontakt_pers()"
            },
            "keyword": "And "
          },
          {
            "result": {
              "duration": 2004878032,
              "error_message": "junit.framework.ComparisonFailure: expected:\u003cKundensuche[2]\u003e but was:\u003cKundensuche[]\u003e\r\n\tat junit.framework.Assert.assertEquals(Assert.java:100)\r\n\tat junit.framework.Assert.assertEquals(Assert.java:107)\r\n\tat com.CSManagerTesting.cucumber.steps.StepDefinitions.i_should_see_Kundensuche(StepDefinitions.java:111)\r\n\tat ✽.Then I should see Kundensuche(XCTP-54.feature:11)\r\n",
              "status": "failed"
            },
            "line": 11,
            "name": "I should see Kundensuche",
            "match": {
              "location": "StepDefinitions.i_should_see_Kundensuche()"
            },
            "keyword": "Then "
          },
          {
            "result": {
              "status": "skipped"
            },
            "line": 12,
            "name": "I press on the cancel button",
            "match": {
              "location": "StepDefinitions.i_click_on_canelButton()"
            },
            "keyword": "And "
          },
          {
            "result": {
              "status": "skipped"
            },
            "line": 13,
            "name": "I should see the Aufgabenuebersicht",
            "match": {
              "location": "StepDefinitions.shouldSeeAufgabenuebersicht()"
            },
            "keyword": "Then "
          }
        ],
        "tags": [
          {
            "line": 4,
            "name": "@XCTP-54"
          }
        ]
      }
    ],
    "name": "",
    "description": "",
    "id": "",
    "keyword": "Feature",
    "uri": "XCTP-54.feature"
  }
]

If I try to upload the file manually, there is no problem. 

As soon as I try it with the REST api, a huge error message appears :

{"message":"Can not deserialize instance of com.xpandit.raven.beans.execution.ExecutionResultBean out of START_ARRAY token\n at [Source: org.apache.catalina.connector.CoyoteInputStream@1286b4ba; line: 1, column: 1]","status-code":500,"stack-trace":"org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of com.xpandit.raven.beans.execution.ExecutionResultBean out of START_ARRAY token\n at [Source: org.apache.catalina.connector.CoyoteInputStream@1286b4ba; line: 1, column: 1]\n\tat org.codehaus.jackson.map.JsonMappingException.from(JsonMappingException.java:163)\n\tat org.codehaus.jackson.map.deser.StdDeserializationContext.mappingException(StdDeserializationContext.java:219)\n\tat org.codehaus.jackson.map.deser.StdDeserializationContext.mappingException(StdDeserializationContext.java:212)\n\tat org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromArray(BeanDeserializer.java:869)\n\tat org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:597)\n\tat org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2695)\n\tat org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1308)\n\tat org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:419)\n\tat com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:490)\n\tat com.sun.jersey.spi.container.AdaptingContainerRequest.getEntity(AdaptingContainerRequest.java:236)\n\tat com.sun.jersey.server.impl.model.method.dispatch.EntityParamDispatchProvider$EntityInjectable.getValue(EntityParamDispatchProvider.java:123)\n\tat com.sun.jersey.server.impl.inject.InjectableValuesProvider.getInjectableValues(InjectableValuesProvider.java:86)\n\tat com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$EntityParamInInvoker.getParams(DispatchProviderHelper.java:133)\n\tat com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$ResponseOutInvoker._dispatch(DispatchProviderHelper.java:188)\n\tat com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)\n\tat com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)\n\tat com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)\n\tat com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)\n\tat com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)\n\tat com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)\n\tat com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542)\n\tat com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473)\n\tat com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419)\n\tat com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409)\n\tat com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409)\n\tat com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558)\n\tat com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:154)\n\tat com.sun.jersey.spi.container.servlet.ServletContainer.doFilter(ServletContainer.java:829)\n\tat com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:68)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:70)\n\tat com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:58)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.plugins.rest.module.servlet.RestServletUtilsUpdaterFilter.doFilterInternal(RestServletUtilsUpdaterFilter.java:22)\n\tat com.atlassian.plugins.rest.module.servlet.RestServletUtilsUpdaterFilter.doFilter(RestServletUtilsUpdaterFilter.java:34)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:26)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:26)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:26)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:26)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:26)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.servicedesk.internal.web.RedirectExternalCustomerToPortalFilter.doFilter(RedirectExternalCustomerToPortalFilter.scala:18)\n\tat com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:32)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.mywork.client.filter.ServingRequestsFilter.doFilter(ServingRequestsFilter.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.prettyurls.filter.PrettyUrlsSiteMeshFixupFilter.doFilter(PrettyUrlsSiteMeshFixupFilter.java:36)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.prettyurls.filter.PrettyUrlsDispatcherFilter.doFilter(PrettyUrlsDispatcherFilter.java:60)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.prettyurls.filter.PrettyUrlsSiteMeshFilter.doFilter(PrettyUrlsSiteMeshFilter.java:92)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.prettyurls.filter.PrettyUrlsMatcherFilter.doFilter(PrettyUrlsMatcherFilter.java:56)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.labs.botkiller.BotKillerFilter.doFilter(BotKillerFilter.java:36)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:70)\n\tat com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:58)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)\n\tat com.atlassian.jira.web.filters.accesslog.AccessLogFilter.executeRequest(AccessLogFilter.java:92)\n\tat com.atlassian.jira.web.filters.accesslog.AccessLogFilter.doFilter(AccessLogFilter.java:78)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)\n\tat com.atlassian.jira.security.xsrf.XsrfTokenAdditionRequestFilter.doFilter(XsrfTokenAdditionRequestFilter.java:49)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)\n\tat com.atlassian.jira.web.filters.pagebuilder.PageBuilderFilter.doFilter(PageBuilderFilter.java:81)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)\n\tat com.atlassian.jira.web.filters.CommittedResponseHtmlErrorRecoveryFilter.doFilter(CommittedResponseHtmlErrorRecoveryFilter.java:55)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:39)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.plugin.connect.plugin.auth.scope.ApiScopingFilter.doFilter(ApiScopingFilter.java:89)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:70)\n\tat com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:58)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)\n\tat com.atlassian.jira.web.filters.MauEventFilter.doFilter(MauEventFilter.java:52)\n\tat com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:32)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)\n\tat com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:242)\n\tat com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:70)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)\n\tat com.atlassian.security.auth.trustedapps.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:103)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)\n\tat com.atlassian.seraph.filter.BaseLoginFilter.doFilter(BaseLoginFilter.java:148)\n\tat com.atlassian.jira.web.filters.JiraLoginFilter.doFilter(JiraLoginFilter.java:77)\n\tat com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:32)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:39)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.oauth.serviceprovider.internal.servlet.OAuthFilter.doFilter(OAuthFilter.java:79)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.core.filters.ServletContextThreadLocalFilter.doFilter(ServletContextThreadLocalFilter.java:17)\n\tat com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:32)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:70)\n\tat com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:58)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)\n\tat com.atlassian.johnson.filters.AbstractJohnsonFilter.doFilter(AbstractJohnsonFilter.java:59)\n\tat com.atlassian.jira.web.filters.johnson.JiraJohnson503Filter.doFilter(JiraJohnson503Filter.java:24)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)\n\tat org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)\n\tat org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)\n\tat org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)\n\tat org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:39)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.plugin.connect.plugin.auth.user.ThreeLeggedAuthFilter.doFilter(ThreeLeggedAuthFilter.java:122)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.plugin.connect.plugin.auth.oauth.OAuth2LOFilter.doFilter(OAuth2LOFilter.java:82)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:169)\n\tat com.atlassian.servicedesk.internal.util.scala.ScalaJavaInterOp$1.apply(ScalaJavaInterOp.java:25)\n\tat com.atlassian.servicedesk.internal.utils.context.CustomerContextUtil$.outOfCustomerContext(CustomerContextUtil.scala:48)\n\tat com.atlassian.servicedesk.internal.utils.context.CustomerContextUtil.outOfCustomerContext(CustomerContextUtil.scala)\n\tat com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.outOfCustomerContext(CustomerContextServiceImpl.java:24)\n\tat com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:164)\n\tat com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:120)\n\tat com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:112)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:31)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.analytics.client.filter.JiraAnalyticsFilter.doFilter(JiraAnalyticsFilter.java:42)\n\tat com.atlassian.analytics.client.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:39)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:58)\n\tat com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61)\n\tat com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:64)\n\tat com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:37)\n\tat com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:70)\n\tat com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:58)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)\n\tat com.atlassian.jira.web.filters.steps.ChainedFilterStepRunner.doFilter(ChainedFilterStepRunner.java:74)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)\n\tat com.atlassian.core.filters.cache.AbstractCachingFilter.doFilter(AbstractCachingFilter.java:31)\n\tat com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:32)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)\n\tat com.atlassian.core.filters.encoding.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:39)\n\tat com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:32)\n\tat com.atlassian.jira.web.filters.PathMatchingEncodingFilter.doFilter(PathMatchingEncodingFilter.java:39)\n\tat com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:32)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)\n\tat com.atlassian.jira.startup.JiraStartupChecklistFilter.doFilter(JiraStartupChecklistFilter.java:62)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)\n\tat com.atlassian.jira.web.filters.MultipartBoundaryCheckFilter.doFilter(MultipartBoundaryCheckFilter.java:36)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)\n\tat com.atlassian.jira.web.filters.steps.ChainedFilterStepRunner.doFilter(ChainedFilterStepRunner.java:74)\n\tat com.atlassian.jira.web.filters.JiraFirstFilter.doFilter(JiraFirstFilter.java:57)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)\n\tat com.atlassian.gzipfilter.GzipFilter.doFilterInternal(GzipFilter.java:121)\n\tat com.atlassian.gzipfilter.GzipFilter.doFilter(GzipFilter.java:92)\n\tat com.atlassian.jira.web.filters.gzip.JiraGzipFilter.doFilter(JiraGzipFilter.java:47)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)\n\tat org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)\n\tat org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)\n\tat org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)\n\tat org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)\n\tat org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)\n\tat org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)\n\tat org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)\n\tat org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)\n\tat org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)\n\tat org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)\n\tat org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n\tat org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n\tat java.lang.Thread.run(Thread.java:745)\n"}

 

Do you guys have any advices on how to solve the problem ? 

 

7 answers

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

Post a new question

2 votes
Diam Campos August 31, 2016

Hi Ewgeni,


can you please share the Rest call you're making please?

Here's an example for cucumber import:

curl -H "Content-Type: application/json" -X POST -u admin:admin --data @cucumber_output.json http://yourserver/rest/raven/1.0/import/execution/cucumber


Kind regards,

Diamantino Campos

1 vote
Adil_Chaudry May 16, 2019

Hi, I am working with XRAY also, I would like to know how to automate the process of sending feature files to XRAY and the process of sending the JSON file to XRAY from eclipse ide but not manually. Can anyone suggest some ways to do this?  

1 vote
Diam Campos August 31, 2016

Hi,

you just need to change the call endpoint. If you use Cucumber format you've to change the endpoint to 

https://servername/rest/raven/1.0/import/execution/cucumber

 

Kind regards,

Diamantino

Ewgeni August 31, 2016

thank you Diam!! it worked smile

 

Thank You !

Diam Campos August 31, 2016

Great!

0 votes
Saurabh Gupta July 11, 2019

a

0 votes
Ravi Kumar September 12, 2017

Hello,

Now I am able to import the cucumber json report in Xray manually. 

I am trying to import the same using following rest api :

https://servername/rest/raven/1.0/import/execution/cucumber

 Curl command used in Mac :

/usr/bin/curl -H "Content-Type: application/json" -X POST -u username:password --data @target/cucumber.json https://servername/rest/raven/1.0/import/execution/cucumber

Error :

Warning: Couldn't read data from file "target/cucumber.json", this makes an

Warning: empty POST.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><status><status-code>500</status-code><message>No content to map to Object due to end of input</message><stack-trace>java.io.EOFException: No content to map to Object due to end of input

 

Please help.

Diamantino Campos September 14, 2017

Hi, 

 

can you please open a ticket on our service desk https://jira.xpand-addons.com/servicedesk/customer/portal/2 and share the file the json file?

 

Thank you.

--

Diamantino Campos

Ankur Ahuja September 11, 2018

Hi Diamantino,

I am trying to import the result using JSON file using Xray for JIRA plugin but it is giving 404 error. When I directly hit this URL

https://myserver/rest/raven/1.0/import/execution/cucumber

in browser, getting same 404 error.

Please suggest what I am missing here..

Like Jeetesh Muppala likes this
Екатерина Лобанова September 18, 2018

@Ravi Kumar can you please share your solution about manual import to Xray? I'm facing the same issue - json formats from cucumber & xray are different

0 votes
Ravi Kumar September 7, 2017

Hi Diamantino,

I am new to REST API. I am trying to import json result file manually using the IMPORT RESULT option on xray. If you could explain me the way to implement these REST APIs for importing, it would be great. Meanwhile, following is the json result file which is generated from cucumber :

[
{
"line": 2,
"elements": [
{
"line": 6,
"name": "Run Cucumber Test",
"description": "",
"id": ";run-cucumber-test",
"type": "scenario",
"keyword": "Scenario",
"tags": [
{
"line": 5,
"name": "@TESTAUTOM-46"
},
{
"line": 5,
"name": "@TESTAUTOM-38"
}
]
},
{
"line": 8,
"name": "Verify Login",
"description": "",
"id": ";verify-login",
"type": "scenario",
"keyword": "Scenario",
"steps": [
{
"result": {
"duration": 39646420699,
"status": "passed"
},
"line": 10,
"name": "I am logged in with a specific 1111111111",
"match": {
"arguments": [
{
"val": "1111111111",
"offset": 31
}
],
"location": "test.java:42"
},
"keyword": "Given "
},
{
"result": {
"duration": 2524777005,
"status": "passed"
},
"line": 11,
"name": "I am navigated to the Login menu screen",
"match": {
"arguments": [
{
"val": "More",
"offset": 22
}
],
"location": "testStepdefinitions.java:50"
},
"keyword": "When "
},
{
"result": {
"duration": 3697797676,
"status": "passed"
},
"line": 12,
"name": "I click on Retailer Offers",
"match": {
"location": "testDefinitions.clickRetailOffers()"
},
"keyword": "And "
},
{
"result": {
"status": "undefined"
},
"line": 13,
"name": "I click on Get started button",
"match": {},
"keyword": "And "
},
{
"result": {
"status": "undefined"
},
"line": 14,
"name": "I click on My account",
"match": {},
"keyword": "When "
},
{
"result": {
"status": "skipped"
},
"line": 15,
"name": "Then I will verify login is sucessful",
"match": {
"location": "testStepDefinitions.closechosenaccountscreen()"
},
"keyword": "Then "
}
],
"tags": [
{
"line": 7,
"name": "@steps-web"
},
{
"line": 7,
"name": "@steps-mobile"
},
{
"line": 7,
"name": "@VIK100"
}
]
}
],
"name": "",
"description": "",
"id": "",
"keyword": "Feature",
"uri": "./src/test/java/xrayjirajenkins/1.feature",
"tags": [
{
"line": 1,
"name": "@TESTAUTOM-47"
}
]
}
]

0 votes
Ewgeni August 31, 2016

Hello Diam,

thanks a lot for trying to help me again !

 

I am using JAVA combined with Jersey to communicate with the REST API.

I have written the following Code :

public void uploadResults() throws Exception{
		
		
		
		target=client.target("https://myserver/rest/raven/1.0/import/execution");
		
		
		String input = getJsonString();
		
		response = target.request(MediaType.APPLICATION_JSON_TYPE).post(Entity.json(input));
		System.out.println(response.readEntity(String.class));
		
	}

As already mentioned I am confused about why the first JSON file is working automated and manually, while the second  can be uploaded only manually.. ? What is the purpose behind all this ?

Thank You ! 

Ewgeni

Ravi Kumar September 4, 2017

Hi Ewgeni,

 

Could you please let me know how did u import the cucumber Jason to x-ray, manually ? I have a cucumber generated Json result file , which I try to import in x-ray, though there is no error , I can see Results empty. There must be something wrong with this cucumber Json file. Could you please let me know how did u solve it.

Thanks 

Diamantino Campos September 6, 2017

Hi Ravi, 

 

can you show me the file and the REST api endpoint you're trying to call?

 

You can see an example of a rest api call here and the accurate format is described here.

 

If you do not want to share your json file here, you can open a ticket at Xray service desk.

 

Best regards,

Diamantino Campos

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

Post a new question

TAGS
AUG Leaders

Atlassian Community Events