Kali Linux

Hybrid Test Framework : End To End Testing Of Web, API And Security

Hybrid Test Framework is a framework supports WebUi automation across a variety of browsers like Chrome, Firefox, IE, no only limited to this but extended to test rest api, security and visual testing.

Capabilities

  • Cross browser testing support
  • Added browserstack support for CrossBrowser testing
  • Running tests in docker containers selenium grid
  • Running tests in AWS DeviceFarm selenium grid
  • Running tests in selenium server in docker containers
  • Security testing using OWASP, running in docker container
  • Api testing support using RestAssured
  • Visual regression testing using percy.io
  • Accessibility testing using axe-selenium
  • Stubbed api testing using WireMock
  • Can send logs to ElasticSearch for kibana dashboard visualization
  • Database testing support
  • Kafka testing support
  • Kubernetes support

Setup & Tools

  • Install intellij https://www.jetbrains.com/idea/download/
  • Install docker desktop https://www.docker.com/products/docker-desktop
  • Java JDK_11
    https://adoptopenjdk.net/
  • Gradle https://gradle.org/next-steps/?version=6.8.3&format=bin
  • Allure https://github.com/allure-framework/allure2/archive/2.17.2.zip
  • Set Environment variables
    • JAVA_HOME: Pointing to the Java SDK folder\bin
    • GRADLE_HOME: Pointing to Gradle directory\bin.
    • ALLURE_HOME: Pointing to allure directory\bin.

Getting Started

$ git clone
$ cd
$ import project from intellij as a gradle project
$ gradle clean
$ gradle build
$ gradle task E2E
$ gradle allureReport
$ gradle allureServe

Write your first user journey

Create new class and name as the TC00*_E2E_TEST-***

  • Provide jira link in @Link
  • Provide all the api components as @Feature
  • Provide test severity and description
  • Write test
  • Use CatchBlock in try/catch section

Spin-up chrome, firefox, selenium hub and OWASP proxy server

$ docker-compose up -d

Complete infrastructure creation for local run

$ $ docker-compose -f docker-compose-infra up -d

Spin-up four additional node-chrome/firefox instances linked to the hub

$ docker-compose scale chrome=5
$ docker-compose scale firefox=5

Spin-up kafka instances

$ docker-compose -f docker-compose-kafka.yml up
$ docker-compose -f docker-compose-kafka.yml down –rmi all

Spin-up selenium hub in kubernetes instance

$ kubectl apply -f selenium-k8s-deploy-svc.yaml
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
$ kubectl proxy
$ kubectl describe secret -n kube-system | grep deployment -A 12
To delete deployments
$ kubectl delete deployment selenium-node-firefox
$ kubectl delete deployment selenium-node-chrome
$ kubectl delete deployment selenium-hub

navigate to http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

R K

Recent Posts

pstree Command in Linux: Visualize Running Process Hierarchies

The pstree command in Linux displays running processes in a tree structure rather than a flat list.…

13 minutes ago

type Command in Linux: Show How the Shell Resolves a Name

The type command in Linux shows how the current shell would interpret a name typed on the…

22 hours ago

How to Check Memory Usage in Linux: free, top, and /proc/meminfo

When a Linux system is slow or behaving unexpectedly, memory is one of the first…

22 hours ago

ip Command in Linux: Configure Interfaces, Routes, and ARP

The ip command is the standard network configuration tool on modern Linux systems. It is part of…

22 hours ago

chown Command in Linux: Change File and Directory Ownership

Every file and directory in Linux has an owner (a user) and a group. Together…

22 hours ago

How to Remove Files and Directories in Linux: rm, shred, rmdir

The command line does not have a Trash folder. When you delete a file from…

2 days ago