2016-03-21 15 views
0

Robot çerçevesinin test sonuçlarını Rest api kullanarak QC'ye güncellemek istiyorum. Robot çerçevesinin output.xml dosyasını getirerek, test sonuçlarını dinlenme api kullanarak QC'ye güncellemek istiyorum.Rest API + Python kullanarak QC'de test yürütme durumunu güncelleyin

Bunu yapmak için, python istekleri ve ElementTree modülleriyle HP ALM 11 Rest api kullanarak komut dosyalarını geliştirmeye başladım.

Şu anda tanımlama bilgilerini saklayabiliyor, saklayabiliyor ve hataları, test kimliklerini, test örneklerini QC'den alabiliyorum.

Fakat şimdi test yürütme durumunu QC'nin test laboratuarında güncellemek istiyorum, aşağıdaki gibi denedim: - Test örneği kimliğini ve testcase kimliğini sorgulayarak test örneğinin post yöntemini kullanarak.

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)) 

Ama bazı Bu hata hakkında yardım edebilir çözülecek

<?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; 

hata altına aldık? veya test yürütme durumunu QC'ye güncellemek için herhangi bir yaklaşım önerir misiniz?

Şimdiden teşekkürler.

cevap

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)) 

Belirtmiş olduğunuz sorgu yapısı temelde yanlıştır.

yerine

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

Genel olarak

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

kullanımı, sorgu parametresini içeren bir URL ile başlar '?' o '&' tarafından eklenmelidir birden fazla varsa ve