{ "info": { "author": "Stefan Braun", "author_email": "sb@action.ms", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Testing" ], "description": "=========================================================\nfuzzing: tools for stress testing arbitrary applications.\n=========================================================\n\n.. image:: https://travis-ci.org/stbraun/fuzzing.svg?branch=master\n\n.. image:: https://readthedocs.org/projects/fuzzing/badge/?version=master\n\nStress testing of applications can be done in lots of different ways.\nThis package provides an easy to use tool to stress test applications which take files\nas parameters. Editors, image viewers, compilers, and many more classes of apps come to mind.\n\nThe stress test is based on a given set of files, binary or text. Those files are taken\nrandomly and some bytes are modified also randomly (fuzzing). Then the application gets\nexecuted with the fuzzed file. Repeating this over and over again stresses the robustness\nfor defective input data of the application.\n\nTutorial and API documentation can be found on ReadTheDocs_.\n\n.. _ReadTheDocs: http://fuzzing.readthedocs.org/.\n\nWhat's new?\n-----------\n\nNow you can run your tests in multiple processes. Test results are combined and printed.\n\n\nInstallation\n------------\n\nThe easiest way to install is via ``easy_install`` or ``pip`` ::\n\n $ pip install fuzzing\n\nThere are feature related tests that can be run with ``behave`` and unit tests\nrunnable with ``pytest`` or ``nosetest``.\n\n\nExample\n-------\n\n::\n\n from fuzzing.fuzzer import FuzzExecutor\n\n # Files to use as initial input seed.\n file_list = [\"./features/data/t1.pdf\", \"./features/data/t3.pdf\", \"./features/data/t2.jpg\"]\n\n # List of applications to test.\n apps_under_test = [\"/Applications/Adobe Reader 9/Adobe Reader.app/Contents/MacOS/AdobeReader\",\n \"/Applications/PDFpen 6.app/Contents/MacOS/PDFpen 6\",\n \"/Applications/Preview.app/Contents/MacOS/Preview\",\n ]\n\n number_of_runs = 13\n\n def test():\n fuzz_executor = FuzzExecutor(apps_under_test, file_list)\n fuzz_executor.run_test(number_of_runs)\n return fuzz_executor.stats\n\n def main():\n stats = test()\n print(stats)\n\n\nUsing pre-built test runner and configuration\n---------------------------------------------\n\nFor convenience a test runner is provided which takes a test configuration.\n\nExample of a configuration YAML file: ::\n\n version: 1\n seed_files: ['requirements.txt', 'README.rst']\n applications: ['MyFunnyApp', 'AdobeReader']\n runs: 800\n processors: 4\n processes: 10\n\nThen call the test runner in a terminal session: ::\n\n $ run_fuzzer.py test.yaml\n\nThis will execute the tests as configured and print the test result when done: ::\n\n $ run_fuzzer.py test.yaml\n Starting up ...\n ... finished\n\n Test Results:\n\n MyFunnyApp\n succeeded: 4021\n failed: 95\n AdobeReader\n succeeded: 3883\n failed: 1\n\nCopyright & License\n-------------------\n\n * Copyright 2015, Stefan Braun\n * License: MIT", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/stbraun/fuzzing", "keywords": "development tools", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "fuzzing", "package_url": "https://pypi.org/project/fuzzing/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/fuzzing/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/stbraun/fuzzing" }, "release_url": "https://pypi.org/project/fuzzing/0.3.2/", "requires_dist": null, "requires_python": null, "summary": "Tools for stress testing applications.", "version": "0.3.2" }, "last_serial": 1843946, "releases": { "0.3.0": [ { "comment_text": "", "digests": { "md5": "e9fc50af6b12eea7d04859a7ff4d5949", "sha256": "141647bf02525d31cb3ddba93128249255dc44f755d1e2941fa2c691c1b861dc" }, "downloads": -1, "filename": "fuzzing-0.3.0.tar.gz", "has_sig": false, "md5_digest": "e9fc50af6b12eea7d04859a7ff4d5949", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20670, "upload_time": "2015-02-01T13:41:40", "url": "https://files.pythonhosted.org/packages/8d/ad/0d5c5741f95ec3b5501119fa2d63dbab2a7735da2c20a8fc8c4604f850c0/fuzzing-0.3.0.tar.gz" } ], "0.3.1": [], "0.3.2": [ { "comment_text": "", "digests": { "md5": "cefc607fa76842af6941ab3c581e8a7a", "sha256": "b06792f576e4f32a57438add54f8e4061f39b7b1c664ed99d0aeac1617304a07" }, "downloads": -1, "filename": "fuzzing-0.3.2.tar.gz", "has_sig": false, "md5_digest": "cefc607fa76842af6941ab3c581e8a7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20727, "upload_time": "2015-12-02T20:45:26", "url": "https://files.pythonhosted.org/packages/d9/d7/d7afc91f97c26bbb7bdd38514d9c06cca55b1e2deca02e593efae22d4c53/fuzzing-0.3.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cefc607fa76842af6941ab3c581e8a7a", "sha256": "b06792f576e4f32a57438add54f8e4061f39b7b1c664ed99d0aeac1617304a07" }, "downloads": -1, "filename": "fuzzing-0.3.2.tar.gz", "has_sig": false, "md5_digest": "cefc607fa76842af6941ab3c581e8a7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20727, "upload_time": "2015-12-02T20:45:26", "url": "https://files.pythonhosted.org/packages/d9/d7/d7afc91f97c26bbb7bdd38514d9c06cca55b1e2deca02e593efae22d4c53/fuzzing-0.3.2.tar.gz" } ] }