蝗虫的负荷测试

时间:2019-08-29 11:11:43

标签: python locust

我正在使用蝗虫对api进行负载测试。我正在该API上发送POST请求。我的用例是我想检查一次api可以处理多少个请求。这是我的代码

import requests
from locust import HttpLocust, TaskSet
from requests.auth import HTTPDigestAuth
from credentials import *


class UserBehavior(TaskSet):
    def on_start(self):
        if len(USER_CREDENTIALS) > 0:
                self.name, self.password,self.email,self.phone,self.country_abbrev = USER_CREDENTIALS.pop()
    @task
    def registration(self):
        URL = "ip/user/register"
        PARAMS = {'name':self.name,'password': self.password,'primary_email': self.email,'primary_mobile_number':self.phone,'country_abbrev':self.country_abbrev} 
        self.client.post(url = URL,params = PARAMS,auth=HTTPDigestAuth('user', 'pass'))

class WebsiteUser(HttpLocust):
    task_set = UserBehavior
    min_wait = 5000
    max_wait = 9000


然后运行locust -f locust.py --host = localhost:8089

然后我可以选择设置孵化率和用户数量。如果我只想同时发送100个发布请求,以检查API是否一次可以处理100个请求,应该将值设置为什么。

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

蝗虫有两个参数。 孵化率和用户数。 对于您的情况,请选择: 用户数为100,孵化率为100。

这意味着您希望以每秒100个用户的速率生成100个用户。 这样就解决了您的用例。 希望这会有所帮助!。

答案 1 :(得分:0)

据我了解,您想找到服务器的断点。

您的服务器可以处理多少个请求,或者是否有足够的能力来处理

一旦发现API响应错误或某些情况下服务器可能崩溃,您就可以逐渐提高no或用户和孵化率。

您可以尝试:

heatchrate    ----> User request
-r            ----> -c

10            ----> 100
50            ----> 500
100            ----> 1000
500            ----> 5000