Django性能测试套件,它将报告指标(数据库查询等)

Ror*_*ory 6 python django performance django-orm

我有一个复杂的Django Web应用程序,其中包含许多人年的工作.有时可能需要优化.我可以编写几个常见的操作/流程(例如)django的测试客户端.是否有一些程序,如果有这样的python脚本,将运行,并报告各种django特定的性能指标,如'运行的SQL查询数'.

基本上类似于单元测试套件,但不是报告"0测试失败",而是报告"X db查询已经完成"

我自己可以写这个,这不是一个复杂的问题,但我想知道以前有人做过.

我知道Django调试工具栏,它可以做很多这个,但是有更多的"命令行",可以在很多页面上工作,而不是一次页面刷新.同样地获得实际查询相对容易.但有没有人把整个事情包裹在脚本/库中?

ilv*_*var 3

您可以创建一个 TestCase 祖先,类似于 PerformanceTestCase,它使用 setUp() 来启动计时器,使用 TeaDown() 来测量花费的时间和 sql 查询,然后在您喜欢的任何地方输出。

class PerformanceTestCase(TestCase):
    def setUp(self):
        self.begin_time = datetime.datetime.now()

    def tearDown(self):
        delta = datetime.datetime.now() - self.begin_time
        print 'Time taken', delta.seconds

        from django.db import connection
        print 'SQL queries', len(connection.queries)
Run Code Online (Sandbox Code Playgroud)

也许您需要重置连接,但我认为它正在测试之间重置。