Giter Club home page Giter Club logo

hybridtestframework's Introduction

HybridTestFramework

Codacy Badge This project is using Percy.io for visual regression testing. CI 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. Ita comprehensive and versatile testing framework designed to cover various aspects of software testing. Its purpose is to help developers and testers streamline their testing process and ensure the highest quality in their applications.

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.
  • Logging integration with 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 api
gradle task web
gradle task mobile
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

Contributors

codacy-badger avatar dependabot-preview[bot] avatar dependabot[bot] avatar dipjyotimetia avatar dsmita22 avatar github-actions[bot] avatar heyrmi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hybridtestframework's Issues

We can add switch for each tests and run them based on user inputs

Is your feature request related to a problem? Please describe.
Right now all the tests run by default, eg Web, API Tests, AWS, etc. One way to control that is through TestNG XML,
Requested: Adding a provision that the user can start only one test based on config (could also do it another way).

Describe the solution you'd like
Based on which tests to run we can up the docker container and do not up the containers for which the user is not going to run the tests

Describe alternatives you've considered
Approach in mind:

  1. Have a properties file in which we can list all the tests to run.
  2. We can make tasks like there is for web and mobile tests.
  3. On the basis of the inputs present in config, we can up the containers and run the tests.

Update test case results to JIRA Zephyr

Is your feature request related to a problem? Please describe.

Describe the solution you'd like
It would be good to have an integration with test case management systems like JIRA Zephyr within the framework, so that the status of the test case will be updated automatically after every execution.

This can be achieved either via REST APIs within this framework or by reusing the existing solutions like https://github.com/ctco/zephyr-sync

Describe alternatives you've considered

Additional context
Ideally this feature can get extended to support other test case management tools as well like TFS or QTest

Add Google cloud testing

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Adding Github Action to trigger Test Suite.

Is your feature request related to a problem? Please describe.
As companies moving away from Jenkins to Github Actions for CI, thus it will be one good thing if we can have the feature of running our test suites directly from Github Actions using workflows.

Describe the solution you'd like
If some code change or merge is performed (say for eg. in the repo of some company), and that code is hosted on Github enterprise edition then its good to have the Github Actions to trigger Smoke/Regression suite automatically.

Describe alternatives you've considered
NA

Additional context
Screenshot 2022-06-18 at 09 16 42

This is one is for maven project.

Healenium support

We can add support for Healenium for self healing, with a switch if user wants to toggle it on or off during execution of selenium based tests.

Add gRPC testing support

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Add appium mobile testing support

Is your feature request related to a problem? Please describe.
Need support to test native mobile applications

Describe the solution you'd like
Add java appium integration

Describe alternatives you've considered
A speperate mobile testing framework ๐Ÿค”

Add graphql testing support

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Adding security analysis tool Codeql

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

We can add message support for Slack, Teams, Discord.

Is your feature request related to a problem? Please describe.
We can get notified (via Slack, Teams, Discord whatever is possible at first) whenever the actions kick in like when a new PR is raised or someone runs the tests.

Describe the solution you'd like
A simple message to the channels one decides to get in. We can provide the webhooks in the GitHub secrets and then use them to send the incoming messages on the messaging platforms.

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.