我正在研究 Django 应用程序的不同类型的测试。我知道如何在 Django 中进行功能和单元测试以及如何应用不同的方法,但现在我面临一个新的挑战,我需要知道如何做:
- 性能测试
- 负载测试
- 压力测试
我知道它们之间的区别,但我不知道哪种是最好的方法,哪些是最好的软件包,或者只是我可以从哪里获得一些文档 关于它。
所以我的问题是,我如何开始在 Django 应用程序中进行这些类型的测试,或者我在哪里可以获得一些关于它的良好文档?
谢谢
最佳答案
Load Testing和 Stress Testing基本上是性能测试子类型,其中:
- 负载测试:将系统置于预期负载下,以查看响应时间或吞吐量等性能指标是否符合预期/SLA小号
- 压力测试:确定系统边界和/或瓶颈,即您开始“正常”负载测试并增加负载,直到监控指标超过可接受的阈值或开始出现错误(以先到者为准)
另外,请注意 Soak Testing - 当您将系统置于长时间 负载下以查看它是否能够处理持续的并发使用时。多数bottlenecks在浸泡测试阶段被发现。
关于“我该怎么做”:
首先,您需要一个性能测试工具。给定
python
和django
标签,我的期望是你会找到 Locust这个工具很有趣,因为您将能够以某种形式的 Python 语言编写测试。也可以考虑Grinder你可以在 Jython 中编写测试(Python 的 Java 绑定(bind))语言,因此您不必从头开始学习新工具。 Open Source Load Testing Tools: Which One Should You Use? 中列出并比较了其他免费和开源负载测试工具。下一步将创建负载测试场景。您需要尽可能地模拟真实应用程序的使用情况,也就是说,您需要使用真实浏览器和所有相关内容正确模拟真实用户,例如:
- cookies
- 标题
- 缓存
- 思考时间
- AJAX 请求
- 嵌入式资源处理(图像、脚本、样式、字体)
一旦您完成测试并确信它正在做它应该做的事情,您就可以在更多用户的情况下运行它,看看您的应用程序在负载下的表现如何,关联增加/随着指标/资源使用的变化减少负载
关于python - Django 中的性能、负载和压力测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46893226/