使用单元测试测量Django性能

2024-04-25 01:20:49 发布

您现在位置:Python中文网/ 问答频道 /正文

单元测试是衡量应用程序功能的一个很好的方法,但是我想知道是否有人使用它们来进行一些初步的性能分析?在

我所说的是运行一些分析工具作为自动测试运行的一部分,保存性能结果,然后将它们与一些任意值进行比较,这样任何瓶颈都会跳出。例如,我最近有一个例子,Django标记库将模板解析时间增加了十倍——如果模板解析是在单元测试中构建的,那么可以更快地看到模板解析。在

是否有任何模块可以将这种度量包含到标准Django an/或Python设置中?如果没有,你有什么特别的建议或想法来写我自己的?谢谢!在


Tags: 模块工具django方法标记功能模板应用程序
1条回答
网友
1楼 · 发布于 2024-04-25 01:20:49

我只想描述一下我们在评估发布之间的初步性能影响时所做的工作。不知道这是否是最好的方法,但它对我们有用。在

我们在Python/Django项目中有很多测试。我们正在使用nose作为测试运行程序。如您所知,它有一个内置的命令行选项 with-xunit,它将测试结果转储到xUnit格式的xml文件中(jenkinsci也支持这种格式)。在

每次发布时,我们都在执行测试运行,nose会为我们生成一个xml文件(并将其存储在代码库中)。以下是其中的一部分:

...
<testcase classname="prj.tests.functional.services.workflow.test_getCases.GetCases" name="test_full_access_ok"
          time="1.775"/>
<testcase classname="prj.tests.functional.services.workflow.test_getCases.GetCases"
          name="test_illegal_assigned_flag" time="0.008"/>
<testcase classname="prj.tests.functional.services.workflow.test_getCases.GetCases" name="test_illegal_comments"
          time="0.049"/>
...

正如您可能注意到的,所有测试用例都有一个time属性。所以,我们所做的只是将测试用例的执行时间与以前和当前的版本进行比较(基本上,比较两个xml文件)。在

希望有帮助。在

相关问题 更多 >