on_start:开始前执行;
on_stop:结束后执行。

这两个方法可以帮助我们在进行性能测试时,把一些前置操作和后置处理进行规范化管理。例如在on_start获取登录的token,在on_stop清理运行产生的冗余数据。

locust脚本源码:my_locust.py

from locust import HttpUser, task, between
import loggingclass QuickstartUser(HttpUser):wait_time = between(1, 2)  # 为方便运行,缩短了一点点时间。@taskdef hello(self):self.client.get("/hello")@task(3)def world(self):self.client.get("/world")def on_start(self):login_result = self.client.post("/login", json={"username": "Tom", "password": "123456"}).textlogging.info(f"login_result:{login_result}")def on_stop(self):logout_result = self.client.post("/logout", json={"username": "Jim", "password": "456789"}).textlogging.info(f"logout_result:{logout_result}")

服务端sanic源码:main.py

from sanic import Sanic
import datetime
from sanic import responseapp = Sanic('myapp')@app.get('/hello')
def handle_request(request):time = str(datetime.datetime.now())[:-7]return response.json({"hello time": time})@app.get('/world')
def handle_request(request):time = str(datetime.datetime.now())[:-7]return response.json({"world time": time})@app.post('/login')
def handle_request(request):time = str(datetime.datetime.now())[:-7]data = request.jsonprint(f"{data}")if data:if data["username"] == "Tom" and data["password"] == "123456":return response.text("{} login success".format(data["username"]))else:return response.json({"login time": time})@app.post('/logout')
def handle_request(request):time = str(datetime.datetime.now())[:-7]data = request.jsonprint(f"{data}")if data:if data["username"] == "Jim" and data["password"] == "456789":return response.text("{} logout success".format(data["username"]))else:return response.json({"logout time": time})if __name__ == "__main__":app.run(host="127.0.0.1", port=7890, auto_reload=True)

再次运行:
1、命令行执行:locust -f my_locust.py
2、打开http://localhost:8089/。
3、用户数,孵化率,host分别输入1,1,http://127.0.0.1:7890
4、点击运行

服务端:可以看到在点击运行后,服务端接收到了on_start发起了登录的请求。

客户端:接收到了登录成功的响应。

locust-ui点击停止运行

服务端:可以看到在点击结束运行后,服务端接收到了on_stop发起了退出登录的请求。

客户端:接收服务端退出登录的响应。

on_start和on_stop:在单次前后,每次运行有且仅有运行1次。

以上,即on_start和on_stop的解析和案例说明。

微信公众号:玩转测试开发
欢迎关注,共同进步,谢谢!

locust2.0+教程:005 - on_start和on_stop相关推荐

  1. locust2.0+教程:007 - 分布式压测执行

    前言: locust2.0+教程:001 - 安装和目录结构 locust2.0+教程:002 - 快速使用 locust2.0+教程:003 - headless无界面模式 locust2.0+教程 ...

  2. OpenGL3.0教程 第十六课:阴影贴图

    OpenGL3.0教程 原文链接:http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-12-opengl-extensions ...

  3. 零基础快速入门SpringBoot2.0教程 (二)

    一.SpringBoot2.x使用Dev-tool热部署简介:介绍什么是热部署,使用springboot结合dev-tool工具,快速加载启动应用官方地址:https://docs.spring.io ...

  4. Android Studio2.0 教程从入门到精通Windows版

    系列教程 Android Studio2.0 教程从入门到精通Windows版 - 安装篇 Android Studio2.0 教程从入门到精通Windows版 - 入门篇 Android Studi ...

  5. SpringBoot 2.0 系列005 --启动实战之SpringApplication应用

    为什么80%的码农都做不了架构师?>>>    SpringBoot 2.0 系列005 --启动实战之SpringApplication应用 2.X 官方示例 注意是只使用了@En ...

  6. IoT:BLE4.0教程一 蓝牙协议连接过程与广播分析

    IoT:BLE4.0教程一 蓝牙协议连接过程与广播分析 1.蓝牙简介 什么是蓝牙4.0 蓝牙无线技术是使用范围最广泛的全球短距离无线标准之一,蓝牙4.0版本涵盖了三种蓝牙技术,即传统蓝牙.高速蓝牙和低 ...

  7. iOS OpenGL ES2.0教程   Lesson03 旋转

    iOS OpenGL ES2.0教程    Lesson03  旋转 注:可供翻译的课程只有前两课.从这节课起,我试着根据我对OpenGL ES的理解写接下去的课程,希望能和大家一起学习. 在上节课中 ...

  8. TensorFlow2.0教程-使用keras训练模型

    TensorFlow2.0教程-使用keras训练模型 Tensorflow 2.0 教程持续更新: https://blog.csdn.net/qq_31456593/article/details ...

  9. 001-TensorFlow 2.0 教程-Transformer

    TensorFlow 2.0 教程-Transformer 原文地址:https://blog.csdn.net/qq_31456593/article/details/89923913 Tensor ...

最新文章

  1. intellij idea maven dependency自动补全
  2. Linux下对SVN的相关操作命令
  3. USB学习5---android usb驱动源代码目录说明
  4. 常用sql-----DDL语句
  5. 生产订单的 lock 与 unlock
  6. python7.1处理异常
  7. java的for循环
  8. java自动封箱_Java程序员面试,自动封箱/拆箱原理与包装类的缓冲机制你知道么?(转)...
  9. android studio 创建项目失败原因Failed to create
  10. IPFS为什么被学者称为数据的“黄金保险柜”?
  11. SQL 2008R2 误删除数据恢复方法(一)
  12. c语言确定母亲节思路,C语言有关确定日期的相关问题
  13. 健身 宏效 -大道至简
  14. [免费专栏] 车联网基础理论之车联网安全车端知识科普
  15. 测试常用正则表达式整理汇总
  16. javascript处理日期和时间
  17. 基于STM32智能小车->红外寻迹篇
  18. 物理学十大实验(1-5)
  19. 小龙虾炒菜机器人_“机器人”炒菜?5分钟一盘小龙虾!8分钟一份红烧肉
  20. ABF平台设计(四):体验黑科技-结构化的体验数据平台

热门文章

  1. Linux下的NTP
  2. 腾讯十年运维专家谈运维的自我修养
  3. 三、Hadoop系统应用之Hadoop集群测试及初体验(超详细步骤指导操作,WIN10,VMware Workstation 15.5 PRO,CentOS-6.7)
  4. vue element 表格头换行
  5. Tkinter超市收银小程序(附源码),看完这一篇你还不会Tkinter吗,快来试试吧
  6. 实现超市收银找零的简单程序
  7. 对软件工程的问题 用过的三款软件的特点
  8. JavaSE面向对象编程
  9. Java中getneighbor,桩号转经纬度的实现[Java编程]
  10. c# 变量不可访问,因为它具有一定的保护级别