Coder Social home page Coder Social logo

iqa_testsuite's Introduction

iQA Test suites

Description

Project iqa-testsuite include separate test suites for Messaging.

Ideas

  1. It is primarily designed for testing messaging components/services.

  2. Every test suite should use messaging_abstration API for writing tests. It is not dependant on exact component you want to use under test.

  3. Components for test integration with end software. Under (messaging_components) setup under conftest.py (with iteration way?) Or under not yet existing plugin for py.test

  4. Test suites are by default based on pytest tests runner, but any test framework can be used instead.

  5. Possibility for end to end testing without messaging_abstraction API.

Please read README.md and requirements.txt before running.

Needed steps

  1. Prepare/Deploy required topology (must be compatible with expected test suite)
  2. Describe the topology in inventory file (fully compatible with Ansible Inventory)
  3. Related to test runner execution
    • Provide conftest.py in which you describe (messaging) components from Inventory file
    • Fixtures for broker, client and router objects
  4. Write tests using calls from messaging-abstraction module

Objectives

  • Modular
  • Scalable
  • Abstract

Dependencies and projects

Every test suite can have different dependency. Read README.md of every test-suite.

iqa_testsuite depends on following projects:

  • messaging_abstract
  • messaging_components
  • iqa_common
  • pytest_iqa

Abstract classes (Facades)

  • Protocols
  • Message
  • Client
    • Sender
    • Receiver
    • Connector
  • Broker
  • Router
  • Node

Implementation of specific components based on messaging_abstract.

  • Supported Brokers
    • Artemis
  • Supported Routers
    • Qpid Dispatch
  • Supported Clients
    • Python proton
    • Command line interface clients (RHEA, Python Proton, JMS)

Common classes methods for this test suite

  • IQA Instance
  • Node
    • Execution

IQA Instance

Is provided as a pytest plugin pytest_iqa

IQA Instance knows facts about provided topology (based on inventory file). Such instance is able to execute commands directly on a specific node in topology or access identified messaging components directly via provided APIs. The instance should verify compatibility with your inventory file by test suite requirements.

Running test suites

Prepare:

# Create virtual environment
virtualenv3 venv

# Activate virtual environment 
source venv/bin/activate

# Install requirements
pip install -r requirements.txt

Options

Inventory

Path to Inventory file with hosts and facts.

--inventory ${path_to_inventory}

Execution

Need to be executed from main conftest.py test-suite root directory.

./venv/bin/py.test ${test_suite_dir} --inventory /path/to/inventory

iqa_testsuite's People

Contributors

fgiorgetti avatar frawless avatar enkeys avatar michalxo avatar nicob87 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.