2016-03-21 4 views
0

Ich möchte die Testergebnisse von Robot Framework zu QC mit Rest api zu aktualisieren. Durch Abrufen der output.xml-Datei des Roboterrahmens möchte ich die Testergebnisse mithilfe von Rest-API in QC aktualisieren.Update-Test Ausführungsstatus in QC mit Rest-API + Python

Um dies zu tun, habe ich begonnen, die Skripts mit HP ALM 11 Rest APIs mit Python-Anfragen und ElementTree-Module zu entwickeln.

Im Moment kann ich authentifizieren, Cookies speichern und die Fehler abrufen, IDs testen, Instanzen von QC testen.

Aber jetzt möchte ich den Test Ausführungsstatus in der Testumgebung von QC zu aktualisieren, habe ich wie folgt versucht: - Verwenden Sie die post-Methode der Test-Instanz durch Abfrage der Test-Set-ID und Testfall-ID.

requests.put(self.url + u'/qcbin/rest/domains/<Domain name>/projects/<Project name>/test-instances/query={id[1];test-id[3]}', headers=self.header, data=xml, auth=(self.username,self.__password)) 

Aber ich habe unten Fehler

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><QCRestException><Id>qccore.general-error</Id><Title>Not Found</Title><StackTrace>javax.ws.rs.WebApplicationException&#xD; 
at org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleRequest(FindResourceMethodHandler.java:84)&#xD; 
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)&#xD; 
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)&#xD; 
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:61)&#xD; 
at org.apache.wink.server.internal.handlers.FindRootResourceHandler.handleRequest(FindRootResourceHandler.java:93)&#xD; 
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)&#xD; 
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)&#xD; 
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:61)&#xD; 
at org.apache.wink.server.internal.handlers.HeadMethodHandler.handleRequest(HeadMethodHandler.java:53)&#xD; 
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)&#xD; 
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)&#xD; 
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:61)&#xD; 
at org.apache.wink.server.internal.handlers.OptionsMethodHandler.handleRequest(OptionsMethodHandler.java:46)&#xD; 
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)&#xD; 
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)&#xD; 
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:61)&#xD; 
at org.apache.wink.server.internal.handlers.SearchResultHandler.handleRequest(SearchResultHandler.java:33)&#xD; 
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)&#xD; 
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)&#xD; 
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:61)&#xD; 
at org.apache.wink.server.handlers.AbstractHandlersChain.run(AbstractHandlersChain.java:48)&#xD; 
at org.apache.wink.server.internal.RequestProcessor.handleRequestWithoutFaultBarrier(RequestProcessor.java:163)&#xD; 
at org.apache.wink.server.internal.RequestProcessor.handleRequest(RequestProcessor.java:137)&#xD; 
at org.apache.wink.server.internal.servlet.RestServlet.service(RestServlet.java:116)&#xD; 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)&#xD; 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)&#xD; 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&#xD; 
at org.hp.qc.web.restapi.RESTApiFilter.doFilter(RESTApiFilter.java:67)&#xD; 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)&#xD; 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&#xD; 
at org.hp.qc.web.restapi.performance.PerformanceMonitorRESTFilter.doFilter(PerformanceMonitorRESTFilter.java:45)&#xD; 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)&#xD; 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&#xD; 
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)&#xD; 
at com.hp.sw.bto.ast.security.lwsso.authenticator.springSecurity.SpringSecurity2LWSSOIntegrationFilter.doFilter(SpringSecurity2LWSSOIntegrationFilter.java:182)&#xD; 
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)&#xD; 
at org.hp.qc.web.restapi.sessionmanagement.ImplicitSessionFilter.doFilter(ImplicitSessionFilter.java:54)&#xD; 
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)&#xD; 
at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)&#xD; 
at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)&#xD; 
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)&#xD; 
at com.hp.sw.bto.ast.security.lwsso.authenticator.springSecurity.LWSSO2SpringSecurityIntegrationFilter.doFilter(LWSSO2SpringSecurityIntegrationFilter.java:299)&#xD; 
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)&#xD; 
at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)&#xD; 
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)&#xD; 
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)&#xD; 
at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)&#xD; 
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)&#xD; 
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)&#xD; 
at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175)&#xD; 
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)&#xD; 
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)&#xD; 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)&#xD; 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&#xD; 
at com.mercury.optane.core.state.ServerStatusFilter.doFilter(ServerStatusFilter.java:33)&#xD; 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)&#xD; 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&#xD; 
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)&#xD; 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)&#xD; 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&#xD; 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)&#xD; 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)&#xD; 
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)&#xD; 
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)&#xD; 
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)&#xD; 
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)&#xD; 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)&#xD; 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)&#xD; 
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)&#xD; 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)&#xD; 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)&#xD; 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)&#xD; 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)&#xD; 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)&#xD; 
at java.lang.Thread.run(Thread.java:619)&#xD; 

Können einige mir bitte zu diesem Fehler helfen zu lösen? oder einen Ansatz vorschlagen, um den Testausführungsstatus auf QC zu aktualisieren?

Vielen Dank im Voraus.

Antwort

0
requests.put(self.url + u'/qcbin/rest/domains/<Domain name>/projects/<Project name>/test-instances/query={id[1];test-id[3]}', headers=self.header, data=xml, auth=(self.username,self.__password)) 

Abfrage Struktur, die Sie erwähnt haben, ist grundsätzlich falsch.

statt

/test-instances/query={id[1];test-id[3]} 

Verwendung

/test-instances?query={id[1];test-id[3]} 

Im Allgemeinen kann jede URL Abfrageparameter enthält, beginnt mit '?' und wenn es mehr als einen gibt es sollte von ‚&‘

Verwandte Themen