蝗虫请求统计

2023-12-28

我正在考虑使用 Locust 进行一些性能测试。我对 Python 更熟悉,发现 Locust 比 JMeter JMX 更容易阅读。

我习惯使用 JMeter 做的一件事是从多次运行中生成我自己的平均值、90%、95% 和 99% 报告。为此,我编写了一个脚本来解析 JMeter 日志,其中包含每个请求的信息(响应时间、有效负载大小等),然后将所有运行合并到单个数据集中并生成平均值和百分位数。

我似乎找不到一个选项来获得这种级别的详细日志记录。我尝试过 --logfile= 但该文件不包含有关单个请求的任何内容。我尝试过 --csv= ,输出仅包含摘要信息 - 在尝试确定运行组合中的百分位数时无法使用该信息。

有没有办法获取每个请求的详细日志信息?


我不确定这是否是最简单的方法,但您可以使用locust事件钩子机制 https://docs.locust.io/en/stable/api.html#event-hooks.

让我们在命令行中启动python内置的http服务器:

python -m http.server

并创建文件example.py包含以下内容:

#!/usr/bin/env python
from locust import HttpUser, TaskSet, task, events

stat_file = open('stats.csv', 'w')

class UserBehavior(TaskSet):
    """ Defines user behaviour in traffic simulation """

    @task()
    def index(self):
        self.client.get("/")


class WebsiteUser(HttpUser):
    """ Defines user that will be used in traffic simulation """
    tasks = {UserBehavior:2}
    min_wait = 3000
    max_wait = 5000


# hook that is fired each time the request ends up with success
@events.request_success.add_listener
def hook_request_success(request_type, name, response_time, response_length, **kw):
    stat_file.write(request_type + ";" + name + ";" + str(response_time) + ";" + str(response_length) + "\n")


@events.quitting.add_listener
def hook_quitting(environment, **kw):
    stat_file.close()

现在在同一个文件夹中example.py生命从命令行运行:

locust -f example.py --headless -u 10 -r 1 --host=http://localhost:8000

如果你在一段时间后停止它,你会发现stats.csv每个成功请求的文件详细信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蝗虫请求统计 的相关文章

随机推荐

  • 是否可以通过 chrome webstore api 上传/发布未列出的扩展程序?

    我们希望上传一个 Chrome 扩展程序 并通过 Chrome Webstore Api 将其发布为不公开 作为可见性选项 到目前为止 我们已经能够上传但无法发布使用本文档 https developer chrome com websto
  • 显示 ggplot2 标题而不为其保留空间

    我正在尝试为一些 ggplot2 图表设置标题 同时留下一些没有标题 不幸的是 当设置标题时 y 轴和绘图会缩小 请参见右侧的绘图 我需要在不更改 Y 轴大小的情况下绘制标题 以便标题图表与其他图表具有相同的比例 如中间图所示 grid a
  • 为什么 Context.User.Identity.Name 在 Windows 窗体中心上下文中为 null?

    我需要通过User Identity Name到 Windows 窗体客户端 Method public override Task OnConnected string userName Context User Identity Nam
  • 谷歌地图。如何根据中心点的坐标创建 LatLngBounds 矩形(正方形)

    我有一个点 X Y 我想创建一个正方形 Google 地图 LatLngBounds 对象可以使地理编码请求仅偏向此 LatLng Bound 区域 如何创建这样一个以给定点为中心的 LatLngBounds 正方形 我必须找到NE和SW点
  • AWS Cloudformation:负载均衡器自定义 SSL 协商策略

    尝试使用自定义 SSL 协商策略设置 cloudformation 模板 我收到的 cloudformation 错误是 CREATE FAILED AWS ElasticLoadBalancing LoadBalancer Backend
  • 我可以在函数头中包含 cppcheck 抑制吗?

    我添加了一个内联注释来抑制函数的 cppcheckusedFunction 警告 但我想将其包含在函数头中 以便 Doxygen 可以记录所有未使用的函数 我正在实现一个 API 所以我有很多函数不会在我的源代码中使用 我不想抑制所有未使用
  • Kafka Spark directStream无法获取数据

    我正在使用 Spark directStream api 从 Kafka 读取数据 我的代码如下 val sparkConf new SparkConf setAppName testdirectStreaming val sc new S
  • re.findall 返回命名捕获组的字典?

    受到一个现已删除的问题的启发 给定一个带有命名组的正则表达式 是否有类似的方法findall它返回一个列表dict使用命名的捕获组而不是列表tuple Given gt gt gt import re gt gt gt text bob s
  • Python json.loads() 返回列表而不是字典

    我通过 requests get 获取的 API 中有以下 json 现在我想用 json loads 将这个 json 转换为字典 但结果是一个列表 从https www w3schools com python python json
  • 在对话框中按下音量调高时隐藏 UI

    有没有办法在按下volume up volume down键时隐藏音量ui 据我所知 当显示对话框时触发时似乎不起作用时 可以通过活动来完成此操作 有解决办法吗 这应该与 Dialog 类一起使用 AudioManager man Audi
  • Dataproc:Jupyter pyspark 笔记本无法导入 graphframes 包

    在 Dataproc Spark 集群中 graphframe 包在 Spark Shell 中可用 但在 Jupyter pyspark Notebook 中不可用 Pyspark 内核配置 PACKAGES ARG packages g
  • 库不可写

    我在 Ubuntu 计算机上的 R 版本 3 0 2 2013 09 25 中安装软件包时遇到此问题 install packages randomForest Installing package into usr local lib R
  • 气流安装损坏。 `表 dag_stats 已经存在`

    我的 Airflow 安装已停止工作 UI Web 服务器未出现 我认为该问题与我运行时出现的以下错误有关 gt airflow initdb sqlalchemy exc OperationalError sqlite3 Operatio
  • Swift App首次运行检测

    快速地 我如何检测这是否是应用程序第一次运行 我想创建一个简单的游戏 如果应用程序是新的 则将高分设置为 0 如果我输入以下内容 override func viewDidLoad super viewDidLoad Do any addi
  • NTLM 身份验证失败,服务器最终响应“401”,但不是“200 OK”

    我正在使用 Node js 通过 NTLM 身份验证连接到服务器 NTLM协议步骤如下 参考 http www innovation ch personal ronald ntlm html http www innovation ch p
  • 使用 python 将纯 JSON 发送到 gRPC 服务器

    我可以使用 grpcurl 向我们启用 gRPC 启用反射的服务器之一发送请求 语法如下 grpcurl plaintext d test input Test 1 2 3 config max results 3 localhost 65
  • Java preg_match 数组

    有绳子strng 如何获得类似数组 arr 0 text1 arr 1 text2 我尝试使用这个 但结果有 而不是数组text1
  • Node.js 续集嵌入 hasMany IDs

    我正在尝试使用 ember data 的 Ember 应用程序和使用 Sequelize js 提供来自 MySQL 的数据的 Node js 后端 我的问题 如果我有一个通过 hasMany 与 Post 模型关联的 Comment 模型
  • 选择打印机并静默打印

    这个答案 https stackoverflow com a 9320649 1804599展示如何在 Google Chrome 中启用静默打印 但是 我有两个网页 必须使用两台不同的打印机进行静默打印 而无需进一步的用户交互 有没有办法
  • 蝗虫请求统计

    我正在考虑使用 Locust 进行一些性能测试 我对 Python 更熟悉 发现 Locust 比 JMeter JMX 更容易阅读 我习惯使用 JMeter 做的一件事是从多次运行中生成我自己的平均值 90 95 和 99 报告 为此 我