【问题标题】:Load testing with locust用 locust 进行负载测试
【发布时间】:2020-01-02 15:43:13
【问题描述】:

我正在使用 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 个 post 请求以检查 API 是否可以一次处理 100 个请求,我应该设置什么值。

任何帮助将不胜感激

【问题讨论】:

  • @task 是什么意思?

标签: python locust


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    我的理解是你想找到你的服务器的断点。

    您的服务器可以处理多少请求或有足够能力处理多少请求。

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

    你可以试试:

    heatchrate    ----> User request
    -r            ----> -c
    
    10            ----> 100
    50            ----> 500
    100            ----> 1000
    500            ----> 5000
    

    【讨论】:

      猜你喜欢
      • 2019-12-26
      • 2017-04-14
      • 2021-07-29
      • 1970-01-01
      • 1970-01-01
      • 2019-09-18
      • 2020-05-17
      • 2021-03-18
      • 2016-07-09
      相关资源
      最近更新 更多