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

Posted backlight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python locust 性能测试:locsut参数化-保证并发测试数据唯一性,不循环取数据相关的知识,希望对你有一定的参考价值。

from locust import TaskSet, task, HttpLocust
import 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%04d@debugtalk.test" % 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/

以上是关于python locust 性能测试:locsut参数化-保证并发测试数据唯一性,不循环取数据的主要内容,如果未能解决你的问题,请参考以下文章

基于python的性能负载测试Locust-1 简介

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

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

Python+locust做性能测试 ====locust版本更新(HttpUser)

python+locust性能测试之No Web UI模式下运行Locust

python locust 性能测试:HttpSession