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

Posted

技术标签:

【中文标题】如何在我的 locustfile.py 中将一些输入传递给我的 Flask AI API【英文标题】:How to pass some input to my Flask AI API in my locustfile.py 【发布时间】:2020-09-25 11:34:53 【问题描述】:

我想使用 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)

【问题讨论】:

【参考方案1】:

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

class UserBehavior(SequentialTaskSet):

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

【讨论】:

【参考方案2】:

405 听起来您可能没有以正确的方式发送请求,可能使用了错误的动词。我会使用调试代理(如Charles Proxy)在您完成流程时记录您网站的流量,以便您了解请求的结构和预期方式。然后我会创建一个新的单独的 Python 文件并尝试使用 Requests 来让某些东西成功运行(查看 Python : Trying to POST form using requests 以获取 POST 示例)。 Locust 的 HttpUser.client 是基于请求的,所以一旦你让单独的 Python 文件工作并做你想做的事,你应该能够插入相同的调用并将 requestsession 替换为 self.client 并且它应该可以工作.

【讨论】:

以上是关于如何在我的 locustfile.py 中将一些输入传递给我的 Flask AI API的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的图中将相同的图例(标签)设置为不同的散点?

如何在Rails中将服务目录添加到加载路径?

如何在 WCF 中将接口标记为 DataContract

如何在我的应用程序中将图像标记为收藏

如何在flutter中将Either Right初始化为空值

如何在我的应用中将 Google 语音输入设置为默认文本输入?