GithubHelp home page GithubHelp logo

nemesis545 / hybridtestframework Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dipjyotimetia/hybridtestframework

0.0 1.0 0.0 177.17 MB

End to End testing of Web, API and Security

Home Page: https://dipjyotimetia.github.io/HybridTestFramework/

License: MIT License

HTML 4.38% Java 94.18% Dockerfile 1.18% Shell 0.26%

hybridtestframework's Introduction

HybridTestFramework

Codacy Badge This project is using Percy.io for visual regression testing. CI CodeQLAnalysis
Discord Chat
SupportedBy JetBrains

In the era of cloud-native world we cannot stick to a particular framework, however due to projects requirement we often need to evolve the existing testing solution in such a way so that it can cater multiple testing requirement, hence HybridTestFramework is targeting to create a bridge between the kind of legacy systems or the systems which are still in a transition phase of migrate to cloud with super cool cloud-native systems.

Framework 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.
  • Rest Api and GraphQL testing support powered by RestAssured.
  • gRPC api testing support using native gRPC=java library.
  • Event driven microservice testing based on pubsub model.
  • Support for Kafka, Cloud Pubsub, AWS SNS testing and continue evolving.
  • 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.
  • 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.5.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/

Browserstack Execution Gif

browserstack

hybridtestframework's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.