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‘、‘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%[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/9563364.html

时间: 2024-07-29 18:24:04

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

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'.'usernam

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爬虫之路(四):将爬取数据存入mysql

Python 与 mysql 数据连接 用pymysql import pymysql conn =pymysql.connect(host='127.0.0.1',user='root',password='123456',db='company',charset="utf8") cur=conn.cursor() sql=''' ''' employee=cur.execute(sql) conn.commit() cur.close() conn.close() 基本操作大概就这

Python Locust性能测试框架实践

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

基于python的性能测试工具–locust

现在有很多的性能测试工具,比如说我们熟悉的loadrunner.jmeter.ab.webbench等等,这些工具如果对一个没用过的朋友来说,学习起来比较不容易,但是如果你能看懂python代码,会写就更好了,就可用尝试一下今天的主角Locust,一款基于python的性能测试工具,它的优点是学习起来比较简单,功能完全自定制,使用比较灵活,支持分布式. 所有的性能测试工具都至少包含这3块:               1.压力产生器,也就是可以指定产生多大的压力,多少并发:          

locust安装及其简单使用----基于python的性能测试工具

1.已安装python3.6 ,安装步骤略 pip安装: pip install locust 检查locust是否安装成功 locust --help 2.安装 pyzmq If you intend to run Locust distributed across multiple processes/machines, we recommend you to also install pyzmq. 如果你打算运行Locust 分布在多个进程/机器,我们建议你也安装pyzmq. 通过pip命

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 性能测试: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

Locust性能测试学习总结

Locust学习总结分享 简介: Locust是一个用于可扩展的,分布式的,性能测试的,开源的,用Python编写框架/工具,它非常容易使用,也非常好学.它的主要思想就是模拟一群用户将访问你的网站.每个用户的行为由你编写的python代码定义,同时可以从Web界面中实时观察到用户的行为. Locust完全是事件驱动的,因此在单台机器上能够支持几千并发用户访问.与其它许多基于事件的应用相比,Locust并不使用回调,而是使用gevent,而gevent是基于协程的,可以用同步的方式来编写异步执行的