Slides of our Webinar, held on March 20th 2018, where the main features of ElasTest, at the time being, were presented. This included our ability to launch docker and docker-compose SuTs, and tests, gathering logs and metrics, and inspecting resulst with out Log Analyzer. All these features, including ElasTest capabilities for manual testing, were showcased at the end in a demo conducted by out Project Coodinator. The webinar was recorded and it's available at: https://youtu.be/OL4yktND6Uo.
10. Why ElasTest?
â—Ź
Current testing tools have limitations
when facing E2E tests of complex
distributed software
– Log analysis
– Web testing
– SuT instrumentation
19. Limitations of testing tools
â—Ź
What if a test wants to know if there are
WARN messages in SuT logs?
20. Limitations of testing tools
â—Ź
It would be very useful to be able to compare the
log of a failed test with previous passing
executions
21. Why ElasTest?
â—Ź
Current testing tools have limitations
with E2E tests of complex distributed
software
– Log analysis
– Web testing
– SuT instrumentation
22. â—Ź
Web Testing
– Selenium is used to control
browsers
– There are problems when
developing tests
â—Ź
Browsers are opened during
execution grabbing the focus
â—Ź
You can’t work while tests are
running in your laptop
Limitations of testing tools
23. â—Ź
Web Testing
– There are problems when
executing tests in CI
â—Ź
You have to configure Xvfb for
headless testing
â—Ź
You have to configure custom tools
to record test executions
â—Ź
Video files are not synchronized with
logs (you have to jump manually)
Limitations of testing tools
24. â—Ź
Web Testing
– Docker is helping here
â—Ź
Official selenium
images
– However
â—Ź
A lot of manual
configuration needed
â—Ź
No solution for Safari
or Edge
Limitations of testing tools
25. â—Ź
Web Testing
– There are commercial cloud services
that solve these problems
Limitations of testing tools
27. Why ElasTest?
â—Ź
Current testing tools have limitations
with E2E tests of complex distributed
software
– Log analysis
– Web testing
– SuT instrumentation
28. â—Ź
SuT instrumentation
– SuT Monitoring (logs, metrics analysis)
– Fault tolerance / Resilience testing
– Testing with different network conditions
(bandwidth, latency, jitter...)
Limitations of testing tools
30. â—Ź
SuT instrumentation
– No integration with CI systems
– Hard to manage from tests
– Hard to compare test executions with
different SuT configurations
Limitations of testing tools
32. What is ElasTest?
â—Ź
An open source platform
â—Ź
Designed to ease E2E testing of complex
distributed systems
â—Ź
You can install it in your laptop and in your
CI server
Apache License 2
33. What is ElasTest?
â—Ź
Main features (currently)
– End to end test execution
– SuT execution
– Log and metrics visualization and recording
– Log Analysis
– Web browsers management (Chrome and
Firefox)
– Jenkins integration
– TestLink integration
34. What is ElasTest?
â—Ź
ElasTest is used...
– through a web interface
– from tests in your IDE
– with CI servers plugins
36. Features
â—Ź
When using ElasTest, how do I develop
my e2e tests?
– With your favorite language
– With your favorite testing framework
– With your usual tools like selenium
– Just run them inside a docker container
37. Features
â—Ź
How do you execute the SuT?
– Deployed inside ElasTest
â—Ź
As a docker container
â—Ź
As a docker-compose project
– Deployed elsewhere
â—Ź
No restrictions
â—Ź
It can be monitored using standard agents
(more on that later)
54. Architecture
â—Ź
ElasTest is a microservice application
– Made up of several components
– Talking to each other via
â—Ź
REST APIs
â—Ź
Message Queues
â—Ź
Websockets
– Platform independent
64. Technologies
â—Ź
ElasTest is an application with different
services deployed in docker containers
– ElasTest Manager
– Tests and SuT execution
– Web browsers
– Persistence services
65. Technologies
â—Ź
It is very easy to download and run in any
operating system
> docker run … elastest/platform start
66. Technologies
â—Ź
ElasTest platform container:
– ElasTest is composed by several docker
containers
– Docker-compose is “static”
– We didn’t want users to have docker-compose
installed (it is an additional installation step)
– We got inspiration on Eclipse-che
67. Technologies
â—Ź
ElasTest platform container:
– To start ElasTest, the “platform” container is
executed
– Contains docker compose tool and use the host
docker daemon
â—Ź
-v /var/run/docker.sock:/var/run/docker.sock
– It has several commands: start, wait, update…
– It shows user friendly / ElasTest related messages
in console
68. Technologies
â—Ź
ElasTest platform container:
– Start several ElasTest components using its docker-
compose.yml file depending on parameters
– Every component is developed in its own GitHub
repository to facilitate collaboration between teams
– We use git submodules to “include” component
repositories into platform repository
– It manipulates docker-compose.yml files (remove
binded ports, remove container names, inject
environment variables...)
70. Plugins
â—Ź
ElasTest can be extended through plugins
â—Ź
This enables new testing tools to be added
to the platform
â—Ź
Within the project several plugins are being
developed
â—Ź
Browser service is one of those plugins
71. Plugins
â—Ź
ElasTest will develop plugins providing
– Web browsers
– Security services
– Monitoring
– Emulation of IoT sensors and actuators
– Big data services
72. Plugins
â—Ź
ElasTest monitoring
– ElasticSearch to store/search metrics and logs
– Logstash to “process” metrics and logs
– Capture
â—Ź
Logs are retrieved using syslog driver using
TCP
â—Ź
Metrics are retrieved using dockbeat
https://hub.docker.com/r/ingensi/dockbeat/
73. Plugins
â—Ź
ElasTest monitoring
– Log Analyzer
â—Ź
Implemented in Angular 2+ (as the overall GUI)
â—Ź
Uses ElasticSearch http API to query log entries
â—Ź
Uses ag-grid table component (open source
version)
74. Plugins
â—Ź
Web Browsers service
– Based on selenium official docker images
– A webdriver protocol proxy that intercepts
webdriver commands
– Create browsers on demand (instead of using
registered ones)
– Issues commands automatically
â—Ź
Capture browser console
and send it to ElasTest’s Logstash
75. Plugins
â—Ź
Web Browsers service
– Browser docker images provide VNC server
– We use noVNC technolgy to see and interact
with an VNC server from the web browser
– It also allows to record a video with the
session
https://github.com/bonigarcia/novnc
76. Plugins
â—Ź
Web Browsers service
– We are working on doing the same with
windows VMs to manage Internet Explorer
and Edge
– Based on modern.ie free Windows VM images
– Selenium is installed automatically using
ansible and vncdotool
https://github.com/sibson/vncdotool
79. Roadmap
â—Ź
1.0: Q1 2018
– Test parameterization and comparison
– Tests can react on events monitored in SuT
– IoT devices emulation
– Security testing
– Plugin system
– WebRTC services
– Test management
80. Roadmap
â—Ź
2.0: Q3/Q4 2018
– Infrastructure managed by ElasTest (elasticity)
– Mobile testing
– Performance testing
– Resilience testing
– Test cost estimation
– Recommendation service
82. European Project
â—Ź
ElasTest is a project funded by the
European Commission
http://elastest.eu
ElasTest: an elastic platform for testing
complex distributed large software systems
Duration: From 2017-01-01 to 2019-12-31
Total cost: EUR 5 031 187,50
EU contribution: EUR 4 270 187
Coordinated in: Spain
Topic(s): ICT-10-2016 - Software Technologies
Call for proposal: H2020-ICT-2016-1
Funded by the European Union
84. How you can support the project?
â—Ź
Follow us on twitter!
â—Ź
Give us stars in GitHub
â—Ź
Subscribe on users mailing list / forum
@ElasTestIO
https://github.com/elastest/elastest
https://groups.google.com/forum/#!forum/elastest-users