为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.logger import print_file

def on_request_success(request_type, name, response_time, response_length):

print_file(

'success Type: {}, Name: {}, Time: {}ms, length: {}'.format(request_type, name, response_time,

response_length))

def on_request_failure(request_type, name, response_time, exception):

print_file(

'failure Type: {}, Name: {}, Time: {}ms, exception: {}'.format(request_type, name, response_time,

exception))

def on_locust_error(locust_instance, exception, tb):

print_file(

"error locust_instance: {}, exception: {}, traceback: {}".format(locust_instance, exception,

traceback.format_tb(tb)))

def on_hatch_complete(user_count):

print_file("User Locust have generate {} users".format(user_count))

def on_quitting():

print_file("Locust is quiting!")

events.request_success += on_request_success

events.request_failure += on_request_failure

events.locust_error += on_locust_error

events.hatch_complete += on_hatch_complete

events.quitting += on_quitting

class WebUser(TaskSet):

def on_start(self):

self.session = HttpSession('http://localhost:8000/api')

self.r = random.randint(10000, 99999)

@task(2)

def user_auth(self):

"""用户认证"""

auth_user = ('lixiaofeng', 'fengzi802300')

res = self.session.get('/sec_get_event_list/', params={'eid': self.r}, auth=auth_user,

name='/sec_get_event_list/?eid=[eid]')

print_file(res.json())

# assert res.json()['status'] == 200, '用户认证接口请求失败!'

@task(1)

def aes_api(self):

payload = {'name': '187187011{}'.format(self.r)}

# 加密

encodeed = AESEncrypt(payload).encrypt_data()

# print(encodeed)

res = self.session.get('/sec_get_guest_list/', params={'data': encodeed},

name='/sec_get_guest_list/?data=[aes]')

print_file(res.text)

# assert res.json()['status'] == 200, 'AES接口加密请求失败!'

@task(2)

def md5_api(self):

payload = {"eid": "{}".format(self.r), "name": "一加8手机发布会{}".format(str(self.r)), "limit": 2000, "status": "",

"address": "深圳宝体会展中心",

"start_time": "2019-09-15 22:40:00", 'time': '', 'sign': ''}

payload = md5_time(payload)

res = self.session.post('/sec_add_event/', data=payload, name='/sec_add_event/?data=[md5]')

print_file(res.text)

# assert res.json()['status'] == 200, 'md5接口加密请求失败!'

@task(2)

def add_guest(self):

"""添加嘉宾"""

payload = {'eid': '{}'.format(self.r), 'realname': '赵小刀{}'.format(self.r),

'phone': '187011{}'.format(self.r),

'email': '187011{}@163.com'.format(self.r)}

res = self.session.post('/add_guest/', data=payload, name='/add_guest/?data=[payload]')

print_file(res.text)

class Run(Locust):

# host = 'http://localhost:8000/api'

task_set = WebUser

max_wait = 6000

min_wait = 3000

# 'locust -f D:\Interface_framework_Beauty\locust_files\locust_api.py --no-web -c 100 -r 10 --run-time {}s'.format(read_config.time)

def run():

subprocess.check_call(

'locust -f G:\Interface_framework_pytest\locust_files\\locust_test.py --no-web -c 1000 -r 100 --run-time {}s'.format(

read_config.time))

if __name__ == '__main__':

run()

1.request_success 成功完成请求后触发;

参数:

request_tye:请求类型;

name:被调用url路径;

response_time:响应时间,ms;

response_length:响应内容长度;

2.request_failure 请求失败时触发;

参数:

request_tye:请求类型;

name:被调用url路径;

response_time:响应时间,ms;

exception:抛出的异常;

3.locust_eror 在执行locust类内发生异常时触发;

参数:

locust_instance:发生异常的locust实例;

exception:抛出的异常;

tb:回溯的对象;

4.hatch_complete 生成所有locust用户时触发;

参数:

user_count:生成的用户数;

5.quitting locust进程退出时触发;

Python Locust性能测试框架实践

[本文出自天外归云的博客园] Locust的介绍 Locust是一个python的性能测试工具,你可以通过写python脚本的方式来对web接口进行负载测试. Locust的安装 首先你要安装pyth ...

python locust 性能测试:locust安装和一些参数介绍

安装参考 https://www.cnblogs.com/fnng/p/6081798.html ps:python3.7暂不支持locust:python3安装建 ...

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

from locust import HttpLocust, TaskSet, taskimport jsonfrom common import readConfig class UserBehav ...

python locust 性能测试:HttpSession

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

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

from locust import TaskSet, task, HttpLocust class UserBehavior(TaskSet): def on_start(self): # 当模拟用 ...

python locust 性能测试:嵌套

TaskSet类和TaskSequence类可用于嵌套: from locust import TaskSet, tas ...

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

from locust import TaskSet, task, HttpLocustimport queue class UserBehavior(TaskSet): @task def test ...

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

from locust import TaskSet, task, HttpLocustimport queue class UserBehavior(TaskSet): @task def test ...

Python locust性能测试框架模板

locust框架模板 from locust import HttpLocust, TaskSet, task import Queue class UserBehavior(TaskSet): de ...

随机推荐

oracle唯一索引与普通索引的区别和联系以及using index用法

oracle唯一索引与普通索引的区别和联系 区别:唯一索引unique index和一般索引normal index最大的差异是在索引列上增加一层唯一约束.添加唯一索引的数据列可以为空,但是只要尊在数 ...

系统不支持curl

解决安装pinphp时出现的“系统不支持curl!”   今天在本机安装phppin开源程序时,提示“系统不支持curl!”错误. 由于我本机是UBUNTU系统,所以直接通过apt-get进行安装. ...

ES5严格模式(Strict mode)

严格模式(Strict mode)是由ECMA-262规范定义的新兴JavaScript标准,第五版发布于2009年12月.旨在改善错误检查功能并且标识可能不会延续到未来JavaScript版本的脚本 ...

在c++程序中执行DOS命令

转自博客:http://blog.csdn.net/ypist/article/details/8485049 #1,system()方式 在C盘根目录下新建文件夹,名称为12: system(&qu ...

thinkPhp 3.1.3的验证码无法显示的问题

Image帮助类的output方法中,在下面的代码 header("Content-type: image/" . $type); 前增加代码: ob_end_clean();

JavaScript 运行机制详解:再谈Event Loop

pythonlocust使用技巧_python locust 性能测试:HOOKS钩子方法相关推荐

  1. pythonlocust使用技巧_python+locust性能测试(二)之locust深入使用

    一.Locust类详细说明 Locust类中的属性有: client属性: task_set: 指向一个TaskSet类,TaskSet类定义了用户的任务信息,该属性为必填: max_wait/min ...

  2. python locust 能压测数据库_python locust 性能测试:HOOKS钩子方法

    为locust中不同类型的事件,提供的钩子方法: from locust import TaskSet, task, events, Locust from locust.clients import ...

  3. python locust 性能测试:HOOKS钩子方法

    为locust中不同类型的事件,提供的钩子方法: from locust import TaskSet, task, events, Locust from locust.clients import ...

  4. pythonlocust使用方法_python locust 性能测试:locust安装和一些参数介绍

    安装参考 https://www.cnblogs.com/fnng/p/6081798.html ps:python3.7暂不支持locust:python3安装建议克隆github上的项目 可能需要 ...

  5. python locust最新版_python locust 性能测试:locust安装和一些参数介绍

    安装参考 https://www.cnblogs.com/fnng/p/6081798.html ps:python3.7暂不支持locust:python3安装建议克隆github上的项目 可能需要 ...

  6. 基于python的压测工具_Python Locust性能测试简介及框架实践

    Locust(俗称 蝗虫), 一个轻量级的开源压测工具,用Python编写.使用 Python 代码定义用户行为,也可以仿真百万个用户: Locust 非常简单易用,是分布式,用户负载测试工具.Loc ...

  7. python locust提取参数_python+locust性能测试学习笔记

    前言 Locust(俗称 蝗虫)一个轻量级的开源压测工具,基本功能是用Python代码描述所有测试.不需要笨拙的UI或庞大的XML,只需简单的代码即可. 环境安装 Locust支持Python 2.7 ...

  8. pythonturtle画图库使用技巧_Python画图库turtle使用方法简介

    Python图库turtle绘制爱心 先给出代码 import turtle as x x.penup() x.seth(90) x.fd(200) x.pendown() x.pencolor(&q ...

  9. yuki翻译器钩子_git hooks钩子

    GIT HOOKS 钩子(hooks)是一些在"$GIT-DIR/hooks"目录的脚本,在被特定的事件(certain points)触发后被调用.当"git init ...

  10. locust性能测试图表参数以及分析

    一.locust性能测试图表参数1 1.type:请求类型 2.name:请求路径 3.requests:当前请求的数量 4.fails:当前请求失败的数量 5.median:中间值,单位毫秒,一半服 ...

最新文章

  1. 用户一亿的网易新闻客户端质量如何?
  2. Swift 1.1语言第7章 函数和闭包
  3. java poi 更新excel_在Java Apache POI中更新现有的Excel文件
  4. oracle迁移父子数据
  5. MQTT的学习之Mosquitto安装使用(1)
  6. Nginx官网提供的版本类型
  7. vs code无法启动怎么解决?
  8. ldap实现用户认证
  9. XLSTransformer 导出Excel数据
  10. 红帽linux系统安装指导
  11. 一文讲清楚机械硬盘和固态硬盘的工作原理
  12. 乐高编程机器人Boots_南瓜爸爸的亲子编程课 篇六:LEGO 乐高 Boost 可编程机器人开箱及简评...
  13. python做淘宝_用python做个淘宝双十一满减攻略,再也不用算算算了
  14. Transfer Learning 迁移学习的相关知识
  15. Python 练习实例100例—5
  16. 函数模板和普通函数区别
  17. C# unity 中实现汉字转拼音
  18. jenkins流水线构建入门(单机容器形态)
  19. MATLAB中使用magnify做图中图
  20. 100 道常见 Hadoop 面试题及答案解析

热门文章

  1. Scala下载和配置
  2. Matpower安装流程
  3. C语言题目——三子棋游戏
  4. 20181215《linux设备驱动开发详解》宋宝华 学习笔记(1)
  5. shell卸载 simatic_西门子软件在WIN7操作系统中安装步骤和须知
  6. SNMP(简单网络管理协议)详解
  7. 计算机用户太多怎样删除,删除电脑中多余的用户的4个小技巧
  8. SwiftUI 教程
  9. cadlisp点选面积标注_一个在CAD中标注坐标的LISP
  10. G代码表《G代码大全》