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库来实现

最新文章

  1. Atitti css3 新特性attilax总结
  2. 我为什么选择使用Go语言?
  3. jQuery Devrama Slider 幻灯片
  4. 标准C实现基于TCP/IP协议的文件传输
  5. POJ 2524 (简单并查集) Ubiquitous Religions
  6. Android权限安全(8)ContentProvider基于URI的安全
  7. ###Linux基础 - 3
  8. ReactiveCocoa框架学习1
  9. JavaEE学习笔记---数据库操作篇
  10. 从现在开始使用nodejs开发的几点答疑
  11. layout_weight
  12. (极简)linux安装QT4.7.3
  13. jQuery实例2
  14. Cosmos OpenSSD--greedy_ftl1.2.0(三)
  15. “《编程珠玑》(第2版)第2章”:A题(二分搜索)
  16. 你必须知道的10个Python第三库
  17. ES6和ES5变量声明的区别(var let const)
  18. centos7 虚拟机安装 以后不能联网问题
  19. hdu 4960 数列合并
  20. NOIP2017 列队——动态开点线段树

热门文章

  1. MYSQL5.7.24编译安装
  2. VMware安装ubantu
  3. go实现文件的上传
  4. Django admin中文报错Incorrect string value 解决办法
  5. memset()函数的使用
  6. 项链与手镯Uva 10294——Polya定理
  7. JDK9的JShell简单使用
  8. MySQL InnoDB存储引擎事务的ACID特性
  9. NISP二级笔记(一) 信息安全管理
  10. C语言定义结构体指针数组并初始化;里面全是结构体的地址