从django数据库性能测试生成性能报告。
pytest-django-queries的Python项目详细描述
用法
安装pytest-django-queries
,编写pytest测试并标记任何
应该计数的测试或使用count_queries
夹具。
注意:要使用最新的开发版本,请使用pip install --pre pytest-django-queries
importpytest@pytest.mark.count_queriesdeftest_query_performances():Model.objects.all()# Or...deftest_another_query_performances(count_queries):Model.objects.all()
每个测试文件和/或包都被视为一个类别。“类别”内的每个测试 组合其数据,有关详细信息,请参见Visualising Results。
使用固定装置时的建议
如果要添加生成查询的装置,则可能会出现这种情况
你不想被计入结果,或者简单地说,你想使用
pytest-django
插件和pytest-django-queries
一起,它将生成
结果中不需要的查询。
为此,您需要将count_queries
fixture作为最后一个要执行的fixture
但同时,您可能希望使用pytest标记的能力来分离
计算来自其他测试的测试的查询。那样的话,你可能想做点什么
像这样告诉标记不要自动地将count_queries
fixture注入
您的测试:
importpytest@pytest.mark.count_queries(autouse=False)deftest_retrieve_main_menu(fixture_making_queries,count_queries):pass
注意关键字参数autouse=False
和count_queries
fixture的用法
被放在最后
将pytest django与pytest django查询一起使用
我们建议您在使用pytest-django
时执行以下操作:
importpytest@pytest.mark.django_db@pytest.mark.count_queries(autouse=False)deftest_retrieve_main_menu(any_fixture,other_fixture,count_queries):pass
与Github集成
待定。
本地测试
只需通过pip安装pytest-django-queries
,然后运行
使用pytest
进行测试。应该在
使用.pytest-queries
调用的文件中的当前工作目录。
注意:要覆盖保存路径,请将--django-db-bench PATH
选项传递给pytest。
可视化结果
您可以使用show
命令从测试结果生成一个表:
django-queries show
您将得到这样的结果:
+---------+--------------------------------------+ | Module | Tests | +---------+--------------------------------------+ | module1 | +-----------+---------+------------+ |||| Test Name | Queries | Duplicated |||| +-----------+---------+------------+ |||| test1 |0|0|||| +-----------+---------+------------+ |||| test2 |1|0|||| +-----------+---------+------------+ | +---------+--------------------------------------+ | module2 | +-----------+---------+------------+ |||| Test Name | Queries | Duplicated |||| +-----------+---------+------------+ |||| test1 |123|0|||| +-----------+---------+------------+ | +---------+--------------------------------------+
导出结果(HTML)
为了获得更好的演示,可以使用html
命令将结果导出为HTML
django-queries html
它将生成一些like this。
比较结果
您可以在
运行测试,然后重新运行它们。之后,您可以运行django-queries diff
要生成这样的结果:
开发
首先,在本地克隆项目。然后,使用下面的命令安装它
./setup.py develop
之后,您需要安装开发需求。为此, 运行下面的命令。
pip install -e .[dev]