Robot Framework MITM Library
============================
.. figure:: https://robotframework.org/img/RF.svg
:alt: Robot Framework Logo
Robot Framework Logo
Keyword
-------
`Keyword
documentation <https://mobynl.github.io/robotframework-mitmlibrary/MitmLibraryKeywords.html>`__
Overview
--------
The Robot Framework MITM Library is a custom library for `Robot
Framework <https://robotframework.org/>`__ that enables integration with
the Python package `mitm <https://github.com/mitmproxy/mitmproxy>`__.
This library allows you to automate and test scenarios involving
Man-in-the-Middle (MITM) proxy functionality within your Robot Framework
test suites.
If you need help, have suggestions or want to discuss anything, feel
free to contact through the `slack
channel <https://robotframework.slack.com/archives/C06M2J3J8AC>`__.
Features
--------
- Interact with MITM proxy using Robot Framework keywords.
- Manipulate network traffic for testing purposes.
- Easily simulate different network conditions and responses.
- Integrate MITM proxy capabilities into your existing Robot Framework
tests.
Installation
------------
1. Install Robot Framework (if not already installed):
2. Install mitm library using pip:
::
pip install robotframework-mitmlibrary
Usage
-----
1. Import the MITM Library in your Robot Framework test suite:
.. code:: robotframework
*** Settings ***
Library MitmLibrary
2. Use the available keywords to interact with the MITM proxy and
manipulate network traffic as needed:
.. code:: robotframework
*** Settings ***
Library MitmLibrary
*** Test Cases ***
Block and Delay Websites
Start Mitm Proxy
# Block requests to Robot Framework website
Add To Blocklist robotframework.org
# Delay requests to Google
Add Response Delay GoogleDelay https://www.google.com 5 # Delay for 5 seconds
# Perform tests that involve network traffic manipulation
# ...
Stop Mitm Proxy
Why use Mitm?
~~~~~~~~~~~~~
Mitm allows manipulation on single browser instance, by using a proxy.
It does not require you to set up stubs or mocks that might influence
the entire application at once, also resulting in stubbed/mocked
behaviour while manual testing.
Examples where Mitm is useful: - When running in parallel, if you do not
want your other instances to be influenced. - Manipulate the response of
a request to see how the front end handles it - When stubs or mocks are
not available or their behaviour is not sufficient for your testing
needs. - When you want to have full control as tester, without
dependency on a developer
Mitm Certificates
~~~~~~~~~~~~~~~~~
To test with SSL verification, or use a browser without ignoring
certificates, you will need to set up the certificates related to mitm.
Follow the guide on the `Mitm
website <https://docs.mitmproxy.org/stable/concepts-certificates/>`__
Documentation
-------------
For detailed information on the available keywords and usage examples,
please refer to the `Keyword
Documentation <https://mobynl.github.io/robotframework-mitmlibrary/MitmLibraryKeywords.html>`__
Contributing
------------
Contributions are welcome! If you encounter any issues, have suggestions
for improvements, or would like to add new features, feel free to open
an issue or submit a pull request.
License
-------
This project is licensed under the MIT License.
Note: This project is not officially affiliated with or endorsed by the
mitmproxy project or robotframework.
Raw data
{
"_id": null,
"home_page": "https://github.com/MobyNL/robotframework-mitmlibrary",
"name": "robotframework-mitmlibrary",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "robotframework,automation,testautomation,testing,mitm,maninthemiddle",
"author": "Mark Moberts",
"author_email": "markmoberts@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/cb/b5/039d5f37ce71fdb47b91cb4dae96a85cc2d9356f4a578e53922a0ebf0a57/robotframework-mitmlibrary-0.1.6.tar.gz",
"platform": null,
"description": "Robot Framework MITM Library\r\n============================\r\n\r\n.. figure:: https://robotframework.org/img/RF.svg\r\n :alt: Robot Framework Logo\r\n\r\n Robot Framework Logo\r\n\r\nKeyword\r\n-------\r\n\r\n`Keyword\r\ndocumentation <https://mobynl.github.io/robotframework-mitmlibrary/MitmLibraryKeywords.html>`__\r\n\r\nOverview\r\n--------\r\n\r\nThe Robot Framework MITM Library is a custom library for `Robot\r\nFramework <https://robotframework.org/>`__ that enables integration with\r\nthe Python package `mitm <https://github.com/mitmproxy/mitmproxy>`__.\r\nThis library allows you to automate and test scenarios involving\r\nMan-in-the-Middle (MITM) proxy functionality within your Robot Framework\r\ntest suites.\r\n\r\nIf you need help, have suggestions or want to discuss anything, feel\r\nfree to contact through the `slack\r\nchannel <https://robotframework.slack.com/archives/C06M2J3J8AC>`__.\r\n\r\nFeatures\r\n--------\r\n\r\n- Interact with MITM proxy using Robot Framework keywords.\r\n- Manipulate network traffic for testing purposes.\r\n- Easily simulate different network conditions and responses.\r\n- Integrate MITM proxy capabilities into your existing Robot Framework\r\n tests.\r\n\r\nInstallation\r\n------------\r\n\r\n1. Install Robot Framework (if not already installed):\r\n2. Install mitm library using pip:\r\n\r\n::\r\n\r\n pip install robotframework-mitmlibrary\r\n\r\nUsage\r\n-----\r\n\r\n1. Import the MITM Library in your Robot Framework test suite:\r\n\r\n.. code:: robotframework\r\n\r\n *** Settings ***\r\n Library MitmLibrary\r\n\r\n2. Use the available keywords to interact with the MITM proxy and\r\n manipulate network traffic as needed:\r\n\r\n.. code:: robotframework\r\n\r\n *** Settings ***\r\n Library MitmLibrary\r\n\r\n *** Test Cases ***\r\n Block and Delay Websites\r\n Start Mitm Proxy\r\n\r\n # Block requests to Robot Framework website\r\n Add To Blocklist robotframework.org\r\n\r\n # Delay requests to Google\r\n Add Response Delay GoogleDelay https://www.google.com 5 # Delay for 5 seconds\r\n\r\n # Perform tests that involve network traffic manipulation\r\n # ...\r\n\r\n Stop Mitm Proxy\r\n\r\nWhy use Mitm?\r\n~~~~~~~~~~~~~\r\n\r\nMitm allows manipulation on single browser instance, by using a proxy.\r\nIt does not require you to set up stubs or mocks that might influence\r\nthe entire application at once, also resulting in stubbed/mocked\r\nbehaviour while manual testing.\r\n\r\nExamples where Mitm is useful: - When running in parallel, if you do not\r\nwant your other instances to be influenced. - Manipulate the response of\r\na request to see how the front end handles it - When stubs or mocks are\r\nnot available or their behaviour is not sufficient for your testing\r\nneeds. - When you want to have full control as tester, without\r\ndependency on a developer\r\n\r\nMitm Certificates\r\n~~~~~~~~~~~~~~~~~\r\n\r\nTo test with SSL verification, or use a browser without ignoring\r\ncertificates, you will need to set up the certificates related to mitm.\r\nFollow the guide on the `Mitm\r\nwebsite <https://docs.mitmproxy.org/stable/concepts-certificates/>`__\r\n\r\nDocumentation\r\n-------------\r\n\r\nFor detailed information on the available keywords and usage examples,\r\nplease refer to the `Keyword\r\nDocumentation <https://mobynl.github.io/robotframework-mitmlibrary/MitmLibraryKeywords.html>`__\r\n\r\nContributing\r\n------------\r\n\r\nContributions are welcome! If you encounter any issues, have suggestions\r\nfor improvements, or would like to add new features, feel free to open\r\nan issue or submit a pull request.\r\n\r\nLicense\r\n-------\r\n\r\nThis project is licensed under the MIT License.\r\n\r\nNote: This project is not officially affiliated with or endorsed by the\r\nmitmproxy project or robotframework.\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Wrapper for mitmproxy with Robot Framework",
"version": "0.1.6",
"project_urls": {
"Download": "https://github.com/MobyNL/robotframework-mitmlibrary/archive/refs/tags/0.1.5.tar.gz",
"Homepage": "https://github.com/MobyNL/robotframework-mitmlibrary",
"Keyword documentation": "https://mobynl.github.io/robotframework-mitmlibrary/MitmLibraryKeywords.html",
"Slack Channel": "https://robotframework.slack.com/archives/C06M2J3J8AC"
},
"split_keywords": [
"robotframework",
"automation",
"testautomation",
"testing",
"mitm",
"maninthemiddle"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "cbb5039d5f37ce71fdb47b91cb4dae96a85cc2d9356f4a578e53922a0ebf0a57",
"md5": "f434f2cf4c3e50f4d5522b55035936f2",
"sha256": "cddcbcb997ec976642c994518cfd4eaf557213532847c90612d549c67071ae4f"
},
"downloads": -1,
"filename": "robotframework-mitmlibrary-0.1.6.tar.gz",
"has_sig": false,
"md5_digest": "f434f2cf4c3e50f4d5522b55035936f2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8127,
"upload_time": "2024-02-28T18:16:43",
"upload_time_iso_8601": "2024-02-28T18:16:43.381669Z",
"url": "https://files.pythonhosted.org/packages/cb/b5/039d5f37ce71fdb47b91cb4dae96a85cc2d9356f4a578e53922a0ebf0a57/robotframework-mitmlibrary-0.1.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-28 18:16:43",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "MobyNL",
"github_project": "robotframework-mitmlibrary",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "robotframework-mitmlibrary"
}