![语境:](https://linux22.com/image/683244/%E8%AF%AD%E5%A2%83%EF%BC%9A.png)
免责声明:我知道我要问的问题甚至还没有达到最佳实践,但由于非常具体的要求,我认为这可能是极少数解决方案之一。
语境:
我们希望完全复制生产环境以进行压力、负载、功能和集成测试。我们已经在类似版本的生产环境 VM (RHEL6)、Apache 2.4、Tomcat 6、Java 1.6 和 MySQL 5.1 中完成了开发所需的部署;还为开发基础设施的每个服务器构建和复制了数据库。现在我们希望能够复制 Apache 全天收到的请求流。为了维护请求类型的复杂分布,我们认为可以在生产环境中记录 Apache 在特定时间范围内收到的请求,并在我们的测试环境中重播它。如果可能的话,可以扩展该分布(例如 100 次)或循环它。
问题是:
有没有方法可以实现这一点,最好是在 Apache 级别或甚至是应用程序级别,知道每个环境只能通过 SSH 进行通信(这可能不是永久的),并且防火墙阻止它们通信,因为它们属于不同的组织(官僚主义是****)。但如果绝对必要,可以对后两个做出例外。此外,对于该过程来说,拥有最新的复制或拥有超快的过程并不重要。
那么,什么是满足这些要求的最佳解决方案?
答案1
答案是针对Apache JMeter- 最流行的免费开源负载测试工具
- JMeter 自带访问日志采样器可用于解析 Web 服务器日志并根据日志文件创建 HTTP 请求
- 或者你也可以
- 使用以下方式捕获网络流量tcpdump
- 将其转换为 JMeter 脚本格式
- 随着虚拟用户数量的增加而重播