【问题标题】:Locust- repeat the user listLocust-重复用户列表
【发布时间】:2020-11-10 12:37:37
【问题描述】:

在以下 locust 文件中,我们发送了两个用户详细信息。当我们使用 2 个用户运行时,这可以正常工作。但是,当我们对超过 2 个用户(例如 5 个用户)运行相同的操作时,剩余的新用户(即 3 个用户)会开始失败。

import json
from locust import User, HttpUser, task, between, SequentialTaskSet, 
HttpLocust

USER_CREDENTIALS = [
 ("abc@xyz.com", "Yahoo@123"),
 ("xyz@xyz.com", "Yahh-69-Wrap")
]

class CLMLoginTaskSet(SequentialTaskSet):
  hostname_app2 = "http://app2.stage.cloud.local"
  hostname_app1 = "http://app1.stage.cloud.local"
  port = "8090"
  username = "NOT_FOUND"
  password = "NOT_FOUND"
  access_token_value1 = None

 @task
 def userlist(self):
    if len(USER_CREDENTIALS) > 0:
        self.username, self.password = USER_CREDENTIALS.pop()

 @task
 def generate_clm_token(self):
    print("username", self.username)
    print("password", self.password)
    headers = {'Content-Type': 'application/x-www-form-urlencoded'}
    clm_response = 
    self.client.post(self.hostname_app2+":"+self.port+"/oauth2/access? 
 grant_type=password&username="+self.username+"&password="+self.password", 
     headers=headers)
    print("CLM Response", clm_response.text)
    json_clm_response = clm_response.json()
    access_token_value = json_clm_response['access_token']
    print("This is the access token value", access_token_value)
    self.access_token_value1 = access_token_value
    

   class CLMLogin(HttpUser):
    tasks = [CLMLoginTaskSet]
    host = ""
    wait_time = between(1, 2)

如果我们以更多用户开始负载测试,它应该重复并使用相同的用户列表。如何做到这一点?

【问题讨论】:

    标签: python locust


    【解决方案1】:

    您有 2 个凭据并在启动时弹出它们,如果您仍想使用 pop 方法,请尝试增加凭据,或者您可以使用 random.choice 方法访问一个凭据而不弹出,以便下一个用户仍然可以使用它。请注意,某些用户将拥有相同的用户,因此他们可以根据系统的工作方式相互影响。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-19
      • 2017-05-23
      • 1970-01-01
      • 2022-11-23
      • 2020-02-06
      • 2016-10-20
      • 1970-01-01
      • 2018-12-30
      相关资源
      最近更新 更多