Django中的性能,负载和压力测试

Ace*_*elo 6 python testing django performance-testing

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

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

知道它们之间的区别,但是我不知道哪种方法最好,哪种方法最好,或者只是在哪里可以获取一些文档

所以我的问题是,如何开始在Django应用中进行这些类型的测试,或者从哪里可以得到一些好的文档?

谢谢

Dmi*_*i T 11

负载测试压力测试基本上是性能测试的子类型,其中:

  • 负载测试:是把系统下的预期负载,看看是否性能指标,如响应时间和吞吐量匹配的期望/ SLA小号
  • 压力测试:正在确定系统边界和/或瓶颈,即,您开始“正常”负载测试并增加负载,直到监视的指标超过可接受的阈值或开始出现错误为止(无论哪种情况)

还应注意浸泡测试 -当您将系统置于长期负载下以查看其是否能够处理持续的并发使用时。在“浸泡测试”阶段发现了大多数瓶颈


关于“我如何”:

  1. 首先,您需要一个性能测试工具。给定pythondjango标签,我希望您会发现Locust工具很有趣,因为您将能够用某种形式的Python语言编写测试。您还可以考虑在Grinder上用Jython(Python的Java绑定)语言编写测试,因此您不必从头开始学习新工具。在“开源负载测试工具”中列出并比较了其他免费和开源负载测试工具:您应该使用哪一个?
  2. 下一步将创建负载测试方案。您需要尽可能地模拟实际应用程序的使用,从而需要使用具有所有相关内容的真实浏览器来正确模拟真实用户,例如:

    • 饼干
    • 标头
    • 快取
    • 思考时间
    • AJAX请求
    • 嵌入式资源处理(图像,脚本,样式,字体)
  3. 一旦有了测试并且对测试有信心,就可以以增加的用户数量运行它,并查看应用程序在负载下的行为,将增加/减少的负载与更改的指标/资源相关联用法