python locust 性能测试:HOOKS钩子方法
为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_filedef 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_quittingclass 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": "1","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 = WebUsermax_wait = 6000min_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()
转载于:https://www.cnblogs.com/changqing8023/p/10205038.html
python locust 性能测试:HOOKS钩子方法相关推荐
- python locust 能压测数据库_python locust 性能测试:HOOKS钩子方法
为locust中不同类型的事件,提供的钩子方法: from locust import TaskSet, task, events, Locust from locust.clients import ...
- Python+locust性能测试(一),进军高阶测试......
前言 Locust是使用Python开发的支持分布式的一款开源压力测试工具,Locust在测试时,会产生大量的用户对系统进行访问,每个用户的行为是通过Python代码控制的,并且整个测试过程可以在We ...
- python+locust性能测试学习笔记
前言 Locust(俗称 蝗虫)一个轻量级的开源压测工具,基本功能是用Python代码描述所有测试.不需要笨拙的UI或庞大的XML,只需简单的代码即可. 环境安装 Locust支持Python 2.7 ...
- 性能测试框架——python+locust
目录 性能测试测试点 指标体系 用户数 监控windows系统指标 使用Python监控系统资源 安装和使用 安装 代码模板 问题处理 locust启动参数 性能测试测试点 分类:负载测试.压力测试. ...
- pythonlocust使用方法_python locust 性能测试:locust安装和一些参数介绍
安装参考 https://www.cnblogs.com/fnng/p/6081798.html ps:python3.7暂不支持locust:python3安装建议克隆github上的项目 可能需要 ...
- python locust api_性能测试工具--Locust官方文档(API)解读(全)
文章略长Locust学习笔记汇总 若有错误,请指正 内容以官网为准https://locust.io/ Locust简介 Locust是什么? Locust是一个简单易用的分布式用户负载测试工具.它用 ...
- python服务器性能测试工具locust使用指南
文章目录 前言 安装 基本使用 User类 @task装饰器 任务间隔 @tag装饰器 前置与后置 HttpUser类 常用参数 命令行配置 配置文件配置 常用压测场景实战 高用户高并发场景压测 每个 ...
- 基于python的性能测试工具–locust
基于python的性能测试工具–locust https://www.cnblogs.com/chunyanxu/p/8732720.html 性能测试工具Locust https://www.cn ...
- python locust最新版_python locust 性能测试:locust安装和一些参数介绍
安装参考 https://www.cnblogs.com/fnng/p/6081798.html ps:python3.7暂不支持locust:python3安装建议克隆github上的项目 可能需要 ...
最新文章
- IDEA+Maven+Springboot:invalid bound statement (not found) 解决办法
- 栈和托管堆/值类型和引用类型/强制类型转换/装箱和拆箱[C#]
- adnroid string拼接_Android开发中string.xml文件中字符串的拼接
- bloomberg用法 固定收益_内部收益率的用法浅谈某保险的真实收益率
- linux组的管理命令,linux 用户和组管理命令(示例代码)
- 核心指导网络由任务编码器_指导新编码员的最佳做法
- 聚焦LS-MIMO的四大层面,浅谈5G关键技术
- 如何从列表中删除第一个项目?
- java session.load_java – 了解hibernate中的session.get vs session.load方法
- 数据太大的时候,R语言如何读取?
- Python del:删除对象
- JAVA 滑块拼图验证码
- Android开发之EditText属性详解
- 最新借条模板,如何写
- 【Unity 框架】QFramework v1.0 使用指南 架构篇:05. 引入 Utility | Unity 游戏框架 | Unity 游戏开发 | Unity 独立游戏
- 领取1024节日勋章(程序员必看)
- 【1.6万字】连续抓屏保存为Gif动图 【keyboard库、PIL库、imageio库和pygifsicle库 探索】
- Linux关闭/禁用触摸屏,deepin关闭/禁用触摸屏方法
- 汇总: 机器学习术语表
- 【C语言程序设计】实验 12
热门文章
- ssh传输越多越慢_Linux下分析网站访问慢原因
- android eclipse不能创建activity,在eclipse里面开发android应用,不能新建Activity
- linux取消头文件链接,【原创】Linux下编译链接中常见问题总结
- java thread.notify_Java Thread notify()方法
- SpringSecurity Form Login
- vue.js v-model
- docker image
- echarts line
- 如何获取filecoin_【IPFSFilecoin】Filecoin矿机厂商排名?如何选择?哪家公司靠谱?...
- 项目管理学习总结(16)——如何突破技术管理