{ "info": { "author": "Paessler AG BIS Team", "author_email": "bis@paessler.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Django", "Framework :: Django :: 1.10", "Framework :: Django :: 1.8", "Framework :: Django :: 1.9", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "==========================\nDjango Performance Testing\n==========================\n\n.. image:: https://travis-ci.org/PaesslerAG/django-performance-testing.svg?branch=master\n :target: https://travis-ci.org/PaesslerAG/django-performance-testing\n\n.. contents:: Performance testing for Django through your automated tests!\n\nDon't wait with performance testing until the end of the project! We have learned\nalready that more frequent feedback on smaller chunks of changes is much better,\ne.g.: TDD, CI, DevOps, Agile, etc.\n\nThis library helps by providing performance testing from the start -\nintegrating it seamlessly into your existing development cycle, without\nrequiring changes to your development workflow.\n\nUnlike regular performance testing tools (``ab``, ``tsung``, etc.), this\nlibary relies on indirect (proxy) indicators to performance - e.g.: the number\nof queries executed. It's a good rule of thumb that the more SQL there is, the\nslower it will be. And this way \"performance\" testing won't be slower than your\nnormal tests! (Disclaimer: while this tool is useful, classic performance\ntesting is still recommended!)\n\n\nSetup\n=====\n\n* install it via ``pip install django-performance-testing``\n* add it to your settings and it auto-registers itself\n ::\n\n settings.INSTALLED_APPS = [\n ...\n 'django_performance_testing',\n ...\n ]\n\nUsage\n=====\n\n* set your limits (see below for detail)\n* and run your test ``manage.py test ``\n\nFor any limit violations, there will be a test failure.\n\nAfter the test run, you could generate the `Worst Items Report`\nby running ``manage.py djpt_worst_report``.\n\nThe data is collected into ``settings.DJPT_DATAFILE_PATH`` file,\nor into ``djpt.results_collected``.\n\n\nSupported Limits\n================\n\nQuerycount\n----------\n\nSets the limit in the number of queries executed inside the given scope.\nLimits can be set for the ``total`` number of queries, or more specifically,\nbased on types of queries - ``read`` (``SELECT``), ``write`` (\n``INSERT``, ``UPDATE``, ``DELETE``), and ``other`` (e.g.:\ntransaction (savepoints)).\n\nWhen no (or ``None``) value is provided for a given limit type, that is \nignored during the check, as if there were no limit rules for. Thus it's \npossible to only focus on no write queries, while ignoring all the other queries\nthat might be executed.\n\nTime\n----\n\nSets the limit on the ``total`` elapsed seconds.\n\nSetting Limits\n==============\n\nPredefined limit points\n-----------------------\n\nFollowing are the keys that are currently supported for\n``settings.PERFORMANCE_LIMITS`` dictionary\n\n* ``django.test.client.Client`` - every call to its ``request`` method\n is limited, i.e.: ``GET``, ``POST``, etc.\n* ``Template.render`` - every ``render`` call is checked for limits.\n Note: it's recursive, i.e.: `include` and similar tags result in a check\n* for testcase classes, there is\n\n * ``test method`` - the actual various ``unittest`` test methods that\n you write for your app\n * ``test setUp`` - the ``TestCase.setUp`` methods you write for your test\n classes\n * ``test tearDown`` - the ``TestCase.tearDown`` methods you write for your\n test classes\n * ``test setUpClass`` - the ``TestCase.setUpClass`` methods you write for\n your test classes\n * ``test tearDownClass`` - the ``TestCase.tearDownClass`` methods you write for\n your test classes\n\nFor each of the above keys, there is a ``dict`` that holds the actual limits.\nThe keys are the limit types (``queries`` and/or ``time``), and the value is\nyet another ``dict``, holding the actual limit values. For valid values, see\nthe description of the limits above, or look at the sample settings\n\nSample Settings\n~~~~~~~~~~~~~~~\n\n::\n\n PERFORMANCE_LIMITS = {\n 'test method': {\n 'queries': {'total': 50}, # want to keep the tests focused\n 'time': {'total': 0.2}, # want fast integrated tests, so aiming for 1/5 seconds\n },\n 'django.test.client.Client': {\n 'queries': {\n 'read': 30,\n 'write': 8, # do not create complex object structures in the web\n # process\n },\n },\n 'Template.render': {\n 'queries': {\n 'write': 0, # rendering a template should never write to the database!\n 'read': 0\n }\n }\n }\n\nAd-Hoc Limits\n-------------\n\nWhile the built-in measurement points are great, sometimes, when profiling\nand trying to improve sections of the code, more granular limits are needed.\n\nContext managers for python/django code\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nAll limits can be used as context managers, e.g.:\n\n\n::\n\n from django_performance_testing.queries import QueryBatchLimit\n from django_performance_testing.timing import TimeLimit\n ...\n\n def my_method_with_too_many_queries(request):\n with QueryBatchLimit(write=0, read=10): # initialize form\n form = MyForm(request.POST)\n with QueryBatchLimit(write=0, read=3): # validate it\n is_valid = form.is_valid()\n if is_valid:\n with QueryBatchLimit(read=0, write=8): # save it\n form.save()\n with QueryBatchLimit(read=0, write=0): # redirect\n return HttpResponseRedirect(...)\n else:\n with QueryBatchLimit(write=0): # render form\n with TimeLimit(total=0.01): # we need superfast templates\n return form_invalid(form)\n\nTemplate tag for templates\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThere is a single template tag that can be used after ``{% load djpt_limits %}``,\nnamely ``djptlimit``. It takes\n\n* a single string positional argument, the name of the limit - as per\n ``settings.DJPT_KNOWN_LIMITS_DOTTED_PATHS``, see below\n* keyword arguments that will be passed to the actual limit.\n\nIt can be used directly in your tempaltes like\n\n::\n\n {% load djpt_limits %}\n {% djptlimit 'TimeLimit' total=3 %}\n {{ slow_rendering }}\n {% enddjptlimit %}\n\nWhen debugging more complext template hierarchies, where e.g.: the slow part\nmight not even be our own template, then\n`{{ block.super }} `_\ncould be helpful\n\n::\n\n {% extends \"base.html\" %}\n {% block title %}\n {% djptlimit 'QueryBatchLimit' read=3 %}\n {{ block.super }}\n {% enddjptlimit %}\n {% endblock %}\n\n``settings.DJPT_KNOWN_LIMITS_DOTTED_PATHS``\n...........................................\n\nThis is an array of full class paths, similar to how\n`settings.MIDDLEWARE `_\nare defined, e.g.: ``['django_performance_testing.timing.TimeLimit']``.\n\nThe name of the limit is the classname part of the class.\n\nUnless you have written a custom limit, this setting doesn't need to be set explicitly,\nas the app has defaults that include all limits.\n\nRelease Notes\n=============\n\n* 0.7.3 - conform to latest flake8\n* 0.7.1 - bugfix a test\n* 0.7.0 - separate data collection and reporting\n\n * introduce ``djpt_worst_report`` management command\n\n * backwards incompatibe changes:\n\n * Collectors are expected to have ``get_sample_results`` method to allow easier and \n more realistic testing\n * Worst Items Report is not printed anymore after the test run.\n * ``settings.DJPT_PRINT_WORST_REPORT`` doesn't have much effect anymore, will be\n dropped in a subsequent release\n\n\n* 0.6.1\n\n * add support for Django 1.11 (and thus for Python 3.6 too)\n\n* 0.6.0\n\n * django test runner integration now uses ``settings.DJPT_KNOWN_LIMITS_DOTTED_PATHS``\n for the collectors/limits it initializes, thus allowing 3rd party collectors/limits\n * new predefined limit points: ``test setUp``, ``test tearDown``, ``test setUpClass``,\n ``test tearDownClass``\n\n* 0.5.0\n\n * backwards incompatible - remove ``--djpt-no-report`` and use\n ``settings.DJPT_PRINT_WORST_REPORT`` instead to suppress the printing of the report\n (to address incompatibilities with third party testrunner extensions)\n\n* 0.4.0\n\n * add ``--djpt-no-report`` argument to disable output of performance report on shell\n\n* 0.3.0\n\n * introduced ``django_performance_testing.core.limits_registry``. This keeps\n track of all limits, and enforces that across the django project all limits\n have unique names. This also warranted the introduction of\n ``settings.DJPT_KNOWN_LIMITS_DOTTED_PATHS``.\n * introduced ``djptlimit`` template tag to be used for ad-hoc template\n debugging\n\n* 0.2.0\n\n * add timing measurement that can be limited\n * remove uniqueness check for ``collector.id_``, as the problems it caused\n for testing outweighed its benefit for developer debugging aid\n * backwards incompatible:\n\n * change how settings based limits are specified\n * change the worst report data output/data structure\n\n* 0.1.1 - bugfix release\n\n * bugfix: attributes set by on test methods (e.g.: ``@unittest.skip``)\n are now recognizable again and not lost due to the library's patching\n\n* 0.1.0 - initial release\n\n * supports Django 1.8, 1.9, 1.10 on python 2.7, 3.3, 3.4, and 3.5\n * query counts are reported and can be limited, by categories -\n ``read``, ``write``, ``other``, and ``total`` \n * support ad-hoc limits by using it as a context manager\n * predefined limits support:\n\n * ``django.test.client.Client`` - all calls to its request method\n * actual ``unittest`` ``test_`` methods\n * ``Template.render``\n\n.. contributing start\n\nContributing\n============\n\nAs an open source project, we welcome contributions.\n\nThe code lives on `github `_.\n\nReporting issues/improvements\n-----------------------------\n\nPlease open an `issue on github `_\nor provide a `pull request `_\nwhether for code or for the documentation.\n\nFor non-trivial changes, we kindly ask you to open an issue, as it might be rejected.\nHowever, if the diff of a pull request better illustrates the point, feel free to make\nit a pull request anyway.\n\nPull Requests\n-------------\n\n* for code changes\n\n * it must have tests covering the change. You might be asked to cover missing scenarios\n * the latest ``flake8`` will be run and shouldn't produce any warning\n * if the change is significant enough, documentation has to be provided\n\nSetting up all Python versions\n------------------------------\n\n::\n\n sudo apt-get -y install software-properties-common\n sudo add-apt-repository ppa:fkrull/deadsnakes\n sudo apt-get update\n for version in 3.3 3.5 3.6; do\n py=python$version\n sudo apt-get -y install ${py} ${py}-dev\n done\n\nCode of Conduct\n---------------\n\nAs it is a Django extension, it follows\n`Django's own Code of Conduct `_.\nAs there is no mailing list yet, please just email one of the main authors\n(see ``setup.py`` file or `github contributors`_)\n\n\n.. contributing end\n\n\n.. _github contributors: https://github.com/PaesslerAG/django-performance-testing/graphs/contributors\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/PaesslerAG/django-performance-testing", "keywords": "django-performance-testing", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "django-performance-testing", "package_url": "https://pypi.org/project/django-performance-testing/", "platform": "", "project_url": "https://pypi.org/project/django-performance-testing/", "project_urls": { "Homepage": "https://github.com/PaesslerAG/django-performance-testing" }, "release_url": "https://pypi.org/project/django-performance-testing/0.7.3/", "requires_dist": [ "Django (>=1.8)" ], "requires_python": "", "summary": "Performance testing tools for Django", "version": "0.7.3" }, "last_serial": 3350152, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "cbe3f5b6b5144ad7b8529b866aadcaad", "sha256": "63c6d18a104921e814114f089ff4cc282d187e33087c00f10c8ff31ffb63ece6" }, "downloads": -1, "filename": "django_performance_testing-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cbe3f5b6b5144ad7b8529b866aadcaad", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16281, "upload_time": "2016-09-16T15:05:17", "url": "https://files.pythonhosted.org/packages/2c/d9/972c123baaa7561a1b489e0094a2ef310e3e1f8136c62d0cf31d4742f628/django_performance_testing-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e9f85669eaf29c84c0a66d65f138dc5c", "sha256": "6d6c8287b81d4a0224a12d6863032b8ad73b7e0a92de88c917d8a1cf5f7a1844" }, "downloads": -1, "filename": "django-performance-testing-0.1.0.tar.gz", "has_sig": false, "md5_digest": "e9f85669eaf29c84c0a66d65f138dc5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10545, "upload_time": "2016-09-16T15:05:20", "url": "https://files.pythonhosted.org/packages/41/e7/b945a290a4b2334271e4d77a0ce73de35cf977d9e2e779f664c17fa8e838/django-performance-testing-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "b4ec4e9c11866aefb989653b14cfb8df", "sha256": "c2207e4e34c0397f208586a7ddc709efa987c3f6cb94403e10f0988d7d13567c" }, "downloads": -1, "filename": "django_performance_testing-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b4ec4e9c11866aefb989653b14cfb8df", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16548, "upload_time": "2016-09-22T06:42:40", "url": "https://files.pythonhosted.org/packages/b1/16/0ce7f74123fa09d69e99e7b6cb81cf5f9a3c3a51bcd51f755021139c4102/django_performance_testing-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "053b8169eb6efc0c69671562b8ca274e", "sha256": "c930ed90e3545961d98eab0c1a27041f724de168433b3e554c4cf3dfb269ebbc" }, "downloads": -1, "filename": "django-performance-testing-0.1.1.tar.gz", "has_sig": false, "md5_digest": "053b8169eb6efc0c69671562b8ca274e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10649, "upload_time": "2016-09-22T06:42:42", "url": "https://files.pythonhosted.org/packages/2e/60/993e4434bacc1fce00cf5ba7ebc77edb9a769214055dd780b8000747e204/django-performance-testing-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "92293ebd4b41499a99cfbafa3ffeda14", "sha256": "6bf4b8ee3fd19a536b888249ce7a2e861bbbf09ce9bcb5f8aff0c1aabc32b23f" }, "downloads": -1, "filename": "django_performance_testing-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "92293ebd4b41499a99cfbafa3ffeda14", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17950, "upload_time": "2016-10-07T08:21:45", "url": "https://files.pythonhosted.org/packages/72/1e/a11d32ca3e759f02fa52d91dc61e5e5c7e5e6f9a0a5ad498e473cec79298/django_performance_testing-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "adb967be18496778f18f043943a49201", "sha256": "08b6e90e0a4397e832e8322b9e7f8f841e0cd6a8db77a91fd0d9a80f0ea9247d" }, "downloads": -1, "filename": "django-performance-testing-0.2.0.tar.gz", "has_sig": false, "md5_digest": "adb967be18496778f18f043943a49201", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11586, "upload_time": "2016-10-07T08:21:53", "url": "https://files.pythonhosted.org/packages/21/24/01dc978735c18795d7473c732d796aaf88bb62834331f622892d1ac94c11/django-performance-testing-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "a86d0269c7002de19be2fc33f229bec3", "sha256": "c989a4eb5ca8a7c9f9de972d885fa621354f1dc7847b96c71c14ff2b335a97e6" }, "downloads": -1, "filename": "django_performance_testing-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a86d0269c7002de19be2fc33f229bec3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21388, "upload_time": "2016-11-03T10:49:50", "url": "https://files.pythonhosted.org/packages/7b/fe/e475ccbf9cbb577c53afe346492cd806a34d8ed352c9cd98230e2e3a3b68/django_performance_testing-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a454198fc6f6f1a8061aa3349981d261", "sha256": "18ee008e2cba6bf100c2cdb3a7f6a8d6e1e7289b445f4ef069f064ea54c5fae1" }, "downloads": -1, "filename": "django-performance-testing-0.3.0.tar.gz", "has_sig": false, "md5_digest": "a454198fc6f6f1a8061aa3349981d261", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13561, "upload_time": "2016-11-03T10:49:53", "url": "https://files.pythonhosted.org/packages/4c/02/f3fd1ce9921075e0edb2094b696c64d40c583e8ea78c819ed2541ab2d2ce/django-performance-testing-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "eb143d73075bb63b99e1a239c60d5757", "sha256": "6065f42b64c7740bb945226f2a383ceede9fcfaedaad37156f0911bcc8839aa1" }, "downloads": -1, "filename": "django_performance_testing-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eb143d73075bb63b99e1a239c60d5757", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21884, "upload_time": "2016-11-08T13:53:00", "url": "https://files.pythonhosted.org/packages/b6/d9/b4f0b1562154c6377317c7db6bf972e707840328ba7095df5281c8815ed2/django_performance_testing-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49d43e88f489d0a14419312c82ebec4b", "sha256": "21f02d910be2aca919688a2668e24479419fb2431e91fc7817bd60d184d8765f" }, "downloads": -1, "filename": "django-performance-testing-0.4.0.tar.gz", "has_sig": false, "md5_digest": "49d43e88f489d0a14419312c82ebec4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13934, "upload_time": "2016-11-08T13:53:03", "url": "https://files.pythonhosted.org/packages/4a/f3/f719c1e021092b0eea1cf5d266f24d5e3a0288c92011a6d52acf9f03d54c/django-performance-testing-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "fbbbb0faf2bdba3aef2f596098c6ddd6", "sha256": "fbb5998052ca34c2dd3f4aafd393010f5284d323ec879fd335e79248e23d3fc3" }, "downloads": -1, "filename": "django_performance_testing-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fbbbb0faf2bdba3aef2f596098c6ddd6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 22108, "upload_time": "2016-11-29T08:32:53", "url": "https://files.pythonhosted.org/packages/56/19/8fc7eed1c2ed9a568be5d43c7cbe0d4acf2351b3cbe271f8f37250fb9a31/django_performance_testing-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "65873bbaa7cff6fbc1a5e7435fb16148", "sha256": "be11611db3616fd9b4a11f93e5d719871969237db24da5d24de6d8ee5fd03351" }, "downloads": -1, "filename": "django-performance-testing-0.5.0.tar.gz", "has_sig": false, "md5_digest": "65873bbaa7cff6fbc1a5e7435fb16148", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13973, "upload_time": "2016-11-29T08:32:56", "url": "https://files.pythonhosted.org/packages/46/53/a0cbc258d015b463e08425a96f69361ed3a4ecdd9f7734aac3ea37da8735/django-performance-testing-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "24b44fbb7e780e40e78f68884ddbe23b", "sha256": "0bb3e4ceff41e9a73f13f95579918df136e2e8e7c2639a2dc16fa4c4a72eaebf" }, "downloads": -1, "filename": "django_performance_testing-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "24b44fbb7e780e40e78f68884ddbe23b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23049, "upload_time": "2017-01-25T13:29:43", "url": "https://files.pythonhosted.org/packages/8a/40/3ed28840cae000e31b6a349d59eec9b0514f3b4a9f3a3e9ff32f87b69122/django_performance_testing-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "68e654100faf195b5a4b2b30403d5bf6", "sha256": "de603cebd2004927060db034edea82c9046f06d271e70cd75a3e955beafef74c" }, "downloads": -1, "filename": "django-performance-testing-0.6.0.tar.gz", "has_sig": false, "md5_digest": "68e654100faf195b5a4b2b30403d5bf6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14997, "upload_time": "2017-01-25T13:29:45", "url": "https://files.pythonhosted.org/packages/83/e1/017dbbf26a25d5b0711e04c7e9fb7bab4e65823282ba2ea03e8984a87016/django-performance-testing-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "971cd94e7607de6bd3169ad2a740a7d0", "sha256": "693b7796e5d8f4294770784add985bcf22d65a4bcd824102ecca99f12b501d52" }, "downloads": -1, "filename": "django_performance_testing-0.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "971cd94e7607de6bd3169ad2a740a7d0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23286, "upload_time": "2017-04-13T08:05:46", "url": "https://files.pythonhosted.org/packages/bf/68/f75ebc283cb53bb374748c74a83769f3c629814a03d291ff2a3a0c0104ed/django_performance_testing-0.6.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1a097352dcdf1249ea2dcaddc0fee306", "sha256": "dc99d3d187156362e79a4f90b1705c53373e34928f9d74ccfb6e20fa70b69fda" }, "downloads": -1, "filename": "django-performance-testing-0.6.1.tar.gz", "has_sig": false, "md5_digest": "1a097352dcdf1249ea2dcaddc0fee306", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15169, "upload_time": "2017-04-13T08:05:48", "url": "https://files.pythonhosted.org/packages/ad/d6/472bf59be5caec74a489f134d69769b999506f8461f77ac114d3a8cbb6ec/django-performance-testing-0.6.1.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "47742a263daca011c4f62db4375fdba0", "sha256": "26756dfbe9cc6d08709e16ec534d1d277eb95e894faea273efec4167b865c580" }, "downloads": -1, "filename": "django_performance_testing-0.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "47742a263daca011c4f62db4375fdba0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25468, "upload_time": "2017-07-11T18:44:42", "url": "https://files.pythonhosted.org/packages/83/5f/cef32729ef6d566ad089f9749174f6f51d4da9497fd7c2bc7e5caf29b832/django_performance_testing-0.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04838b06d3c45c5aff46abb5753abd54", "sha256": "02eda69e22cf7a34166ea122a27c09dc308802bf7311e92e5d5e1c71e4e2c821" }, "downloads": -1, "filename": "django-performance-testing-0.7.0.tar.gz", "has_sig": false, "md5_digest": "04838b06d3c45c5aff46abb5753abd54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16306, "upload_time": "2017-07-11T18:44:43", "url": "https://files.pythonhosted.org/packages/2f/1d/1762aaf64d14c5c0352ec34ad884351069ae3f3279047bf7aa50a3715b2c/django-performance-testing-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "6a13ce6b3c5e7ae5bcb1e66aedf4fdc7", "sha256": "239117f1abbb551f97a2139d0098df845837577e45114814196273d232683d60" }, "downloads": -1, "filename": "django_performance_testing-0.7.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6a13ce6b3c5e7ae5bcb1e66aedf4fdc7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25487, "upload_time": "2017-08-22T13:02:23", "url": "https://files.pythonhosted.org/packages/a4/8b/78d45e9ea7e81c1c6f27cff1980445b6c65da83fff852a614761a00e58a2/django_performance_testing-0.7.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1bdb8d28463b9e0c1a947fc0228b82d3", "sha256": "48eb6620cfaa164e51213997d96b4f20cdca5e100579cfbbb0423cd7584ebd14" }, "downloads": -1, "filename": "django-performance-testing-0.7.1.tar.gz", "has_sig": false, "md5_digest": "1bdb8d28463b9e0c1a947fc0228b82d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16339, "upload_time": "2017-08-22T13:02:24", "url": "https://files.pythonhosted.org/packages/e1/4c/cef53fc99420a69a0a0dfa0c5b19b9d286bd372bdc522fc8e6442c7afd08/django-performance-testing-0.7.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "37c45a8f87389f25a606d237a20ca7ba", "sha256": "c327e2c076f1326863f90bcb326260640da0f149af4d117c325e671cf3ac3ecf" }, "downloads": -1, "filename": "django_performance_testing-0.7.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "37c45a8f87389f25a606d237a20ca7ba", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25530, "upload_time": "2017-11-20T07:43:49", "url": "https://files.pythonhosted.org/packages/48/50/c5127a038cc9bfbae746befc8700af5a1746fb07ea94220021ff0cab8aaa/django_performance_testing-0.7.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ebe5a21f6fe6fac019d5c5ab2c911129", "sha256": "7fbad2048844a3bd8717730053998fc31337d0cded01eea79c9aa89074f77d39" }, "downloads": -1, "filename": "django-performance-testing-0.7.2.tar.gz", "has_sig": false, "md5_digest": "ebe5a21f6fe6fac019d5c5ab2c911129", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16371, "upload_time": "2017-11-20T07:43:51", "url": "https://files.pythonhosted.org/packages/be/65/0230d9a71a9b388f28a05e110009f4dd3ba816608b8dcee934f97b93271a/django-performance-testing-0.7.2.tar.gz" } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "6f9f41428df94a1be9ae9ebc6f565192", "sha256": "ff74c048ece70a3a450b13b41b1252c05987c5208b12ca4bbd2fb49eacd34bc2" }, "downloads": -1, "filename": "django_performance_testing-0.7.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6f9f41428df94a1be9ae9ebc6f565192", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25528, "upload_time": "2017-11-20T20:25:17", "url": "https://files.pythonhosted.org/packages/3b/cd/4ee1e49e2fecdfa77cf00ef82f81a7669a88faa7db80ca624bef6053c076/django_performance_testing-0.7.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "08a596e9dd70dcebceb58b33ab8dd8e9", "sha256": "3427419004d3c7ca8aae028f777f6d9d49d6b10ef1f76d1f793e588eab777da9" }, "downloads": -1, "filename": "django-performance-testing-0.7.3.tar.gz", "has_sig": false, "md5_digest": "08a596e9dd70dcebceb58b33ab8dd8e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16367, "upload_time": "2017-11-20T20:25:18", "url": "https://files.pythonhosted.org/packages/c3/dd/37d55b4b829c1f3ab11053290e40aec2bedf00d4ecddf282d7745db76fc4/django-performance-testing-0.7.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6f9f41428df94a1be9ae9ebc6f565192", "sha256": "ff74c048ece70a3a450b13b41b1252c05987c5208b12ca4bbd2fb49eacd34bc2" }, "downloads": -1, "filename": "django_performance_testing-0.7.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6f9f41428df94a1be9ae9ebc6f565192", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25528, "upload_time": "2017-11-20T20:25:17", "url": "https://files.pythonhosted.org/packages/3b/cd/4ee1e49e2fecdfa77cf00ef82f81a7669a88faa7db80ca624bef6053c076/django_performance_testing-0.7.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "08a596e9dd70dcebceb58b33ab8dd8e9", "sha256": "3427419004d3c7ca8aae028f777f6d9d49d6b10ef1f76d1f793e588eab777da9" }, "downloads": -1, "filename": "django-performance-testing-0.7.3.tar.gz", "has_sig": false, "md5_digest": "08a596e9dd70dcebceb58b33ab8dd8e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16367, "upload_time": "2017-11-20T20:25:18", "url": "https://files.pythonhosted.org/packages/c3/dd/37d55b4b829c1f3ab11053290e40aec2bedf00d4ecddf282d7745db76fc4/django-performance-testing-0.7.3.tar.gz" } ] }