在虚拟模拟的时候,可能对等待时间有更高的要求,比如假如有这么一个场景要求:某任务要求每被执行1次,那么下次的等待时间就1秒钟。这种情况,是可以实现的,这也就体现了Locust的灵活性。可编程性,很多比较棘手的场景模拟难题,都可以通过编程的方式解决掉。

具体如何解决呢?自定义wait_time函数,实现源代码如下:

  def wait_time(self):
self.last_wait_time += 1
return self.last_wait_time
 

通过以上,每次执行task的时候 wait_time的源码都会被执行1次,那么我们的场景模拟的目的就达到了。完整的locust file源码如下:

from locust import  User,task
import time class MyUser(User):
last_wait_time = 0 #可以自定义wait time for locust
def wait_time(self):
self.last_wait_time += 1
return self.last_wait_time @task
def my_task(self):
nowTime = time.strftime("%Y-%m-%d %H:%M:%S")
print("Executing my task,and the time now is:" + nowTime)
 

通过简单分析,如果场景模拟是正确的,那么每次打印的时间差别,应该是1/2/3/4...... 秒,这么递增的,执行完之后,如下所示,是和预想是一致的。  

/locust.runners: All users hatched: MyUser: 1 (0 already running)
Executing my task,and the time now is:2020-09-20 20:21:52
Executing my task,and the time now is:2020-09-20 20:21:53
Executing my task,and the time now is:2020-09-20 20:21:55
Executing my task,and the time now is:2020-09-20 20:21:58

转自微信公众号【TimTest],原文地址为:https://mp.weixin.qq.com/s?__biz=MzI2OTYwMDc0MQ==&mid=2247483750&idx=1&sn=46c07aefdda6b34f8eaf4dcf95b8630d&chksm=eadc93ecddab1afa8c284f5a8716c3f091e05c5bc4a5e4bd944a0f748c421a189150849656c7&token=2021082705&lang=zh_CN#rd

【转】Locust性能-零基础入门系列(2) -重写wait_time的更多相关文章

  1. 【转】Locust性能-零基础入门系列(1)-wait_time属性用法

    本篇文章,从局部出发,利用一个简单的测试,来说明场景模拟的wait_time属性的用法.wait_time为什么要单独拎出来讲,是因为它主要有两种模式,而初学者对这两种模式,容易混淆.1) wait_ ...

  2. 【转】Locust性能-零基础入门系列(3)-压力权重

    本文将继续对Locust性能测试进行持续讲解,主要是讲解虚拟用户数分配和权重的关系.在locust file中进行多用户类的实现和操作.我们这次先上完整的代码: from locust import ...

  3. 【JAVA零基础入门系列】Day13 Java类的继承与多态

    继承是类的一个很重要的特性,什么?你连继承都不知道?你是想气死爸爸好继承爸爸的遗产吗?(滑稽) 开个玩笑,这里的继承跟我们现实生活的中继承还是有很大区别的,一个类可以继承另一个类,继承的内容包括属性跟 ...

  4. 【JAVA零基础入门系列】Day2 Java集成开发环境IDEA

    开发环境搭建好之后,还需要一个集成开发环境也就是IDE来进行编程.这里推荐的IDE是IDEA,那个老掉牙的Eclipse还是先放一边吧,(手动滑稽). IDEA的下载地址:http://www.jet ...

  5. 【JAVA零基础入门系列】Day4 变量与常量

    这一篇主要讲解Java中的变量,什么是变量,变量的作用以及如何声明,使用变量. 那么什么是变量?对于初学者而言,可以将变量理解为盒子,这些盒子可以用来存放数据,不同类型的数据需要放在对应类型的盒子里. ...

  6. 【JAVA零基础入门系列】Day5 Java中的运算符

    运算符,顾名思义就是用于运算的符号,比如最简单的+-*/,这些运算符可以用来进行数学运算,举个最简单的栗子: 已知长方形的长为3cm,高为4cm,求长方形的面积. 好,我们先新建一个项目,命名为Rec ...

  7. 【JAVA零基础入门系列】Day6 Java字符串

    字符串,是我们最常用的类型,每个用双引号来表示的串都是一个字符串.Java中的字符串是一个预定义的类,跟C++ 一样叫String,而不是Char数组.至于什么叫做类,暂时不做过多介绍,在之后的篇章中 ...

  8. 【JAVA零基础入门系列】Day8 Java的控制流程

    什么是控制流程?简单来说就是控制程序运行逻辑的,因为程序一般而言不会直接一步运行到底,而是需要加上一些判断,一些循环等等.举个栗子,就好比你准备出门买个苹果,把这个过程当成程序的话,可能需要先判断一下 ...

  9. 【JAVA零基础入门系列】Day9 Java中的那个大数值

    什么是大数值?用脚趾头想也知道,当然是"大"的数值(233).Java中有两个用于表示大数值的类,BigInteger和BigDecimal,那到底能表示多大的数值呢?理论上,可以 ...

随机推荐

  1. maven命令下载jar包

    mvn install:install-file -Dfile=jar包保存的本地路径 -DgroupId=jar保存的父级路径 -DartifactId=jar包文件夹名称 -Dversion=版本 ...

  2. seo如何发外链

    http://www.wocaoseo.com/thread-228-1-1.html 在做外链方面博主并没有什么太多的经验,做为一位seo,下面武汉seo把自己做外链的大条列出来,都是经过本身实践并 ...

  3. idea,git操作

    原文地址:https://blog.csdn.net/lzx2018/article/details/91414591 1新建分支 点击New Branch 2切换分支

  4. 焦大:以后seo排名核心是用户需求点的挖掘

    http://www.wocaoseo.com/thread-61-1-1.html 给我一个用户需求点,我便能拗动任何seo排名.-焦大 前不久我看博客上有人留言咨询能否做seo这个词的排名,对于这 ...

  5. el-table表头v-for循环遇到的问题

    这两天在项目中遇到了el-table表头需要动态变化,也就是点击不同的标签显示对应的表格,主要表头都不一样,那么表格也就是动态的,表头也需要循环 一开始以为很简单 <el-table       ...

  6. windows 下编译libcurl

    因为linux平台采用了libcurl,有一个程序移植到到windows平台,再linux采用libcurl.在windows下准备也采用该库.在网上搜索了几位同行写的,步骤上面有缺失. 本文将以详细 ...

  7. Data Vault玩转数据仓库(三)

    在Data Vault 2.0版本里,其不只是针对数据仓库的建模,同时也包含了架构,方法论以及实现.这篇挑几个概念,附上我个人对其的理解.同时也把这个系列的名字改成<Data Vault玩转数据 ...

  8. Intermediate English Book 1

    List x1.0 x1.5 Lesson 1 Reading Lesson 1 Details Lesson 2 Dialogue Lesson 2 Details Lesson 3 Reading ...

  9. java初探(1)之登录再探

    https://www.cnblogs.com/lovejune/p/java_login_1.html 上一章内容搭建起了登录应用场景的环境,模拟实现了登录操作,页面与后端数据的交互过程,使用的是异 ...

  10. Prometheus 与 国产 TDengine 的对比

    通过对比,能加深对这两个系统的理解,方便后续架构选型时作出正确决定.他们的设计思路有很多值得借鉴的地方,虽然工作中需要用到这些知识的地方不多,但是了解他们的设计细节能极大满足我的好奇心. 1.场景和需 ...