zoukankan      html  css  js  c++  java
  • python locust 性能测试:locust参数-保证并发测试数据唯一性,循环取数据

    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/
  • 相关阅读:
    十五组TD信息通的使用体验报告
    如何让Div中的Table居中
    SQL SERVER临时表的使用
    如何将px换成em,px与em区别是什么?
    再说委托
    onclick与onCommand的区别
    亚马逊购物的用户体验分析
    jQuery 1.4 版本的十五个新特性
    如何选择SEO公司才能避免上当
    jQuery对象与dom对象
  • 原文地址:https://www.cnblogs.com/changqing8023/p/9563364.html
Copyright © 2011-2022 走看看