Integrating Selenium tests into GitLab CI
GitLab is the first single application for the entire DevOps cycle. Only GitLab enables Concurrent DevOps, unlocking organizations from the constraints of the toolchain. GitLab provides unmatched visibility, higher levels of efficiency, and comprehensive governance. This makes the software lifecycle 200% faster, radically improving the speed of business.
Taking into account the fast growth of GitLab in recent years and it’s prominent advantages, you might be required to start running Selenium tests in GitLab or even migrate your end2end tests from your previous CI tool to GitLab.
Step by step guide will provide you the main challenges, key configurations, pitfalls in order to integrate and successfully run Selenium tests in GitLab CI. The wrapper around the Selenium to be presented is going to be Protractor with a built-in Jasmine test runner.
The presentation will also showcase some main tips and tricks we’ve faced during this integration at our fast-growing startup in Munich, Germany.
Outline/Structure of the Demonstration
- A short intro to GitLab
- Pros and cons of moving into the GitLab ecosystem
- A short intro to Protractor (if needed)
- Big picture from what to start with "GitLab + Selenium" integration
- GitLabCi.yml file, it's structure and syntax
- Dockerfile to be used by GitLab
- Protractor config file (if needed)
- Saving and passing variables into the test
- Reusing created images in other projects in GitLab
- Saving test artifacts (screenshots, etc)
- Nightly builds and schedules in GitLab
- Main issues, limitations, and pitfalls (not mentioned at the official GitLab website)
- Improvements to be made fo this integration to make it even more holistic
- Q & A
Learning Outcome
Step by step guide will provide you:
- GitLab pricing plans and comparison with other CICD solutions in the market
- the main CICD challenges to be considered
- main requirements to be asked prior to the integration with GitLab
- key configurations of GitLab project and Selenium tests to deploy fewer bugs to Production
- main pitfalls in order to integrate and successfully run Selenium tests in GitLab CI
Target Audience
SDET, QAOps, QA Automation Engineers who work with Selenium (e.g. Protractor tests) and who might be working with GitLab CI in the future
Prerequisites for Attendees
- how CICD works in general
- what is a Selenium test
- at least some basic knowledge in Docker
Video
Links
- Promo video of the current topic: https://youtu.be/CtrGNm2xQ88
- The similar topic has been presented at MinistryOfTesting Meetup group in Munich that highlights the need of having more buzz of the topic: https://www.meetup.com/de-DE/Ministry-of-Testing-Munich/events/268826565/?isFirstPublish=true
- Lviv BAQ Conference Autumn 2017 (Ukraine), slides: https://docs.google.com/presentation/d/1FmCc85qqZMdiUH-pF7P0p0Zj-yT6hSLwcyxLJH0ibAQ/edit?usp=sharing
- QA FEST 2016 (the biggest QA Conference in Ukraine, Kyiv), slides: https://docs.google.com/presentation/d/1EteJQoZTIq3kftiiN8JHp8td56appAxo8DFovM0GTHA/edit?usp=sharing
schedule Submitted 3 years ago
People who liked this proposal, also liked:
-
keyboard_arrow_down
Ivan Krutov - Workshop: Efficient Selenium Infrastructure with Selenoid
480 Mins
Workshop
Intermediate
Selenoid is an alternative lightning fast open-source Selenium protocol implementation running browsers and Android emulators inside Docker containers. It is distributed with a set of ready-to-use Docker images corresponding to the majority of popular browser versions, has a one-command installation utility and works slightly more efficiently than traditional Selenium Grid.
This tutorial shows how to build efficient and scalable browser automation infrastructure using Selenoid and related tools. You will be taught why running browsers in containers is so efficient, how to easily install Selenoid and use its powerful features.
-
keyboard_arrow_down
Arun Prakash / Oleg Shuliak - Scalable & Lightning fast Test Infrastructure in AWS
Arun PrakashQuality Assurance EngineerPersonio GmbHOleg ShuliakQA EngineerPersonioschedule 3 years ago
45 Mins
Demonstration
Intermediate
Quality Assurance is an important term in the lifecycle of a software product. When it comes to QA, there are a lot of layers of testing which includes but not limited to Unit testing, Integration testing, UI testing. If we consider the test pyramid, although UI testing forms only a small percentage of the tests, it's an important factor in deciding the quality of the product. One of the main pain points in having a UI test is the execution time. To overcome this, we now have the tests that are executed in parallel. While designing a test infrastructure for executing the UI tests in parallel, there are a lot of factors that need to be considered. Some of them are
- Scalability
- Reliability
- Resource constraints
Taking into account the different tools which are available now in the market, one of the most efficient tool which satisfies the above criteria is "Selenoid"
Selenoid is a powerful Go implementation of original Selenium hub code. It is using Docker to launch browsers. One of the main advantages of selenoid is that its' lightning fast. Selenoid launches a new container for each new browser request and stops it after the session is closed. A certain browser version, the required version of the web driver which supports this browser and all necessary dependencies form each container. Selenoid also support most of the popular browsers such as Chrome, firefox etc.
This presentation will be to show case how to create a scalable selenoid infrastructure in AWS cloud with the help of kubernetes and this is being used at our fast growing startup based on Munich, Germany. We will also show case the comparison between different tools that are available in the market.
Architecture
https://drive.google.com/file/d/1Uz5S2KEyCYHNqarppU9HA4zMdkahzIuY/preview
-
keyboard_arrow_down
Khanh Do - Leveraging Artificial Intelligence to create self-healing tests
45 Mins
Tutorial
Intermediate
A key requirement for successful test automation is to get past the brittle or fragile nature of test scripts. Any Selenium (or Appium) developer has encountered the dreaded "NoSuchElement Exception". A locator that worked yesterday may fail today. What's a test engineer to do?
Fortunately the field of AI provides promising solutions and allows for the creation of self-healing tests. Tests that can find elements across all environments. Tests that can learn from "human-in-the-loop" intervention and work perfectly thereafter. Imagine automated tests that "just work"!
This session will look at how to apply the latest in AI and Machine Learning technologies to improve your test scripts. With the plethora of new open source AI libraries made available by companies such as Google, the ability to leverage AI in your applications is more accessible than ever.
This session will be a primer on AI technologies and how they can be utilized for perfect test automation.