有没有办法用Python脚本用Apache日志请求对网站进行压力测试?

时间:2014-04-19 16:26:19

标签: python apache stress-testing

一直在摆弄一个Python脚本,该脚本将从apache日志中获取POST,GET请求,并根据从apache日志发现的请求对网站进行压力测试已有一段时间了。

我几乎可以从日志文件中获取请求并解析它们并将其转换为CSV文件,并在此处提供一些帮助 - https://lincolnloop.com/blog/load-testing-jmeter-part-3-replaying-apache-logs/

但是现在我被卡住了 - 我还没有找到一个好的压力测试员来接受这些请求并对他们进行压力测试。 Jmeter没有削减它,因为仍然需要使用GUI,并且没有好处,因为目的是拥有简单易用的Python脚本。当然任何模块都可以。

如果有人有任何好的想法或一些代码要分享,那将非常感激!

谢谢,祝你有个美好的一天! :)

约翰

2 个答案:

答案 0 :(得分:1)

Python是否必须用于您的用例?如果没有,您可以尝试Apache JMeter免费和开源的基于Java的负载和性能测试解决方案。

它提供Access Log Sampler,这似乎正是您正在寻找的。有关详细演练,请参阅How to use Access Log Sampler to Generate Traffic with JMeter

替代选项正在使用GrinderApache Log Playback script。在这种情况下,您将能够将其与现有的Python代码集成,但仍然需要Java。

答案 1 :(得分: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/