locust性能测试脚本模板
2024-08-22 00:20:55
locust性能测试脚本模板
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time from locust import HttpLocust, TaskSet, task, seq_task class BlogDemo(TaskSet): def get_parameters(self):
# 定义获取参数
pass def regx(self):
# 定义正则表达式
pass @seq_task(2) # 第二个执行
@task(1)
def open_blog(self):
# 定义requests的请求头和url
url = "/111testing"
header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"} r = self.client.get(url, headers=header, name="进入我的博客")
print(r.status_code)
assert r.status_code == 200 @seq_task(1) # 第一个执行
@task(1)
# @task(1) 和 @task(2) 运行的请求数量是1:2
def open_blog_firstPage(self):
url = "/"
header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"} self.client.get(url, headers=header, name="进入博客园首页") class websitUser(HttpLocust):
task_set = BlogDemo
# 等待的区域时间不写的话,默认是1秒
min_wait = 3000 # 单位毫秒
max_wait = 6000 # 单位毫秒
host = "https://www.cnblogs.com" if __name__ == "__main__":
import os # 如果上面写了host,那么os.system这里就不用再写host了
os.system("locust -f demo.py") # 如果上面没有写host,那么os.system这里就需要写host
# os.system("locust -f demo.py --host=https://www.cnblogs.com") # 本机为主测试机时运行下面命令,单独的主测试机运行起来也没有用(无法跑并发请求的),必须结合子测试机使用
# os.system("locust -f demo.py --master") # 本机为子测试机时运行下面命令,运行子测试机的前提是必须已经运行了主测试机
# os.system("locust -f demo.py --slave") # 本机为子测试机时,且主测试机在另外一台机器时运行下面命令
# os.system("locust -f demo.py --slave --master-host=192.168.xx.xxx") # 一般主测试机多放在windows系统运行,子测试机多放在Linux系统运行,因为windows运行locust性能很差
# 运行一次请求机型调试:locust -f demo.py --no_web -c 1 -n 1
locust集合点设置
有时测试需要让所有并发用户完成初始化后再进行压力测试,这就需要类似于LoadRunner中的集合点的概念,由于框架本身没有直接封装,可借助python的gevent库来实现
最新文章
- Atitti css3 新特性attilax总结
- 我为什么选择使用Go语言?
- jQuery Devrama Slider 幻灯片
- 标准C实现基于TCP/IP协议的文件传输
- POJ 2524 (简单并查集) Ubiquitous Religions
- Android权限安全(8)ContentProvider基于URI的安全
- ###Linux基础 - 3
- ReactiveCocoa框架学习1
- JavaEE学习笔记---数据库操作篇
- 从现在开始使用nodejs开发的几点答疑
- layout_weight
- (极简)linux安装QT4.7.3
- jQuery实例2
- Cosmos OpenSSD--greedy_ftl1.2.0(三)
- “《编程珠玑》(第2版)第2章”:A题(二分搜索)
- 你必须知道的10个Python第三库
- ES6和ES5变量声明的区别(var let const)
- centos7 虚拟机安装 以后不能联网问题
- hdu 4960 数列合并
- NOIP2017 列队——动态开点线段树