HybridTestFramework - End To End Testing Of Web, API And Security

Full-fledged WEB, API and Security testing framework using selenium,ZAP OWASP proxy and rest-assured

Supported Platforms

This 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.


  • 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

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/

Execution Gif

Disqus Comments