Skip to content
/ qacode Public

Main Library written on python to execute functional tests throught selenium API coded down w3c webdriver specification

License

Notifications You must be signed in to change notification settings

netzulo/qacode

Repository files navigation

QA Code

Issues on Github Pull Request opened on Github Release version on Github Release date on Github
Branch Linux Deploy Windows Deploy CircleCI - Docker CodeClimate
master https://travis-ci.org/netzulo/qacode.svg?branch=master https://ci.appveyor.com/api/projects/status/4a0tc5pis1bykt9x/branch/master?svg=true https://circleci.com/gh/netzulo/qacode.svg?&style=shield&circle-token=80384cb2233d112dc0785278d5b7c3d8c6a5686c https://api.codeclimate.com/v1/badges/46279cf9a6a47ed583d6/maintainability

Python tested versions

3.7 3.6 3.5 <=3.4
Supported Supported Supported Not Supported

How to install ?

  • Install from PIP : pip install qacode
  • Install from setup.py file : python setup.py install

Documentation

How to exec tests ?

  • Tests from setup.py file : python setup.py test
  • Install from PIP file : pip install tox
  • Tests from tox : tox -l && tox -e TOX_ENV_NAME ( see tox.ini file to get environment names )
TOX Env name Env description
py35,py36,py37 Python supported versions
flake8 Exec linter in qalab/ tests/
coverage Generate XML and HTML reports
docs Generate doc HTML in /docs

Configuration File

{
  "bot": {
    "log_output_file": "logs/",
    "log_name": "qacode",
    "log_level": "DEBUG",
    "mode": "remote",
    "browser": "chrome",
    "options": { "headless": false },
    "url_hub": "http://localhost:11000/wd/hub",
    "drivers_path": "../qadrivers",
    "drivers_names": [
      "chromedriver_32.exe",
      "chromedriver_64.exe",
      "chromedriver_32",
      "chromedriver_64",
      "firefoxdriver_32.exe",
      "firefoxdriver_64.exe",
      "firefoxdriver_64.exe",
      "firefoxdriver_32",
      "phantomjsdriver_32.exe",
      "phantomjsdriver_64.exe",
      "phantomjsdriver_32",
      "phantomjsdriver_64",
      "iexplorerdriver_32.exe",
      "iexplorerdriver_64.exe",
      "edgedriver_32.exe",
      "edgedriver_64.exe"
    ]
  }
}

Getting Started

Just starting example of usage before read Usage Guide (or refer to `QAcode's Documentation`_).

from qacode.core.bots.bot_base import BotBase
from qacode.core.webs.controls.control_base import ControlBase
from qacode.utils import settings


SETTINGS = settings(
    file_path="/home/user/config/dir/",
    file_name="settings.json"
)


try:
    bot = BotBase(**SETTINGS)
    bot.navigation.get_url("http://the-internet.herokuapp.com/login")
    ctl_config = { "selector": "input[name='username']"}
    ctl = ControlBase(bot, **ctl_config)
    # END
    import pdb; pdb.set_trace() # TODO, remove DEBUG lane
    print(ctl)
except Exception as err:
    print("ERROR: {}".format(err))
finally:
    bot.close()