python locust提取参数_python+locust性能测试学习笔记
前言
Locust(俗称 蝗虫)一个轻量级的开源压测工具,基本功能是用Python代码描述所有测试。不需要笨拙的UI或庞大的XML,只需简单的代码即可。
环境安装
Locust支持Python 2.7, 3.4, 3.5, and 3.6的版本,小编的环境是python3.6直接用pip安装就行
安装命令:pip install locustio
官方文档
开始第一个实例
from locust import HttpLocust, TaskSet, task
class Testlocust(TaskSet):
def on_start(self):
print("start")
self.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
}
@task(1)
def baidu_demo(self):
r = self.client.get("/", headers=self.headers, verify=False)
print(r.status_code)
assert r.status_code == 200
class WebsiteUser(HttpLocust):
task_set = Testlocust
min_wait = 1500
max_wait = 5000
if __name__ == "__main__":
import os
os.system("locust -f locust4.py --host=https://www.baidu.com")
使用@task装饰的方法为一个事务,方法的参数用于指定该行为的执行权重,参数越大每次被用户执行的概率越高,默认为1;
on_start():每个locust用户执行测试事务之前执行一次,用于做初始化的工作,如登录;
host :要加载主机的URL,通常是在命令行启动locust时使用--host选项指定,若命令行启动时未指定,该属性被使用;
task_set:指向定义的一个用户行为类;
min_wait:模拟用户在执行每个任务之间等待的最小时间,单位为毫秒;
max_wait:模拟用户在执行每个任务之间等待的最大时间,单位为毫秒
启动locust
web模式启动:os.system("locust -f locust4.py --host=https://www.baidu.com")
启动成功:
测试结果:
no-web模式启动:os.system("locust -f locust4.py --host=https://www.baidu.com --no-web --csv=example -c 100 -r 10 -t 10s")
测试结果:
开始第二个实例压kafka
import time
from locust import TaskSet, task, Locust, events
from kafka import KafkaProducer
import json
class UserBehavior(TaskSet):
def on_start(self):
self.producer = KafkaProducer(bootstrap_servers=['x.x.x.x:9092'])
def on_stop(self):
# 该方法当程序结束时每用户进行调用,关闭连接
self.producer.close()
@task(1)
def sendAddCmd(self):
start_time = time.time()
time_unique_id = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime())
print(time_unique_id)
print("===========================",start_time)
try:
timestamp = int(time.time())
message = {
'timestamp': timestamp,
'message': "121314"
}
msg = json.dumps(message)
msg = msg.encode('utf-8')
self.producer.send('preHandleTopic', msg)
except Exception as e:
total_time = int((time.time() - start_time) * 1000)
events.request_failure.fire(request_type="kafka", name="add", response_time=total_time,
response_length=0, exception=e)
else:
total_time = int((time.time() - start_time) * 1000)
events.request_success.fire(request_type="kafka", name="add", response_time=total_time,
response_length=0)
class SocketUser(Locust):
task_set = UserBehavior
min_wait = 1000 # 单位毫秒
max_wait = 1000 # 单位毫秒
if __name__ == '__main__':
import os
os.system("locust -f SendKafka.py --host=x.x.x.x:9092"
启动方式跟实例一相同
开始第三个实例压tcp
from locust import HttpLocust, TaskSet, task
import socket # 导入 socket 模块
host = socket.gethostname() # 获取本地主机名
port = 8888 # 设置端口号
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((host, port))
class UserBehaviora(TaskSet):
def on_start(self):
print("start")
@task(1)
def bky_index(self):
sock.send(
b'121314')
re_mes = sock.recv(1024).decode()
print(re_mes)
class WebsiteUser(HttpLocust):
task_set = UserBehaviora
min_wait = 1500
max_wait = 5000
if __name__ == "__main__":
import os
os.system("locust -f locust6.py --host=x.x.x.x:xxxx")
启动方式跟实例一相同
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家的支持。
小编微信公众号:自动化测试 To share
标签:__,task,python,self,locust,笔记,time,import
来源: https://www.cnblogs.com/wen-cheng/p/13332654.html
python locust提取参数_python+locust性能测试学习笔记相关推荐
- 对python的评价语_Python自然语言处理学习笔记之评价(evaluationd)
对模型的评价是在test set上进行的,本文首先介绍测试集应该满足的特征,然后介绍四种评价方法. 一.测试集的选择 1.首先,测试集必须是严格独立于训练集的,否则评价结果一定很高,但是虚高,不适用于 ...
- python测试自动化封装_python接口自动化学习笔记(封装获取测试数据方法)
本篇文章是接于python接口自动化学习笔记(封装方法用于读取excel) 后的拓展,讲解在封装完成excel的数据读取代码后,如何在data层进行使用 首先,我准备了这样一个excel表格用以存储测 ...
- python网络编程库_python网络编程学习笔记(9):数据库客户端
一.DB-API概述 python支持很多不同的数据库.由于不同的卖家服务器导致和数据库通信的网络协议各有不同.在python的早期版本中,每一种数据库都带有自己的python模块,所有这些模块以不同 ...
- python虚拟环境的安装_Python虚拟环境搭建学习笔记
1. Python虚拟环境 满足不同版本的需要所以来创建虚拟环境 2. 下载安装 * 清华的镜像 [https://mirror.tuna.tsinghua.edu.cn/help/anaconda/ ...
- python的head函数_Python(Head First)学习笔记:五
5 推导数据:处理数据.格式.编码.解码.排序 处理数据:从Head First Python 上下载资源文件,即:james.txt,julie.txt,mikey.txt,sarah.txt. 实 ...
- python quit函数作用_Python常用函数学习笔记
Python函数很多,常用的函数不同的场景侧重不同,学而时习之,不亦乐乎? abs # 求绝对值 Capitilize函数: # 有列表 li = ['aB', 'egon', 'smith', 'p ...
- python自然语言处理评论_python自然语言处理——学习笔记:Chapter3纠错
2017-12-06更新:很多代码执行结果与书中不一致,是因为python的版本不一致.如果发现有问题,可以参考英文版: 第三章,P87有一段处理html的代码: >>>raw =n ...
- python元组怎么使用_Python 2.7 学习笔记 元组的使用
一.元组 python中的元组和列表非常类似,核心区别是元组的内容初始化后是不可以修改的,而队列可以. 关于列表的详细介绍,可查看上一篇列表使用文章. 大部分场景下,能用元组的地方,都可以用列表.但有 ...
- python modbus tk 库_python modbus_tk模块学习笔记(rtu slaver例程)
GIT地址:https://github.com/ljean/modbus-tk 找到modbus rtu slaver 例程 用宝塔将例程复制到centos目录 #!/usr/bin/env pyt ...
最新文章
- 3 v4 中心节点固定_死磕以太坊源码分析之p2p节点发现
- 微信自动回复和自动抢红包实现原理(二):自动回复
- Arduino--DHT11温湿度传感器
- Introduction-to-React-JS -- 2 Helloworld
- 计算机英语 传输介质,计算机英语实用教程unit7
- 论文浅尝 - ACL2020 | 通过集成知识转换进行多语言知识图谱补全
- 来自我的破船大大的博客,记录他的iOS成长之路,与君同勉!
- Discuz论坛 带数据整站打包
- scrum master_从Scrum Master到工程副总裁:职称为何重要
- 数据结构--Go 语言中 Set 的最佳实现方案
- ASP.NET页面与IIS底层交互和工作原理详解 (二)
- web前端基础知识-(六)jQuery-补
- 前四史 —— 《后汉书》
- a = b(将 b 赋值给 a 的另类实现)
- ubuntu20.04 推荐翻译软件
- CronTrigger cron表达式
- 初中计算机会考是什么时候,初中信息技术会考复习资料
- STATA画图命令(一)
- 亚马逊关键词应该如何选择?
- 物联网云平台将成为产业生态的核心