A complete test automation tool

Overview

Golem - Test Automation

Build Status Documentation Status Join the chat at https://gitter.im/golem-framework/golem

Golem is a test framework and a complete tool for browser automation. Tests can be written with code in Python, codeless using the web IDE, or both.

Tests can be written with the web app

But, they are still Python code

Batteries Included


Golem is still in beta!. Read the changelog before upgrading.


Screen Captures

Report Dashboard

Execution Report

Test Execution Detail

Installation

Golem works with Python 3.5+

pip install golem-framework

Read the full installation guide here: https://golem-framework.readthedocs.io/en/latest/installation.html

Quick Start

Create a test directory anywhere in your machine

golem-admin createdirectory <test_directory>

Download the latest webdriver executables

cd <test_directory>
webdriver-manager update

Webdriver executables are downloaded to the drivers folder. For more information check this page of the documentation.

Start the Web Module

golem gui

The Web Module can be accessed at http://localhost:5000/

By default, the following user is available: username: admin / password: admin

Run a Test From Console

golem run <project> <test>
golem run <project> <suite>

Args:

  • -b | --browsers: a list of browsers, by default use defined in settings.json or Chrome
  • -p | --processes: run in parallel, default 1 (not parallel)
  • -e | --environments: a list of environments, the default is none
  • -t | --tags: filter tests by tags

Documentation

https://golem-framework.readthedocs.io/

Questions

If you have any question please use the Gitter channel.

Contributing

If you found a bug or want to contribute code please read the contributing guide.

License

MIT

Credits

Logo based on "to believe" by Shannon E Thomas, CC BY 4.0

Comments
  • chrome 70: every test fails on driver.maximizewindow()

    chrome 70: every test fails on driver.maximizewindow()

    with updating to chrome 70 we have issue with running tests open browser action contains driver.maximizewindow() which worked until chrome 69 and still works on every other browser

    but after the update to 70 we are getting this error

    WebDriverException: Message: unknown error: failed to change window state to maximized, current state is normal (Session info: chrome=70.0.3538.77) (Driver info: chromedriver=2.43.600229 (3fae4d0cda5334b4f533bede5a4787f7b832d052),platform=Mac OS X 10.13.6 x86_64)

    bug 
    opened by filiprichtarik 11
  • [enhancement] support for dynamically set

    [enhancement] support for dynamically set "desired capabilities" and "cookies"

    @lucianopuccio I don't see any option to set an enhancement label for this issue via the regular issue input from github, so that is why I used [enhancement] in the title.

    Looking at the great Zalenium grid container (https://zalando.github.io/zalenium/) and some other remote browser environments, it would be great if Golem would support the following features:

    • Setting up a browser instance with dynamically set "desired capabilities" per test case, enabling: -- Custom browser versions / platforms for remote browser tests. -- Naming of recorded test video's within Zalenium in case the testcase name is set via 'desired capabilities'(see referenced website -test name- section).

    • Set dynamic cookies during tests. -- In case of Zalenium this would enable referenced test steps in the recorded Video's (see referenced website -Referencing test steps in the recorded video- section-)

    enhancement 
    opened by r-roos 10
  • Defining & Passing data in more complex data structures like List & Dictionary Objects

    Defining & Passing data in more complex data structures like List & Dictionary Objects

    In case user needs to pass data in more complex data structures like lists,dictionary,tuples etc, how can it be defined & passed as parameters inside functions(actions)?

    Example: List of standard common labels across application pages , to be verified so the list of those labels/objects can be passed around as arguments to functions to verify .

    opened by vishal-agg 9
  • Refactor Golem actions

    Refactor Golem actions

    Proposed new, renamed and removed actions

    New Actions

    • assert
    • assert_*
    • go_back
    • set_search_timeout
    • get_search_timeout
    • double_click
    • drag_and_drop
    • focus_element
    • close_all_browsers
    • set_trace
    • error
    • execute_javascript
    • fail
    • javascript_click
    • deselect_option_by_text
    • deselect_option_by_value
    • deselect_option_by_index
    • verify_selected_option_by_text
    • verify_selected_option_by_value
    • get_alert_text
    • send_text_to_alert
    • submit_prompt_alert
    • verify_alert_present
    • verify_alert_not_present
    • verify_alert_text
    • verify_alert_text_is_not
    • wait_for_alert_present
    • verify_element_has_attribute
    • verify_element_has_not_attribute
    • verify_page_not_contains_text
    • verify_element_text_contains
    • verify_element_text_is_not
    • verify_element_text_not_contains
    • verify_title
    • verify_title_contains
    • verify_title_is_not
    • verify_title_not_contains
    • verify_url
    • verify_url_contains
    • verify_url_is_not
    • verify_url_not_contains
    • wait_for_element_present
    • wait_for_element_not_enabled
    • wait_for_page_contains_text
    • wait_for_page_not_contains_text
    • wait_for_element_text
    • wait_for_element_text_is_not
    • wait_for_element_contains_text
    • wait_for_element_not_contains_text
    • wait_for_element_has_attribute
    • wait_for_element_has_not_attribute
    • wait_for_alert_present
    • wait_for_alert_not_present
    • wait_for_title
    • wait_for_title_is_not
    • wait_for_title_contains
    • wait_for_title_not_contains
    • verify_element_attribute
    • verify_element_attribute_is_not
    • go_forward
    • check_element
    • uncheck_element
    • submit_form
    • switch_to_default_content
    • switch_to_frame
    • switch_to_parent_frame
    • get_window_titles
    • get_window_handle
    • get_window_handles
    • get_window_index
    • switch_to_first_window
    • switch_to_last_window
    • switch_to_window_by_index
    • switch_to_window_by_title
    • switch_to_window_by_partial_title
    • switch_to_window_by_url
    • switch_to_window_by_partial_url
    • switch_to_next_window
    • switch_to_previous_window
    • close_window
    • close_window_by_index
    • close_window_by_title
    • close_window_by_url
    • close_window_by_partial_title
    • close_window_by_partial_url
    • verify_window_present_by_title
    • verify_window_present_by_partial_title
    • verify_window_present_by_url
    • verify_window_present_by_partial_url
    • verify_amount_of_windows
    • wait_for_window_present_by_title
    • wait_for_window_present_by_partial_title
    • wait_for_window_present_by_url
    • wait_for_window_present_by_partial_url
    • wait_for_window_not_present_title
    • wait_for_window_not_present_url
    • wait_for_window_not_present_partial_title
    • wait_for_window_not_present_partial_url
    • wait_for_amount_of_windows
    • maximize_window
    • get_element_text
    • get_element_value
    • verify_element_has_focus
    • verify_element_has_not_focus
    • get_element_attribute

    Renamed Actions

    • capture -> take_screenshot
    • clear -> clear_element
    • close -> close_browser
    • debug -> interactive_mode
    • mouse_hover -> mouse_over
    • select_by_index -> select_option_by_index
    • select_by_text -> select_option_by_text
    • select_by_value -> select_option_by_value
    • verify_alert_is_present -> verify_alert_present
    • verify_alert_is_not_present -> verify_alert_not_present
    • verify_cookie_exists -> verify_cookie_present
    • verify_is_enabled -> verify_element_enabled
    • verify_is_not_enabled -> verify_element_not_enabled
    • verify_is_selected -> verify_element_checked
    • verify_is_not_selected -> verify_element_not_checked
    • verify_is_visible -> verify_element_displayed
    • verify_is_not_visible -> verify_element_not_displayed
    • verify_exists -> verify_element_present
    • verify_not_exists -> verify_element_not_present
    • verify_text -> verify_page_contains_text
    • verify_text_in_element -> verify_element_text
    • wait_for_element_not_exist -> wait_for_element_not_present
    • wait_for_element_visible -> wait_for_element_displayed
    • wait_for_element_not_visible -> wait_for_element_not_displayed

    Removed Actions

    • assert_contains
    • assert_equals
    • assert_false
    • assert_true
    • verify_selected_option
    feature 
    opened by luciano-renzi 7
  • GUI: suggestions for test step arguments are displayed in incorrect order

    GUI: suggestions for test step arguments are displayed in incorrect order

    With the current latest source of (22-10-2017) I am experiencing the following GUI bug.

    The field indicators when adding a test step that requires multiple arguments is displayed in the incorrect order within the gui. This results in a issue where once calling the test step the function is called with the wrong order of arguments.

    Example: The following test step function: image

    end up being presented as (TOP: correct order for function call, BOTTOM: incorrect initial suggestions, the bug) image

    The result of the above: image

    bug 
    opened by r-roos 6
  • Announcement: Moving project to a Github organization

    Announcement: Moving project to a Github organization

    I would like to announce that I will be moving this and some related repos to @golemhq org.

    I'm pleased with the feedback the project has got so far and thankful for all the contributions. I want to see it grow to its full potential. This change will help keep things more organized.

    Also, I'll be renaming my username shortly after.

    announcement 
    opened by luciano-renzi 5
  • Differentiating between soft vs. hard assertions inside tests

    Differentiating between soft vs. hard assertions inside tests

    How framework supports hard vs. soft assertions inside an test.

    Terminology Hard Assertions:Test execution stops as soon as assertion failure found. Soft Assertions:Test execution continues even if assertion failure found.

    enhancement 
    opened by vishal-agg 5
  • Getting ModuleNotFoundError on launching web Module

    Getting ModuleNotFoundError on launching web Module

    Environment: OS:Win7 Python: 3.6.3

    Steps: 1).Installed Python 3.6.3 in Windows 7 2).Installed Golem by pip install golem-framework. 3).Created the test directory : golem-admin C:\Golem 4).Downloaded Chrome Browser Driver 2.33 and placed inside Drivers folder. 5).Started the web Module: cd C:\Golem python golem.py gui 6).Got the error on command prompt as attached screenshot.

    However this is working fine in Python 3.4.4 version. golemuilauncherror

    cannot reproduce 
    opened by viaggarwal 5
  • Test run fails:  NameError: name 'msg' is not defined, Could not start chrome driver using the path './drivers/chromedriver*'

    Test run fails: NameError: name 'msg' is not defined, Could not start chrome driver using the path './drivers/chromedriver*'

    Starting with the project Error 1 The test run fails due to chromdriver is not properly set. H The chromedriver is in the directory ./drivers/chromedriver*' and its set in the settings on the same path

    Error 2: the exception block fails because the variable "msg" is undefined. For which I'm willing to raise Pull Request, does it work?

    Stacktrace

    13:08:20.951 INFO Test execution started: image_push
    13:08:20.951 INFO Browser: chrome
    13:08:20.967 ERROR Could not start chrome driver using the path './drivers/chromedriver*', check the settings file.
    13:08:20.971 INFO Traceback (most recent call last):
    File "/Users/pooja/venv/python3/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 76, in start
    stdin=PIPE)
    File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 709, in __init__
    restore_signals, start_new_session)
    File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 1344, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
    PermissionError: [Errno 13] Permission denied: '/Users/pooja/venv/python3/golem_fw/drivers/chromedriver_2.38'
    During handling of the above exception, another exception occurred:
    Traceback (most recent call last):
    File "/Users/pooja/venv/python3/lib/python3.6/site-packages/golem/browser.py", line 268, in open_browser
    chrome_options=chrome_options)
    File "/Users/pooja/venv/python3/lib/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py", line 68, in __init__
    self.service.start()
    File "/Users/pooja/venv/python3/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 88, in start
    os.path.basename(self.path), self.start_error_message)
    selenium.common.exceptions.WebDriverException: Message: 'chromedriver_2.38' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home
    13:08:20.973 ERROR An error ocurred:
    File "/Users/pooja/venv/python3/lib/python3.6/site-packages/golem/test_runner/test_runner.py", line 122, in run_test
    test_module.test(execution.data)
    File "/Users/pooja/venv/python3/golem_fw/projects/flash/tests/image_push.py", line 10, in test
    navigate("https://www.google.com")
    File "/Users/pooja/venv/python3/lib/python3.6/site-packages/golem/actions.py", line 337, in navigate
    driver = browser.get_browser()
    File "/Users/pooja/venv/python3/lib/python3.6/site-packages/golem/browser.py", line 343, in get_browser
    open_browser()
    File "/Users/pooja/venv/python3/lib/python3.6/site-packages/golem/browser.py", line 273, in open_browser
    raise Exception(msg)
    NameError: name 'msg' is not defined
    Result: fail 
    Error: NameError: name 'msg' is not defined 
    Elapsed Time: 0.02
    Browser: chrome
    Steps:
    
    opened by p00j4 4
  • Test Debugger no longer working

    Test Debugger no longer working

    golem run -i works correctly with #97

    adding debug() or a import pdb; pdb.set_trace() to a test no longer works, it enters then exits the debugger without stopping.

    dbug() log: INFO:golem:Click Login Button Entering interactive debug mode Type exit() to stop

    now exiting InteractiveConsole...

    pdb log: 13:17:24 INFO Click Login Button INFO:golem:Click Login Button

    /home/daniel/Development/golem/FunctionalTests/projects/OSC/tests/forgot_password.py(19)test() -> click(forgot_password.forgot_link) (Pdb) 13:17:27 ERROR An error ocurred: Traceback (most recent call last): File "/home/daniel/Development/golem-dm/env/lib/python3.6/site-packages/golem_framework-0.4.5-py3.6.egg/golem/test_runner/test_runner.py", line 122, in run_test test_module.test(execution.data) File "/home/daniel/Development/golem/FunctionalTests/projects/OSC/tests/forgot_password.py", line 19, in test click(forgot_password.forgot_link) File "/home/daniel/Development/golem/FunctionalTests/projects/OSC/tests/forgot_password.py", line 19, in test click(forgot_password.forgot_link) File "/usr/lib/python3.6/bdb.py", line 48, in trace_dispatch return self.dispatch_line(frame) File "/usr/lib/python3.6/bdb.py", line 67, in dispatch_line if self.quitting: raise BdbQuit bdb.BdbQuit

    bug 
    opened by danielmaddern 4
  • Issues with page objects

    Issues with page objects

    OS name and version - Win 10 (x64)
    Python version - Python 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 17:26:49) [MSC v.1900 32 bit (Intel)] on win32
    Golem version - I don't know where I can check it (latest installed with pip)
    

    I faced with the following problem: For unknown for me reasons golem doesn't save elements in page objects (without showing any tips or message) or doesn't show objects if I fill it in mode. Sometimes it erased objects if saved it before. More details please see on attached videos: http://recordit.co/by6VOYYFXk http://recordit.co/yzWWx4bUxC

    opened by ArtemSukhomlyn 4
  • Can we use golem with already open browser?

    Can we use golem with already open browser?

    I want to use golem with my default browser which is already logged in to websites. is it possible to open my default browser or the browser that I want?

    opened by Captain05 1
  • New test hooks: before_test, before_each, after_each, after_test

    New test hooks: before_test, before_each, after_each, after_test

    There are 4 new test hook functions that can be defined in a test file:

    • before_test: runs at the beginning of a test file, replaces setup
    • before_each: runs before each test function
    • after_each: runs after each test function
    • after_test: runs allways at the end of a test file, replaces teardown
    feature 
    opened by luciano-renzi 0
  • New data source: JSON

    New data source: JSON

    • There is a new data source type: JSON
    • test_data setting is removed, each test file can have its own data source type
    • Internal data uses now a Python code editor
    feature 
    opened by luciano-renzi 0
  • Converting Katalon/Selenium IDE recordings into Golem test scripts

    Converting Katalon/Selenium IDE recordings into Golem test scripts

    This Feature should be implement like below.

    1. user should have an option on test code script page for convert Katalon/Selenium IDE recording python script into Golem test script.

    need to add one button on test code script page where user can upload katon/selenium IDE python script and after upload it should convert into golem test script and will display on test code script pge.

    through command it should be like golem convert katalonscript.py <project_name> <test_name>

    feature 
    opened by Sunil-Rathore 6
Releases(0.10.1)
  • 0.10.1(Jul 30, 2021)

    Added

    • Improved CLI reporter
    • Add autocomplete suggestions for test code editor #214 :: Sunil-Rathore
    • Highlight element when found, toggled by setting, action of find method #220
    • feature: Custom Browser Boot Up #222

    Changed

    • find(), find_all() now accept XPath as first positional parameter
    • browser.open_browser now accepts browser_name, capabilities and remote_url
    Source code(tar.gz)
    Source code(zip)
  • 0.10.0(Jun 11, 2021)

  • 0.9.2(Apr 15, 2021)

  • 0.9.1(Aug 4, 2020)

    Added

    • Rename/Delete folders; improved file list navigation #179

    • Remove executions from report dashboard

    • Skip flag to test #146

    • Actions: log, random_str, random_int, random_float

    • --cli-log-level arg to golem run command

    • Document golem.execution module

    Fixed

    Deprecated

    • console_log_level setting, renamed to: cli_log_level
    Source code(tar.gz)
    Source code(zip)
  • 0.9.0(Jul 1, 2019)

    Added

    • createsuperuser command
    • User management page, user profile page
    • Implicit/explicit actions import #136
      • Actions can now be imported explicitly.
      • New setting key: implicit_actions_import, default is true.
    • Implicit/explicit page import #137
      • Pages can now be imported explicitly.
      • New setting key: implicit_page_import, default is true.

    Removed

    • createuser command

    Changed

    • A file named .golem must exist in the test directory. Migrate steps:
      1. Create a file named .golem in the test directory root with the following content:
      [gui]
      secret_key = your_secret_key_string
      
    • Passwords are now hashed. Migrate steps:
      1. Delete old users.json file
      2. Create a super user using the golem createsuperuser command
      3. Non superusers must be created using the /users/ page
    • admin user role changed to superuser User roles are: superuser, admin, standard, read-only, reports-only
    • Improved test step parser #168
      • Non function calls are shown as code blocks (using a code editor)
      • Added code_block action to insert new code blocks
    • golem.execution.workspace -> golem.execution.testdir
    Source code(tar.gz)
    Source code(zip)
    golem-0.9.0-win64.zip(10.72 MB)
  • 0.8.0(Apr 12, 2019)

    Changed

    • -t, --threads argument changed to -p, --processes #148

    Deprecated

    Python 3.4

    Added

    • Filter tests by tags #147 :: r-roos, Luciano Renzi
      • New argument for golem run command: -t, --tags
      • Add and edit tags using the UI
      • Accept tag expressions for complex comparisons
      • Docs: Filter Tests by Tags
    • New args to golem gui command: --host (default 127.0.0.1), -d|--debug (default False)
    • New actions: assert_element_value, assert_element_value_is_not, verify_element_value, verify_element_value_is_not, send_keys_with_delay
    • New WebElement methods: inner_html, outer_html, send_keys_with_delay
    Source code(tar.gz)
    Source code(zip)
    golem-0.8.0-win64.zip(10.66 MB)
  • 0.7.0(Jan 22, 2019)

    Added

    • Generate JUnit (XML) report #50 :: Daniel Maddern
    • Generate JUnit and HTML reports after execution #134
      • report options: 'junit', 'json', 'html', 'html-no-images'
    • Specify name and location for the generated reports #156
    • Modify screenshot format, size, and compression #158
    • Exit with status code = 1 when execution has errors/failures #145 :: r-roos
    • Document Golem standalone generation using PyInstaller #157
    • Actions: timer_start, timer_stop

    Changed

    • Report filename from 'execution_report.json' to 'report.json'
    Source code(tar.gz)
    Source code(zip)
    golem-0.7.0-linux64.zip(18.87 MB)
    golem-0.7.0-win64.zip(10.60 MB)
  • 0.6.2(Dec 5, 2018)

    Added

    • Secrets data feature :: r-roos
      • https://golem-framework.readthedocs.io/en/latest/test-data.html#secrets
    • GUI improvements #149 :: Luciano Renzi

    Fixed

    • Maximize Chrome in macOS issue #130 :: Filip Richtárik, r-roos
    Source code(tar.gz)
    Source code(zip)
  • 0.6.1(Nov 24, 2018)

    Added

    • 'start_maximized' setting key
    • Firefox headless ('firefox-headless' and 'firefox-remote-headless')
    • Run every test in tests folder: golem run <project> .
    • Run every test in a sub-folder: golem run <project> foo/bar/
    • Run test or suite from relative path: golem run <project> path/to/test.py
    Source code(tar.gz)
    Source code(zip)
  • 0.6.0(Nov 24, 2018)

    Added

    • New actions: go_back, set_search_timeout, get_search_timeout, double_click, focus_element, set_trace, error, execute_javascript, fail, javascript_click, verify_selected_option_by_text, verify_selected_option_by_value, get_alert_text, send_text_to_alert, submit_prompt_alert, verify_alert_text, verify_alert_text_is_not, wait_for_alert_present verify_element_has_attribute, verify_element_has_not_attribute, verify_element_has_focus, verify_element_has_not_focus, verify_page_not_contains_text, verify_element_text, verify_element_text_is_not, verify_element_text_not_contains, verify_title verify_title_contains, verify_title_is_not, verify_title_not_contains, verify_url, verify_url_contains, verify_url_is_not verify_url_not_contains, wait_for_element_present, wait_for_element_not_enabled, wait_for_page_contains_text, wait_for_page_not_contains_text, wait_for_element_text, wait_for_element_text_is_not, wait_for_element_text_contains, wait_for_element_text_not_contains, wait_for_element_has_attribute, wait_for_element_has_not_attribute, wait_for_title, wait_for_title_is_not, wait_for_title_contains, wait_for_title_not_contains, verify_element_attribute_value, verify_element_attribute_is_not, go_forward, check_element, uncheck_element, submit_form, switch_to_frame, switch_to_parent_frame get_active_element, get_window_title, get_window_titles, get_window_handle, get_window_handles, get_window_index, switch_to_window_by_index, switch_to_first_window, switch_to_last_window, switch_to_window_by_title, switch_to_window_by_partial_title switch_to_window_by_url, switch_to_window_by_partial_url, verify_amount_of_windows, close_window verify_window_present_by_title, verify_window_present_by_partial_title, maximize_window, get_page_source, switch_to_next_window switch_to_previous_window, close_window_by_index, close_window_by_title, close_window_by_url, close_window_by_partial_title, close_window_by_partial_url, get_element_attribute, get_element_value, get_element_text, wait_for_window_present_by_title, wait_for_window_present_by_partial_title, get_window_size, get_data, send_secure_keys

    • Added verify_* actions for soft assertions and assert_* for hard assertions

    Changed

    • Renamed actions:

      • capture -> take_screenshot
      • clear -> clear_element
      • close -> close_browser
      • debug -> interactive_mode
      • mouse_hover -> mouse_over
      • select_by_index -> select_option_by_index
      • select_by_text -> select_option_by_text
      • select_by_value -> select_option_by_value
      • verify_alert_is_present -> verify_alert_present
      • verify_alert_is_not_present -> verify_alert_not_present
      • verify_cookie_exists -> verify_cookie_present
      • verify_is_enabled -> verify_element_enabled
      • verify_is_not_enabled -> verify_element_not_enabled
      • verify_is_selected -> verify_element_checked
      • verify_is_not_selected -> verify_element_not_checked
      • verify_is_visible -> verify_element_displayed
      • verify_is_not_visible -> verify_element_not_displayed
      • verify_exists -> verify_element_present
      • verify_not_exists -> verify_element_not_present
      • verify_text -> verify_page_contains_text
      • verify_text_in_element -> verify_element_text_contains
      • wait_for_element_not_exist -> wait_for_element_not_present
      • wait_for_element_visible -> wait_for_element_displayed
      • wait_for_element_not_visible -> wait_for_element_not_displayed
    • Changed test results: 'pass' -> 'success'; 'fail' -> 'failure', 'error', 'code error'.

    • report.json format changed. NOTE: previous reports (<0.6.0) won´t work in the UI report viewer

    • Docs were rewritten

    Removed

    • Deprecated actions: assert_contains, assert_equals, assert_false, assert_true, verify_selected_option
    Source code(tar.gz)
    Source code(zip)
a wrapper around pytest for executing tests to look for test flakiness and runtime regression

bubblewrap a wrapper around pytest for assessing flakiness and runtime regressions a cs implementations practice project How to Run: First, install de

Anna Nagy 1 Aug 05, 2021
Object factory for Django

Model Bakery: Smart fixtures for better tests Model Bakery offers you a smart way to create fixtures for testing in Django. With a simple and powerful

Model Bakers 632 Jan 08, 2023
Donors data of Tamil Nadu Chief Ministers Relief Fund scrapped from https://ereceipt.tn.gov.in/cmprf/Interface/CMPRF/MonthWiseReport

Tamil Nadu Chief Minister's Relief Fund Donors Scrapped data from https://ereceipt.tn.gov.in/cmprf/Interface/CMPRF/MonthWiseReport Scrapper scrapper.p

Arunmozhi 5 May 18, 2021
Argument matchers for unittest.mock

callee Argument matchers for unittest.mock More robust tests Python's mocking library (or its backport for Python 3.3) is simple, reliable, and easy

Karol Kuczmarski 77 Nov 03, 2022
Test python asyncio-based code with ease.

aiounittest Info The aiounittest is a helper library to ease of your pain (and boilerplate), when writing a test of the asynchronous code (asyncio). Y

Krzysztof Warunek 55 Oct 30, 2022
Plugin for generating HTML reports for pytest results

pytest-html pytest-html is a plugin for pytest that generates a HTML report for test results. Resources Documentation Release Notes Issue Tracker Code

pytest-dev 548 Dec 28, 2022
Ward is a modern test framework for Python with a focus on productivity and readability.

Ward is a modern test framework for Python with a focus on productivity and readability.

Darren Burns 1k Dec 31, 2022
Selenium Page Object Model with Python

Page-object-model (POM) is a pattern that you can apply it to develop efficient automation framework.

Mohammad Ifran Uddin 1 Nov 29, 2021
Python Testing Crawler 🐍 🩺 🕷️ A crawler for automated functional testing of a web application

Python Testing Crawler 🐍 🩺 🕷️ A crawler for automated functional testing of a web application Crawling a server-side-rendered web application is a

70 Aug 07, 2022
Penetration testing

Penetration testing

3 Jan 11, 2022
Doing dirty (but extremely useful) things with equals.

Doing dirty (but extremely useful) things with equals. Documentation: dirty-equals.helpmanual.io Source Code: github.com/samuelcolvin/dirty-equals dir

Samuel Colvin 602 Jan 05, 2023
The definitive testing tool for Python. Born under the banner of Behavior Driven Development (BDD).

mamba: the definitive test runner for Python mamba is the definitive test runner for Python. Born under the banner of behavior-driven development. Ins

Néstor Salceda 502 Dec 30, 2022
pytest splinter and selenium integration for anyone interested in browser interaction in tests

Splinter plugin for the pytest runner Install pytest-splinter pip install pytest-splinter Features The plugin provides a set of fixtures to use splin

pytest-dev 238 Nov 14, 2022
Django-google-optimize is a Django application designed to make running server side Google Optimize A/B tests easy.

Django-google-optimize Django-google-optimize is a Django application designed to make running Google Optimize A/B tests easy. Here is a tutorial on t

Adin Hodovic 39 Oct 25, 2022
A collection of testing examples using pytest and many other libreris

Effective testing with Python This project was created for PyConEs 2021 Check out the test samples at tests Check out the slides at slides (markdown o

Héctor Canto 10 Oct 23, 2022
pytest plugin to test mypy static type analysis

pytest-mypy-testing — Plugin to test mypy output with pytest pytest-mypy-testing provides a pytest plugin to test that mypy produces a given output. A

David Fritzsche 21 Dec 21, 2022
Python version of the Playwright testing and automation library.

🎭 Playwright for Python Docs | API Playwright is a Python library to automate Chromium, Firefox and WebKit browsers with a single API. Playwright del

Microsoft 7.8k Jan 02, 2023
tidevice can be used to communicate with iPhone device

tidevice can be used to communicate with iPhone device

Alibaba 1.8k Jan 08, 2023
d4rk Ghost is all in one hacking framework For red team Pentesting

d4rk ghost is all in one Hacking framework For red team Pentesting it contains all modules , information_gathering exploitation + vulnerability scanning + ddos attacks with 12 methods + proxy scraper

d4rk sh4d0w 15 Dec 15, 2022
PyBuster A directory busting tool for web application penetration tester, written in python

PyBuster A directory busting tool for web application penetration tester, written in python. Supports custom wordlist,recursive search. Screenshots Pr

Anukul Pandey 4 Jan 30, 2022