While you can run TestCafe tests on any machine that has Node.js installed, it is more convenient to run them in a Docker container. This has the advantage when running the tests you don’t need to think about any dependencies, Node.js version etc. It also makes tests less flaky, because the environment the tests run in is always the same, either locally or in the CI environment. This is even more important when using TestCafe for visual regression testing, because then the screenshots will look the same wherever you run the tests.
Make sure you have the following software installed:
About a year ago I wrote my initial article about distributed load testing with Gatling using Docker and AWS. Since that time I have improved my initial setup by quite a bit. This article describes my improved guide. I’ll also point out which improvements I made.
This article references the first one quite a bit, it can be found here:
In my original setup I used a Gatling Maven project for the load test code. From this a Docker image containing the Maven project was created. This image was then pushed to AWS ECR as the docker registry.
ecs-cli was used…
On my current project we use the widely known test pyramid. That means we have a small set of slow end-to-end tests that runs against a fully deployed application: frontend, backend and a database with meaningful data. One level below that we have our so called frontend integration tests. Also called UI integration tests, frontend only tests etc. These are tests where we do want to fully render the app in a real browser, but don’t want to test the whole stack and the tests don’t have to run in multiple browsers.
When setting up Contract testing for our project we had some issues getting Pact working nicely with Angular Testbed and Karma/Jest. The code examples that are available are either outdated or simply not working when having multiple providers.
In this article I will go step by step showing how to setup a Consumer-Driven Contract Testing framework with Pact. It will include an Angular frontend as a Consumer and a Spring Boot backend as a Provider.
I have created an example repository on GitHub containing all the code:
Create a new directory which will be the root for our Consumers, Providers…
I have published a part 2 of this article, containing a lot of improvements over my initial setup. You can read it here:
Before our release to production we needed to perform a load test with more than 170.000 concurrent users. Since we already had experience running performance tests with Gatling, it was our goto choice for setting up our load tests. If you are not familiar yet with Gatling, it’s an open source load- and performance test framework with tests written in Scala. It’s very powerful and has excellent reporting.
Test Automation Enthusiast