Locust参数化之queue实战

需求:用4000用户随机登录调用接口性能压测
思路
1、随机取用户函数
2、将随机取用户函数放到队列中
3、使用的时候从队列依次取出

from locust import HttpUser, task, between,TaskSet
from gevent._semaphore import Semaphore
import queue
from cloudDataFactory.publicCenter.excle_data import ExcelHander
from cloudDataFactory.cloud_tools.operopration import get_client_token
import os
import random
#获取账号信息
filepath = r'C:\Users\WS\Desktop\uc_user_wsid_email.xls'
wsid_dict = ExcelHander(filepath).ExcelDick("uc_user_wsid_email")["uc_user_wsid_email"]


def random_wsid():
#随机取用户函数
    return random.choice(wsid_dict)


wsid_email = random_wsid()

def GetData():
    s=queue.Queue(maxsize=0)
    for i in range(4000):
#将用户信息放到队列
        s.put_nowait(wsid_email)
    return s
class wgpTasks(TaskSet):

    @task
    def messagesV1(self):
        # wsid_email = random_wsid()
#使用的时候从队列依次取出
        Authorization = json.loads(get_client_token(username=wsid_email["email"], password="1234qwer"))["data"][
            "access_token"]
        headers = {
        }
        self.client.get('/v1/wms/rule/messages?pid=846', headers=headers)

    @task
    def messagesV2(self):
        # wsid_email = random_wsid()
        #使用的时候从队列依次取出
        Authorization = json.loads(get_client_token(username=wsid_email["email"], password="1234qwer"))["data"][
            "access_token"]
        headers = {
            "Authorization": f"Bearer {Authorization}"
        }
        self.client.get(
            '/v2/xxxx',
            headers=headers)

    @task
    def messagesRuleV1(self):
        # wsid_email = random_wsid()
        #使用的时候从队列依次取出
        Authorization = json.loads(get_client_token(username=wsid_email["email"], password="1234qwer"))["data"][
            "access_token"]
        headers = {
        }
        self.client.get(
            '/v1xxxxxx',
            headers=headers)
class websitUser(HttpUser):
    tasks = [wgpTasks]
    wait_time = between(1, 3)
    host = "xxxxxx"
    #队列取数
    queueData=GetData()


if __name__ == "__main__":
    os.system(" locust -f .\performace_locust1.py --web-host=10.90.12.148 --web-port=8090")```

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Locust是一个分布式用户负载测试工具,用于对网站或其他系统进行负载测试,以确定系统可以处理多少个并发用户。在测试期间,可以通过定义每个用户的行为,并通过Web UI实时监视测试过程。关于Locust的代码实战和结果分析,可以参考引用\[2\]中提供的链接,该链接提供了深入讨论Locust性能自动化的文章。此外,引用\[3\]中的文章也提供了关于Locust实战介绍,可以进一步了解Locust的性能测试实践。 #### 引用[.reference_title] - *1* [Python性能测试框架Locust实战教程](https://blog.csdn.net/xfw17397388089/article/details/129162109)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [深聊性能测试,从入门到放弃之:Locust性能自动化(二)代码实战](https://blog.csdn.net/wuyoudeyuer/article/details/108596407)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Locust 性能测试实战(一)](https://blog.csdn.net/weixin_43431593/article/details/107710571)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

$团长$

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值