码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-08-31 00:35:31      阅读:559      评论:0      收藏:0      [点我收藏+]

标签:bug   pre   取值   顺序   return   创建   str   from   cep   

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‘]))
payload = {
‘username‘: data[‘username‘],
‘password‘: data[‘password‘]
}
r = self.client.post(‘/user/signin?ReturnUrl=https%3A%2F%2Fwww.cnblogs.com%2F‘, data=payload)
self.locust.user_data_queue.put_nowait(data) # 把取出来的数据重新加入队列
assert r.status_code == 200


class WebsiteUser(HttpLocust):
host = ‘https://passport.cnblogs.com‘
task_set = UserBehavior
user_data_queue = queue.Queue() # 创建队列,先进先出
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 性能测试:locust参数-保证并发测试数据唯一性,循环取数据

标签:bug   pre   取值   顺序   return   创建   str   from   cep   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!