直接编写接口事务脚本对后台接口进行测试;有时测试需要让所有并发用户完成初始化后再进行压力测试,这就需要类似于LoadRunner中的集合点的概念,由于框架本身没有直接封装,有如下办法实现:

from gevent._semaphore import Semaphore
all_locusts_spawned = Semaphore(0)
all_locusts_spawned.acquire() def on_hatch_complete(**kwargs):
all_locusts_spawned.release() //创建钩子方法 events.hatch_complete += on_hatch_complete //挂载到locust钩子函数(所有的Locust实例产生完成时触发) class TestTask(TaskSet):
def on_start(self):
""" on_start is called when a Locust start before any task is scheduled """
self.login()
all_locusts_spawned.wait() //限制在所有用户准备完成前处于等待状态

思路:

通过locust得基于gevent并发得机制,引入gevent的锁的概念,代入到locust的钩子函数中,实现集合点统一并发概念

个人补充理解:

semaphore是一个内置的计数器:

每当调用acquire()时,内置计数器-1

每当调用release()时,内置计数器+1

计数器不能小于0,当计数器为0时,acquire()将阻塞线程直到其他线程调用release()

最新文章

  1. Oracle 11g RAC 卸载CRS步骤
  2. 实战手记:让百万级数据瞬间导入SQL Server
  3. C#设计模式——命令模式(Command Pattern)
  4. Oracle 使用小计(2)
  5. [LeetCode] #1# Two Sum : 数组/哈希表/二分查找/双指针
  6. MySQL翻页查询技巧
  7. 自定义android精美聊天界面
  8. day7_python学习笔记_chapter9_文件
  9. Android Wear 数据类型和接口的发送和同步数据概述
  10. 泛型(CSDN转载)
  11. 利用Apache配置本地 自定义域名
  12. Apace Ignite剖析
  13. postgresql 日志配置
  14. 用VirtualBox快速安装虚拟机virtual Machine(Win7+IE10)
  15. composer "Failed to decode zlib stream"
  16. TensorFlow Google大会总结
  17. SharePoint 2013 Deploy Master Page And Page Layout
  18. BZOJ 1001: [BeiJing2006]狼抓兔子(s-t平面图+最短路求最小割)
  19. 找不到 org/springframework/dao/support/PersistenceExceptionTranslator
  20. WP8注册文件关联---分享图片

热门文章

  1. windows下的pycharm下载与安装(不包括激活)
  2. Linux密码文件介绍
  3. 初识python: 文件操作
  4. iOS微信支付无法直接返回APP的问题
  5. Limiting Command Size
  6. webSocket 前端 js 加入 心跳机制 的基本写法
  7. 第10组 Alpha冲刺 (5/6)
  8. 小程序canvas绘制纯色圆角区域 setdata数组某一项
  9. 生产环境上,哨兵模式集群Redis版本升级应用实战
  10. SQL查询中关键字的执行顺序