Git Product home page Git Product logo

isaitb / gitb Goto Github PK

View Code? Open in Web Editor NEW
19.0 9.0 4.0 22.77 MB

The Interoperability Test Bed is a service offered by the European Commission’s DIGIT for the conformance testing of IT systems. It is based on the GITB CEN Workshop Agreement and was originally forked from the GITB PoC software (available at https://github.com/srdc/gitb).

Home Page: https://joinup.ec.europa.eu/solution/interoperability-test-bed/about

License: Other

Java 24.58% XSLT 0.09% Scala 34.64% CSS 0.25% JavaScript 1.19% HTML 12.42% Dockerfile 0.02% Less 1.83% TypeScript 23.98% FreeMarker 0.99% SCSS 0.01%
conformance interoperability testing

gitb's People

Contributors

costas80 avatar isa2itb avatar postaci avatar rbertucat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gitb's Issues

ITB and Webhooks

Hello,

I heard about the existance of webhooks in ITB but I am not able to find any documentation. Are webhooks still relevant today, and is there any documentation on them? If so, I would like to have it if possible.

REST API Create Specification

Hello @costas80,

I think it's not possible for now to create specification in the Domain management with the REST API.

To explain a bit, we have hundreds of testsuites and we would want one specification for each one.
It also raises the question of how ITB would display so many elements.
I believe the best now would be to sort them manually (or create them in a certain order) but I was wondering if allow the user to search by the first letter of the element could be a thing or not?

[Question] Using a custom report template

Hello @costas80,

We're thinking about maybe use our own custom test session report template.
We have already some tools from our side to convert an xml file in a PDF one and I was wondering if it would be possible to use them to allow users to download our report directly from ITB.

I believe ITB does not propose to use a custom converter yet. Do you think it is possible for ITB to offer this kind of things?

Build of gitb-reports fails for missing dependency

Hi,

during the maven build I got the following error:

[INFO] Scanning for projects... [INFO] [INFO] -----------------------< com.gitb:gitb-reports >------------------------ [INFO] Building gitb-reports 1.0-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- Downloading from maven central: https://repo1.maven.org/maven2/com/lowagie/itext/2.1.7.js10/itext-2.1.7.js10.pom [WARNING] The POM for com.lowagie:itext:jar:2.1.7.js10 is missing, no dependency information available Downloading from maven central: https://repo1.maven.org/maven2/com/lowagie/itext/2.1.7.js10/itext-2.1.7.js10.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.055 s [INFO] Finished at: 2022-10-27T09:17:37+02:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal on project gitb-reports: Could not resolve dependencies for project com.gitb:gitb-reports:jar:1.0-SNAPSHOT: Could not find artifact com.lowagie:itext:jar:2.1.7.js10 in maven central (https://repo1.maven.org/maven2/) -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
Regards,
Maurizio Longari

Problem using local instance

Hello,

For developpement purpose, I want to use a local instance of ITB. But the response to each request is :
image
I have set in the header the ITB_API_KEY property. For the same request on another instance deployed on a server, it works.
Do you have any ideas why this happened ?

"*" not encoded with the httpmessaging2 queryparameters

Hello @costas80,

HttpMessagingv2 feels really good so far! It makes doing request easier and works fine.

I used queryParameters instead of simply concatenate the parameters directly in the uri as I saw it encodes automatically special characters.
However, I believe the "*" is not encoding (when it should be)

Problems with received messages (code status 204)

Hello,
I'm using the 1.21.1 version and I spotted something unpleasant with the ITB.
I use a with the httpmessaging handler sending a POST request from my simulated actor to my SUT and expecting a 204 No Content in response from it.
After this I use a in which there is a expecting this 204 code.
Then this step just never ends.
I tried to add a timeout, but this often fails the step.

There is no doubt that the SUT actually respond to the request with a 204.
Besides, I didn't have any problems with 201 and 200 codes when I have to waiting for them.

Any thoughts about this?
Thank you!

Testbed client setup for Kubernetes cluster

I'm trying to create a setup of ITB in a Kubernetes cluster. I created different resources to map everything required by the standard setup of ITB. I'm using the official images (isaitb/gitb-ui and isaitb/gitb-srv) and when I try to deploy in a cluster I receive an error from the git-ui container

22/07/2024 12:53:11 INFO  org.eclipse.jetty.server.Server - jetty-11.0.20; built: 2024-01-29T21:04:22.394Z; git: 
922f8dc188f7011e60d0361de585fd4ac4d63064; jvm 17.0.11+9
22/07/2024 12:53:11 ERROR o.a.c.t.h.JettyHTTPServerEngine - Could not start Jetty server on port 9,090: Failed to bind to gitb-ui/10.3.53.53:9090
22/07/2024 12:53:11 INFO  org.eclipse.jetty.server.Server - Stopped Server@44f338ec{STOPPING}[11.0.20,sto=0]
Oops, cannot start the server.
com.google.inject.CreationException: Unable to create injector, see the following errors:

1) [Guice/ErrorInjectingConstructor]: WebServiceException: Fault: Could not start Jetty server on port 9,090: Failed to bind to gitb-ui/10.3.53.53:9090
  at hooks.PostStartHook.<init>(PostStartHook.scala:32)
  at modules.Module.configure(Module.scala:24)
      \_ installed by: Modules$OverrideModule -> modules.Module
  while locating hooks.PostStartHook

Learn more:
  https://github.com/google/guice/wiki/ERROR_INJECTING_CONSTRUCTOR

1 error

======================
Full classname legend:
======================
Fault:                  "org.apache.cxf.interceptor.Fault"
Modules$OverrideModule: "com.google.inject.util.Modules$OverrideModule"
WebServiceException:    "jakarta.xml.ws.WebServiceException"
========================
End of classname legend:
========================

	at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:589)
	at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:190)
	at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:113)
	at com.google.inject.Guice.createInjector(Guice.java:87)
	at com.google.inject.Guice.createInjector(Guice.java:78)
	at play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:200)
	at play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:176)
	at play.api.inject.guice.GuiceApplicationLoader.load(GuiceApplicationLoader.scala:21)
	at play.core.server.ProdServerStart$.start(ProdServerStart.scala:52)
	at play.core.server.ProdServerStart$.main(ProdServerStart.scala:28)
	at play.core.server.ProdServerStart.main(ProdServerStart.scala)
Caused by: jakarta.xml.ws.WebServiceException: org.apache.cxf.interceptor.Fault: Could not start Jetty server on port 9,090: Failed to bind to gitb-ui/10.3.53.53:9090
	at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:373)
	at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:255)
	at org.apache.cxf.jaxws.spi.ProviderImpl.createAndPublishEndpoint(ProviderImpl.java:130)
	at jakarta.xml.ws.Endpoint.publish(Endpoint.java:224)
	at hooks.PostStartHook.initialiseTestbedClient(PostStartHook.scala:240)
	at hooks.PostStartHook.onStart(PostStartHook.scala:43)
	at hooks.PostStartHook.<init>(PostStartHook.scala:36)
	at hooks.PostStartHook$$FastClassByGuice$$65aba08.GUICE$TRAMPOLINE(<generated>)
	at hooks.PostStartHook$$FastClassByGuice$$65aba08.apply(<generated>)
	at com.google.inject.internal.DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:82)
	at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:114)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:169)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
	at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:213)
	at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:186)
	... 9 more
Caused by: org.apache.cxf.interceptor.Fault: Could not start Jetty server on port 9,090: Failed to bind to gitb-ui/10.3.53.53:9090
	at org.apache.cxf.transport.http_jetty.JettyHTTPServerEngine.addServant(JettyHTTPServerEngine.java:492)
	at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.activate(JettyHTTPDestination.java:184)
	at org.apache.cxf.transport.AbstractObservable.setMessageObserver(AbstractObservable.java:53)
	at org.apache.cxf.binding.AbstractBindingFactory.addListener(AbstractBindingFactory.java:95)
	at org.apache.cxf.binding.soap.SoapBindingFactory.addListener(SoapBindingFactory.java:894)
	at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:130)
	at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:364)
	... 26 more
Caused by: java.io.IOException: Failed to bind to gitb-ui/10.3.53.53:9090
	at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:344)
	at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:304)
	at org.eclipse.jetty.server.Server.lambda$doStart$0(Server.java:402)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source)
	at org.eclipse.jetty.server.Server.doStart(Server.java:398)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at org.apache.cxf.transport.http_jetty.JettyHTTPServerEngine.addServant(JettyHTTPServerEngine.java:481)
	... 32 more
Caused by: java.net.BindException: Cannot assign requested address
	at java.base/sun.nio.ch.Net.bind0(Native Method)
	at java.base/sun.nio.ch.Net.bind(Unknown Source)
	at java.base/sun.nio.ch.ServerSocketChannelImpl.netBind(Unknown Source)
	at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source)
	at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:339)
	... 47 more

I saw the official gitb-ui image is using the following property for TESTBED_CLIENT_URL

https://github.com/ISAITB/gitb/blob/d16d4d6638b84b4474f9f1d6e0cafeeebc121cd9/etc/docker/gitb-ui/Dockerfile#L5C1-L5C57

I don't know how ITB works internally but it creates a WS Endpoint using this URL, however in the Kubernetes cluster the git-ui URL is related to service resource (not to the deployment/pod one) so the container throws this error. In order to understand when it is used this URL I created another gitb-ui Docker image using the following setup

ENV TESTBED_CLIENT_URL http://gitb-ui:9090/TestbedClient

If I try to deploy ITB using this image it seems to work, but when I try to create a first test suite I receive this error from gitb-srv

22/07/2024 20:47:19 INFO  com.gitb.engine.SessionManager - [] SessionManager has been initialized...
22/07/2024 20:47:20 INFO  com.gitb.tbs.Application - [] Started Application in 4.631 seconds (process running for 5.333)
java.net.ConnectException: ConnectException invoking http://localhost:9090/TestbedClient?wsdl: Connection refused
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Unknown Source)
	at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1452)
	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1433)
	at org.apache.cxf.transport.http.HttpClientHTTPConduit$HttpClientWrappedOutputStream.close(HttpClientHTTPConduit.java:511)
	at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:717)
	at org.apache.cxf.transport.http.HttpClientHTTPConduit.close(HttpClientHTTPConduit.java:115)
	at org.apache.cxf.transport.TransportURIResolver.resolve(TransportURIResolver.java:134)
	at org.apache.cxf.wsdl11.CatalogWSDLLocator.getBaseInputSource(CatalogWSDLLocator.java:71)
	at org.apache.cxf.wsdl11.AbstractWrapperWSDLLocator.getBaseInputSource(AbstractWrapperWSDLLocator.java:70)
	at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:225)
	at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:165)
	at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:169)
	at org.apache.cxf.jaxws.ServiceImpl.initialize(ServiceImpl.java:160)
	at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:128)
	at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:82)
	at jakarta.xml.ws.Service.<init>(Service.java:82)
	at com.gitb.tbs.TestbedClient_Service.<init>(TestbedClient_Service.java:50)
	at com.gitb.tbs.impl.TestbedServiceCallbackHandler$WSAddresingProperties.<init>(TestbedServiceCallbackHandler.java:99)
	at com.gitb.tbs.impl.TestbedServiceCallbackHandler.saveWSAddressingProperties(TestbedServiceCallbackHandler.java:52)
	at com.gitb.tbs.impl.TestbedServiceImpl.initiate(TestbedServiceImpl.java:70)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179)
	at org.apache.cxf.jaxws.JAXWSMethodInvoker.performInvocation(JAXWSMethodInvoker.java:65)
	at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)
	at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.invoke(AbstractJAXWSMethodInvoker.java:231)
	at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:84)
	at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:74)
	at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at org.apache.cxf.interceptor.ServiceInvokerInterceptor$2.run(ServiceInvokerInterceptor.java:126)
	at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
	at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:131)
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:265)
	at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:233)
	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:207)
	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:159)
	at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:224)
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:303)
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:216)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590)
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:278)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:731)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:904)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.net.ConnectException
	at java.net.http/jdk.internal.net.http.common.Utils.toConnectException(Unknown Source)
	at java.net.http/jdk.internal.net.http.PlainHttpConnection.connectAsync(Unknown Source)
	at java.net.http/jdk.internal.net.http.PlainHttpConnection.checkRetryConnect(Unknown Source)
	at java.net.http/jdk.internal.net.http.PlainHttpConnection.lambda$connectAsync$1(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture.uniHandle(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture.postComplete(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	... 1 more

So from what I can see this property is inherited from the gitb-srv and it's clear that this cannot work in this environment. Is there a way to setup a correct value for this URL in order to start ITB in a Kubernetes cluster?

XML report associated to a test session

Hello @costas80,

I've begun to look at the reports and the associated xml.
I feel I miss a "skip" status besides the "failure" and "success" ones.

Most of my tests now are :
1: initialization) Try to create an entity
2: test) Try to do something with this entity
3: cleaning) Try to delete this entity

As the test part can not resolve if the initialization fails, the second step would be skipped in this case.

However, when you skip an entire group, ITB displays it as successful.
In my opinion that would deserve to be considered "skip" instead of "success".

What do you think about this?

Template messaging service

Hello,
Following one of our previous discussion I tried to deploy a custom messaging handler.
I have used the documentation you gave and I succeeded deploying the basic version of the template messaging service.
I expected it to work exactly like the httpmessaging, however it's not the case.
The only mentioned input required for the send is messageToSend and I didn't really understand with what this input should be fill exactly.
I don't really know java and I couldn't find how to change this. Ideally I would like to provide the http_body, http_headers, http.uri and http.method elements the same way I used to with httpmessaging.
Is there a simple way to do this? If not maybe you have some insights about how use the messageToSend element?
Thank you :)

[Question] HttpMessagingv2 only triggered if not empty

Hello @costas80

I want to use a scriptlet calling a "send" from the httpMessagingV2 handler.
Sometimes it would use a queryParameters input but sometimes not.

Should I make two different scriptlets, one asking for this input and the other not,
or is there a clean way to make the operation only use the queryParameters if it's not empty ?

Tell me if It's understandable for you.
Thank you !

Error code while testing a service

Hello,

I developped an API to expose lauch of extern test suites of a service from ITB. When I ran a test case on it, I got a 400 error code (bad request), while the request works from the ITB docker container (by curl). I used send and receive steps to do it. By exchanging with Eliott Paillard, we found no obvious syntax problems in the tests. Does the translation of the request into ITB test cases require other steps, or is this an internal ITB problem ?

Thank you in advance

fully containerized builds and orchestration

If you wish to make it easier for people that want to try out this product, you may want to supply a docker-compose.yml file that orchestrates all services. The TL;DR section of the README would be:

just launch docker-compose up and visit http://localhost:9000

ATM information about how to start the containers one by one is in /etc/docker, but before building the images one has to launch mvn install ... for gitb-srv (to generate itbsrv.war) and sbt compile && npm run build for gitb-ui (to generate the gitb binary) beforehand.

Fully containerized builds = docker-compose build can perform all these steps without preinstalling the tools (maven, java jdk, sbt, nodejs, npm) and the required Java and JavaScript libraries.

API REST error

Hello,

I'm trying to use ITB REST API to execute a test suite. But I get a 400 bad request response when I'm doing this request :
curl --location 'https://<SERVER_NAME>/itb-dev/api/rest/tests/start'
--header 'ITB_API_KEY: E41394CFX73FDX4FD2XA1E8X08CF499967D8'
--header 'Content-Type: application/json'
--data '{
"system": "7FA403A7X4416X4A43X966DXDE166FB26A87",
"actor": "B50327A6X1791X492EXBC70XAA566FB3AC5E",
"testSuite": [ "OGC_validation" ]
}'
The response is this :
image

Do you have an idea about the problem ?

Bug when using http.uri.extension in a scriplet

Hey,

trying to add scriptlets lately to make my test cases more readable, I've found a bug with the http.uri.extension.

You'll find an example exposing well what I'm talking about :
example.zip

As you can see, I use the scriptlet three time, I put the variable $entityId as an input for it.

Firstly the scriptlet log the value of the variable, which is indeed updated as it should be.

However the http.uri.extension is getting stuck to the first value of $entityId.

I'm using the nightly build btw

Docker compose start fails

I tried to start the project using the docker compose approach, simply downloading it from main branch (tested also 1.21.1 tag) and running the following command as stated in the README

docker compose up -d --build

but after some build processes I receive the following error

 => [gitb-ui internal] load build context                                                                                                  0.1s
 => => transferring context: 159.43kB                                                                                                      0.1s
 => ERROR [gitb-ui stage-1 2/4] RUN apk add --no-cache bash

What is wrong with my local setup? Using the dockerized build I suppose to launch everything only using the docker build.

Timeout element

Hello @costas80,

Before we could set a timeout as an element of the receive tag.
But as we only use the send tag now, and as it doesn't support a timeout element yet,
I think we can't set a timeout anymore when calling the SUT and waiting for a response.

Hosting the testbed on a subpath causes static assets to not render properly

Hi

We recently tried to deploy the testbed on a subpath of our domain. It works, but some of the static assets are being fetched from the root domain, and not the subpath, which means they are not available in the frontend.
Screenshot 2024-06-04 at 10 16 45

I found this piece of documentation that talks about it https://www.itb.ec.europa.eu/docs/guides/latest/installingTheTestBedProduction/index.html#step-2-determine-the-access-url and tried to copy the setup as mentioned there.

Our docker-compose.yml file:

  gitb-ui:
    # The Test Bed's UI.
    image: isaitb/gitb-ui
    restart: unless-stopped
    ports:
      - "9000:9000"
    environment:
      - AUTHENTICATION_COOKIE_PATH=/itb
      - TESTBED_HOME_LINK={ROOT}/itb

Our NGINX config file:

location ~ /itb(/?.*) {
    add_header ITB-PATH /itb;

    proxy_pass   http://x.x.x.x:9000/$match$is_args$args;
}

I've obfuscated some parts for security reasons, but the general setup should be clear (at least I hope so).

Am I missing something in this setup to allow the UI to be hosted succesfuly on a subpath, /itb in our case? Or did I misunderstood the documentation and is this something that's not supported out of the box.

Thanks as always

Kind regards
Kristof Vandenbroucke

Validation service timeout error

Hello,

I'm still implementing a validation service. The validation is quite long and so verify step return this error :
image
Would it be possible to increase the timeout to make it work ?

Multiple expected code status

Hello!
When using the inside a after my simulated actor sent an httpmessaging to my SUT, I would expect one among two possible code status.
I didn't find any way to do that so far.
Am I missing something or this is not possible at the moment?
If it's not, could it be feasable to implement this?
Thank you!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.