It is all about reliability
and scalability. While one of our servers may go down, the application can’t,
so testing has to be in real time. Mainly we are looking at two KPIs functionality
and performance. Most importantly, we also have a real-time feedback to raise
issues that might not be detected by the previous testing or tools. With TestOps raising,
testing in production becomes an essential piece of our overall quality plan.
Many companies are already
giving a lot of attention to the Shift-left transformation, but I also think
that making a Shift-right with proactive monitoring and alerting after our
releases into the wild is just as important. A while ago I did a similar task, but using
NewRelic Synthetics.
There are enough tools and
platforms into the Open source stack to actually do it by ourselves very
quickly and easy. This particular implementation is more of a suggestion and
I’m sure you can do it with your own toolbox. The architecture is really quite
simple, but backed up by the powerful IaC concept.
I prefer to use three types
of monitors:
- Ping: simply check to see if an application is online. It uses a HTTP client to make requests to our service.
- API: the HTTP client is not a full browser, and does not execute JavaScript. Used to monitor our API endpoints. This can ensure that our app server works, in addition to the website.
- Virtual browser: used for more sophisticated, customized monitoring. With these monitors, we can set up a monitor that navigates our website and ensures specific resources are present.
The central part is dedicated
to the engine, which is composed via Jenkins, Docker and GitLab. Deciding what
(cloud) servers should be used is all on you. Integrating those three is really
straightforward. Major benefits are powerful execution, clean environments and a
central repository. Alerts are via email, thanks to the Jenkins build-in
functionality.
For the first two types of the
monitors we need a REST client like Postman. With this tool
we can easily create and organize our tests in collections. The execution
and reporting are handled by Newman. We can output
the results in html, JSON and xml. The last one is JUnit formatted, so this can
be plugged into
Jenkins dashboards.
In order to get a virtual
browser, we will need a separate container with nodeJS, xvfb and browsers on it.
I use my own Dockerfiles to build the containers I need. Turns out sometimes
it is better to have a custom solution. The orchestration of our containers is done via Docker Swarm.
That’s all. Thanks for
reading.
I would like to thank you for sharing this wonderful post.
ReplyDeletePlease share more details regarding automation testing.
Selenium testing services
Thank you for your post. This is excellent information. It is amazing and wonderful to visit your site.
ReplyDeletecourses for software testing in usa
software testing course near me
quality analyst certification online
quality analyst certification courses
This comment has been removed by the author.
ReplyDeleteGreat blog !! thanks for sharing...
ReplyDeleteUI Development Training
UI Development Training in Hyderabad
UI Development Online Training
The Hollywood Casino at Charles Town Races - Missouri - JTM Hub
ReplyDeleteLocated right at Charles Town 동두천 출장안마 Races in Charles Town, the Hollywood Casino 계룡 출장샵 at Charles 밀양 출장안마 Town 서산 출장마사지 Races is home to one of the best live horse 광양 출장샵 racing, sports betting and
Great post on monitoring in detail.
ReplyDeleteV2Soft is a testing services company that drives automation and innovation into your software testing. To know more. visit us.