In implementation projects, sometimes we see testing integrations is not given as much focus and effort as it deserve. This some times is true for production integrations as well where changes are moved to production by testing few handful of scenarios, but not all possible scenarios like negative scenarios, regression testing, edge case scenarios, and volume testing. Being a fan of SAP integration suite, I wanted to write a blog series as I work through to build an extension application that automates the testing of integrations for us. This helps us to move our integration changes more frequently with more confidence that our integrations will not break with the changes we incorporate. If you are interested and want to be part of the journey, grab a coffee and read along. I hope this will be fun 🙂
Coming to technical details, this extension application will be built using GO programming language because I like GO. Just kidding :). GO is a simple programming language very well suited for building applications on cloud because of its simplicity in handling complex topics like concurrency. If you did not work on Go before, do not worry. Just follow the blog and check the code in repository. I am sure it will be self explanatory with some help from Google. For persistence, We use HANA for structured data and Azure blob storage for unstructured data like files. Application will be deployed on SAP BTP Kyma runtime. Like the approach? Yeah. All goodies. What not to like right!! 🙂
I like CAP and its simplicity, but in this application we will not use CAP and do it on our own. Some times it is good to DIY (do it yourself). Moreover CAP does not support GO yet.
In this blog we will start small by writing a Hello World application first and deploy it to Kyma.
STEP 1 – Create the GO application by cloning the repository
git clone https://github.com/ravipativenu/integration-suite-extention.git
STEP 2 – Install and run the application locally
go install ravipativenu/integration-suite-extension integration-suite-extension
STEP 3 – Test the application running locally
you will see the “Hello World!” output
STEP 4 – Run application unit tests
- A unit test is written to test /hello endpoint. Run unit tests and make sure they are successful.
STEP 5 – Create Dockerfile for Docker image
This file already exists in the repo
STEP 6 – Build docker image
docker build -t ravipativenu/integration-suite-extention:latest -f Dockerfile .
STEP 7 – Publish docker image to Docker hub
docker push ravipativenu/integration-suite-extention:latest
STEP 8 – Update your Kyma runtime parameters
- Download kyma runtime parameters from Kyma console and update local kyma config C:\Users\<user>\.kube
STEP 9 – Deploy to Kyma
- Create credentials for docker access from Kyma
kubectl create secret docker-registry regcred --docker-server=https://index.docker.io/v2/ --docker-username=<username>--docker-password=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX --docker-email=<emailid>
- deployment.yaml is descriptor file to deploy to Kyma
- Deploy to Kyma
kubectl replace --force -f deployment.yaml -n default
STEP 10 – Test application deployed on Kyma
Next we will include persistence and start building our application further.