python locust 性能测试:locsut参数化-保证并发测试数据唯一性,不循环取数据

from locust import TaskSet, task, HttpLocustimport queue

class UserBehavior(TaskSet):    @task    def test_register(self):        try:            # get_nowait() 取不到数据直接崩溃;get() 取不到数据会一直等待            data = self.locust.user_data_queue.get_nowait()  # 取值顺序 ‘username‘: ‘test0000‘、‘username‘: ‘test0001‘、‘username‘: ‘test0002‘...        except queue.Empty:  # 取不到数据时,走这里            print(‘account data run out, test ended.‘)            exit(0)        print(‘register with user: {}, pwd: {}‘.format(data[‘username‘], data[‘password‘]))        body = {            ‘username‘: data[‘username‘],            ‘password‘: data[‘password‘]        }        r = self.client.post(‘/user/signin‘, data=body).text        assert r.status_code == 200

class WebsiteUser(HttpLocust):    host = ‘https://passport.cnblogs.com‘    task_set = UserBehavior    user_data_queue = queue.Queue(maxsize=100)  # 创建队列,先进先出    for index in range(100):        data = {            "username": "test%04d" % index,            "password": "pwd%04d" % index,            "email": "test%[email protected]" % index,            "phone": "186%08d" % index,        }        user_data_queue.put_nowait(data)  # 循环加入队列<全部>,循环完,继续执行    min_wait = 1000    max_wait = 3000

参考:http://debugtalk.com/post/head-first-locust-advanced-script/

原文地址:https://www.cnblogs.com/changqing8023/p/9563355.html

时间: 2024-08-29 18:33:37

python locust 性能测试:locsut参数化-保证并发测试数据唯一性,不循环取数据的相关文章

python locust 性能测试:locust参数-保证并发测试数据唯一性,循环取数据

from locust import TaskSet, task, HttpLocustimport queue class UserBehavior(TaskSet): @task def test_register(self): try: # get_nowait() 取不到数据直接崩溃:get() 取不到数据会一直等待 data = self.locust.user_data_queue.get_nowait() # 取值顺序 'username': 'test0000'.'usernam

lr参数化——500户并发迭代1次 循环取5条数据

lr参数化——500户并发迭代1次 循环取5条数据 比如vuser1.vuser2.vuser3..........,vuser500 shuju1,shuju2,shuju3,shuju4,shuju5 想实现vuser1取shuju1,vuser2取shuju1,vuser3取shuju1,vuser4取shuju1,vuser5取shuju1..........vuser100取shuju1. vuser101取shuju2,vuser102取shuju2,vuser103取shuju2,

Python Locust性能测试框架实践

Locust的介绍 Locust是一个python的性能测试工具,你可以通过写python脚本的方式来对web接口进行负载测试. Locust的安装 首先你要安装python2.6以上版本,而且有pip工具.之后打开命令行,分别安装locustio和pyzmq(命令如下): pip install locustio pip install pyzmq 之后我们就可以写性能测试脚本了. Locust脚本编写 接下来我们拿两个接口做一下测试,编写脚本如下(每一步都有注释).我来解释一下,首先我们要i

python locust 性能测试:locust 参数化(list) ---循环取数据,数据可重复使用

from locust import TaskSet, task, HttpLocust class UserBehavior(TaskSet): def on_start(self): # 当模拟用户开始执行TaskSet类的时候,on_start方法会被调用 self.index = 0 @task def test_visit(self): url = self.locust.share_data[ self.index] # 取 self.locust.share_data<等于 Web

python locust 性能测试:locust 关联---提取返回数据并使用

from locust import HttpLocust, TaskSet, taskimport jsonfrom common import readConfig class UserBehavior(TaskSet): # 定义用户行为 def on_start(self): # 当模拟用户开始执行TaskSet类的时候,on_start方法会被调用 pass def get_headers(self): """会员登录""" heade

python locust 性能测试:HttpSession

官网解释:用于在请求之间执行Web请求和保留(会话)cookie的类(以便能够登录和退出网站):记录每个请求,以便locust可以显示统计信息: from locust import TaskSet, task, HttpLocust, Locust from locust.clients import HttpSession import subprocess import random from common.sec_encrypt import AESEncrypt, md5_time f

python locust 性能测试:嵌套

TaskSet类和TaskSequence类可用于嵌套<可以在TaskSequences中嵌套TaskSets,反之亦然>: from locust import TaskSet, task, HttpLocust, TaskSequence, seq_task import subprocess class WebUser(TaskSet): @task(5) def first_task(self): print('执行5次:') @task(2) class IosUser(TaskSe

python locust 性能测试:HOOKS&lt;钩子方法&gt;

为locust中不同类型的事件,提供的钩子方法: from locust import TaskSet, task, events, Locust from locust.clients import HttpSession import subprocess import random, traceback from common.sec_encrypt import AESEncrypt, md5_time from common import read_config from common

Python locust性能测试框架模板

locust框架模板 from locust import HttpLocust, TaskSet, task import Queue class UserBehavior(TaskSet): def setup(self): print('task setup') def teardown(self): print('task teardown') def on_start(self): # key = self.login() request_url = "/api/user/getkey