A test grid that mimics Browserstack and LambdaTest and helps you record videos of your selenium tests
Developed 2 methods which achives our objective (80% - 90%). Built a system providing some basic functionalities of LambdaTest.
-
The system must host a selenium grid that we can connect to execute our tests on each build.
-
A video must be recorded and saved for reference.
-
Slack Notification in case of test fail.
- We should be able to execute our tests in parallel, so that build takes lesser time.
- Video recording is the main challenge (discovered 2 working methods for this).
-
We develop a microservice that has the responsibility of recording videos from the tests being executed.
-
Here is a flow diagram how our infrastructure will look like.
-
Host a MJPEG server alongside Selenium server on windows system.
-
Use FFMPEG to capture screenshots from here and render it as video
- System method only works when RDP connection is alive with the windows server/GUI is available.
-
Connect The Recorder service with same selenium session and keep taking screenshots.
-
Use FFMPEG to render a video from these images later.
- To cope up with the quality of video, the video speed with be approx 2.5X (we can slow it down while watching : ) )
-
System requirement mostly depends on parallelism.
-
Still we require atleast core system and atleast 2 GB RAM.