Test Automation Framework (Selenium with Java) — Golem or Test Automation Environment and Tools

S01E02 of the Test Automation Framework series about everything you’ll need to set up the nice, simple, yet sophisticated framework.

Covered with clear explanations and pretty illustrations.

Sounds like fun? Cool. Now, please, fasten your seatbelts because you’re here for a ride.

S01E01 — What To Automate?

S01E03 — The First Selenium Test Case

S01E04 — Selenium Foundations Revisited

S01E05 — Page Factory and Elements Related Exceptions

S01E06 — Page Loading Strategies and Waits

S01E07 — Translating JIRA with Selenide (with Exercises)

S01E08 — JIRA, Selenide, Complex SQL, Java Objects with Equals & HashCode (with Exercises)

S01E09 — Code Review and Refactoring (Part 1)

S01E10 — Code Review and Refactoring (Part 2)

S01E11 — Allure in Action

UPDATE (25–10–2021): I’ve applied the suggestion provided by Piotr Klubiński, so that, if you’d want to launch Ultimate Stack Developer on your local machine, you’ll only need to clone the repository and launch the docker-compose up command — that’s all there is to be done. Thanks again, Piotr!

First of all, I would like to take a brief moment to understand what we’ll be dealing with.

The application we’ll be using throughout the Test Automation Framework series is a full-stack application called Ultimate Stack Developer, which essentially is a micro-scale blog app that I’ve made at the beginning of 2021.

It is written in Java 11 with Spring Boot as for the backend and Angular, as for the frontend framework. I’d like to stay away from too much detailed explanation of the infrastructure, but I’ll just add it also uses GraphQL/REST for the API and PostgreSQL as a default database.

If you’d like, you can look up the Live version of the app, up here:

Homepage: https://ultimatestackdeveloper.netlify.app

Admin panel: https://ultimatestackdeveloper.netlify.app/the/architect

(user: tbuga & password: 4dm1n?!)

To grasp the concept of how to work with the Ultimate Stack Developer app, I’ve prepared a diagram with an overview of the site map:

One thing I have to mention — if the homepage, after clicking the yellow button, is taking a long time to load — it is due to the free tier of Heroku’s hosting. Default settings are that the server will go into an inactive state after 1 hour of inactivity (like in “no requests/responses”) and would need a short while to start working again.

The second thing I have to mention — you can do whatever you want on the Ultimate Stack Developer webpage.

I dare you to break it.

If you do so — please share your findings in the comments section below. I have a backup SQL file, just in case, so don’t worry, reset of the app is just a matter of minutes, if not seconds.

Okay, we know what we’ll be dealing with. We know how does it look like. It’s time to finally set up a localhost testing environment.

In this episode, we will focus on setting up both the backend and frontend for the Ultimate Stack Developer.

Below you will find the list of things that we need to do to successfully run the application locally.

Required Toolset

  1. Download & install Java Development Kit 11https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html
  2. Download & install Apache Maven (it’s not required to run the backend, but we’ll be using it for Test Automation Framework in the upcoming episodes) — https://maven.apache.org/download.cgi
  3. Download & install Docker Desktop https://www.docker.com/products/docker-desktop
  4. Download & install GIThttps://git-scm.com/
  5. In terms of Integrated Development Environment (IDE) I’d suggest the IntelliJ IDEA Community Edition (https://www.jetbrains.com/idea/download/), as it’s free and somewhat industry standard when it comes to working with the Java codebase. But, if you’re well versed in any other IDE — feel free to use anything you want — I’m not judging… aloud, at least *wink, wink*.
  6. Download & install Postmanhttps://www.postman.com/downloads

Running Ultimate Stack Developer Locally

  1. Clone (it’s just a fancy word for “download”) GitHub repository with backend code from: https://github.com/n4bik/ultimate-stack-developer
  2. Make sure that Docker Desktop is running
  3. Use the docker-compose up command via Terminal/Bash from the root directory of the project to run the Ultimate Stack Developer Backend, Frontend & PostgreSQL Database within Docker Containers on your machine.
  4. (Optional) Open your internet browser and navigate to http://localhost:4200 and verify that your instance of the Ultimate Stack Developer is working just like the Live version of the app
  5. (Optional) You can open the Postman app and import a collection file (Ultimate Stack Developer.postman_collection.json) from the Ultimate Stack Developer root directory to check if API is working correctly.

There you have it — Java/Spring Boot application with PostgreSQL database in a Docker container, consumed by the frontend written in Angular, and all of it running on your own, local machine. Sweet, ain’t it?

In the next episode, we’re going to finally focus on the actual Selenium framework, once we have something to work on. Till the next time!

All the best,

Tomasz Buga, SDET

www.tomaszbuga.pl

Sources:

All illustrations made by Tomasz Buga

P.S. I’ve picked the subtitle “Golem” for this episode because it seems like I’ve been trying to recreate the Medium page by myself and the Ultimate Stack Developer is a kind of Medium’s Golem version. XOXO

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Tomasz Buga

Tomasz Buga

121 Followers

Software Development Engineer in Tests. Passionate about programming. Experienced, former employee of the insurance industry. Graphic designer by choice.