如何在locustfile.py中将一些输入传递给我的Flask AI API

问题描述

我想使用Locust对我的NLP Web应用程序进行负载测试。该网站非常简单,用户只需要输入其文字和语言类型,然后结果就会显示下一页

因此,我想让我的“蝗虫”先在索引页面上传递两个值,然后再转到相应的页面,这应该是快速且容易的。但是我的代码无法正常工作,并且错误消息中写道,GET POST方法存在问题(HTTP 405和HTTP 500错误)。谁能帮我检查我的代码

from locust import HttpUser,TaskSet,between,task,SequentialTaskSet

class UserBehavior(SequentialTaskSet):

    @task
    def submit(self):
            self.client.post('/',{'text': 'Kobe Bryant is the best NBA player.','language': 'en'})
    
    @task   
    def get_boto(self):
            self.client.get('/boto')

class WebsiteUser(HttpUser):
    tasks = [UserBehavior]
    wait_time = between(1,2)

解决方法

可能在发布请求之前,数据用户必须登录?

class UserBehavior(SequentialTaskSet):

    def on_start(self):
        self.client.post("/login",{
            "username": "test_user","password": ""
        })
,

一个405听起来好像您可能没有以正确的方式发送请求,也许使用了错误的动词。我将使用调试代理(例如Charles Proxy)来记录流经站点的流量,以便您了解请求的结构和预期方式。然后,我将创建一个新的单独的Python文件,并尝试使用“请求”成功完成某项工作(查看Python : Trying to POST form using requests以获取POST示例)。蝗虫的HttpUser.client基于请求,因此一旦使单独的Python文件正常工作并完成所需的工作,您应该可以插入相同的调用,并将requestsession替换为{ {1}},它应该可以工作。