【问题标题】:Performance, load and stress testing in DjangoDjango 中的性能、负载和压力测试
【发布时间】:2018-04-04 05:31:00
【问题描述】:

我正在研究 Django 应用程序的不同类型的测试。我知道如何在 Django 中进行功能和单元测试,以及如何应用不同的方法,但现在我面临一个新的挑战,我需要知道如何去做:

  • 性能测试
  • 负载测试
  • 压力测试

知道它们之间的区别,但我不知道哪个是最好的方法,哪个是最好的包,或者只是我可以在哪里获得一些文档 关于它。

所以我的问题是,我怎样才能开始在 Django 应用程序中进行这些类型的测试,或者我可以从哪里获得关于它的一些好的文档?

谢谢

【问题讨论】:

  • 性能测试是一个类别。负载测试是在定义的生产级别具有定义数量的用户的特定测试。压力测试是不断增加负载到定义故障点的测试。请参阅 TPC.org 以获取 TPC-C 基准作为负载测试的示例

标签: python django testing performance-testing


【解决方案1】:

Load TestingStress Testing 基本上是性能测试子类型,其中:

  • 负载测试:将系统置于预期负载下,以查看响应时间或吞吐量等性能指标是否符合预期/SLAs
  • 压力测试:确定系统边界和/或瓶颈,即您开始“正常”负载测试并增加负载,直到监控的指标超过可接受的阈值或开始发生错误(无论先发生什么)

还要注意Soak Testing - 当您将系统置于长时间负载下以查看它是否能够处理持续的并发使用。大多数bottlenecks 是在浸泡测试阶段发现的。


关于“我该怎么做”:

  1. 首先您需要一个性能测试工具。鉴于pythondjango 标签,我的期望是您会发现Locust 工具很有趣,因为您将能够以某种形式的Python 语言编写测试。您还可以考虑Grinder,在那里您可以使用Jython(Python 的Java 绑定)语言编写测试,这样您就不必从头开始学习新工具。其他免费和开源负载测试工具在Open Source Load Testing Tools: Which One Should You Use? 中列出和比较
  2. 下一步将创建一个负载测试场景。您需要尽可能地模拟真实的应用程序使用情况,也就是说,您需要使用真实浏览器正确模拟真实用户以及所有相关内容,例如:

    • cookies
    • 标题
    • 缓存
    • 思考时间
    • AJAX 请求
    • 嵌入式资源处理(图像、脚本、样式、字体)
  3. 一旦您完成了测试并确信它正在做它应该做的事情,您可以在增加用户数量的情况下运行它,并查看您的应用程序在负载下的表现如何,将负载的增加/减少与变化相关联指标/资源使用情况

【讨论】:

    猜你喜欢
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    • 2012-04-02
    • 2018-04-09
    • 2015-09-02
    • 1970-01-01
    相关资源
    最近更新 更多