用蝗虫加载测试视频流

问题描述

我正在研究如何使用Locust进行视频流播放器的负载测试,但是还无法使其正常工作。基本上,我有一个加载播放器的播放URL,并且我可以将参数传递给播放器,包括autoplay=true

因此,我尝试通过autoplay参数访问该播放URL,但这似乎还不够。如果您熟悉视频流,则视频通常分为2到10秒的块;每个块都有一个唯一的URI,玩家可以在其中获取一个分段。

蝗虫目前有可能吗?

这是我的完整代码

from locust import HttpUser,task,between


class GenerateViewers(HttpUser):
    wait_time = between(1,5)

    @task
    def index(self):
        self.client.get("/")

然后,我可以打开Locust UI并输入测试参数,包括播放器URL。我认为发生的情况是蝗虫正在击中我在UI上传递的URL,并立即退出(即,它只是发送GET请求)。

enter image description here

解决方法

使用Locust可以实现,但简单的内置用户则无法实现。您是对的,蝗虫只会在您提供的端点上执行简单的GET。我使用Locust进行视频流负载测试,但必须编写自己的用户流来模拟视频播放器,以实现所需的行为。您需要根据您的特定用例执行相同的操作。

我建议您编写一个Python脚本来完成您想要的工作。在基本情况下,您可以将整个内容复制并粘贴到Locust中,并将其标记为@task,然后用Locust替换您的网络通话。

对于更高级的方案,您可以编写Python代码来执行所需的任何操作,并在所需的位置手动触发事件以将事物的状态报告回Locust。在文档中,这称为使用自定义客户端测试其他系统。您可以在这里https://docs.locust.io/en/stable/testing-other-systems.html

进行检查