有没有办法用Python脚本对网站进行Apache日志请求的压力测试?
我一直在折腾一个Python脚本,这个脚本可以从Apache日志中提取POST和GET请求,然后对网站进行压力测试。这个过程我已经搞了好一段时间了。
基本上,我能够从日志文件中获取请求,解析它们,并在一些帮助下把它们转换成CSV文件。具体的帮助可以参考这个链接 - https://lincolnloop.com/blog/load-testing-jmeter-part-3-replaying-apache-logs/
但是现在我遇到瓶颈了 - 我还没找到一个好的压力测试工具,能够直接接受这些请求并进行压力测试。Jmeter不太合适,因为它需要使用图形界面,这样就不符合我想要的简单和便携的Python脚本的目的。当然,任何模块都可以。
如果有人有好的想法或者能分享一些代码,我会非常感激!
谢谢,祝你有美好的一天!:)
约翰尼斯
2 个回答
0
Locust
是一个用Python写的框架,可以用来进行负载测试和压力测试。
这是他们网站上的一个例子:
from locust import HttpLocust, TaskSet, task
class WebsiteTasks(TaskSet):
def on_start(self):
self.client.post("/login", {
"username": "test_user",
"password": ""
})
@task
def index(self):
self.client.get("/")
@task
def about(self):
self.client.get("/about/")
class WebsiteUser(HttpLocust):
task_set = WebsiteTasks
min_wait = 5000
max_wait = 15000
想了解更多,可以点击这里:http://locust.io/
1
你真的需要用Python吗?如果不需要的话,可以试试Apache JMeter,这是一个免费的开源工具,用Java写的,专门用来做负载和性能测试。
它有一个叫做Access Log Sampler的功能,听起来正好符合你的需求。想了解怎么用这个功能生成流量,可以看看如何使用Access Log Sampler生成流量的详细步骤。
另外一个选择是使用Grinder和Apache Log Playback脚本。这样的话,你可以把它和你现有的Python代码结合起来,但还是需要用到Java。