蝗虫请求统计

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(使用前将#替换为@)

蝗虫请求统计 的相关文章

  • Jmeter连接被Peer重置:套接字写入错误/套接字异常:连接重置

    我有一个性能测试是在win7机器上的jmeter中运行的 性能测试由 2 个线程组 user1 user2 组成 每个线程使用 http 请求模块向网站发出 40 个请求 测试布局 2个线程组 每个线程组包含40个请求 包括5个文件上传 c
  • 优化的合并排序比快速排序更快

    http jsperf com optimized mergesort versus quicksort 为什么这种半缓冲区合并排序的速度与快速排序一样快 快速排序是 虽然它占用了原地log n 递归 堆栈空间 缓存友好 这个半缓冲区合并排
  • jMeter 中的 javax.net.ssl.SSLException

    我正在服务器上测试一些功能 直到昨天为止都运行良好 今天 他们已经启用了 ssl 到服务器 即从 http 到 https 现在 当我运行测试计划时 出现以下错误 我该如何解决这个问题 尽管我在请求中将协议值更改为 https 但我收到以下
  • 如何在 VS 负载测试之前设置 JWT 令牌

    我正在尝试运行 Visual Studio 负载测试 但在运行之前 我必须调用登录 webAPI 来生成 JWT 令牌 然后在所有 webAPI Web 测试中使用此令牌 我只需要调用一次登录即可生成令牌 我的所有其他 webAPI 调用中
  • Azure 长响应时间瓶颈?

    如何诊断 Azure 中的性能 响应时间 瓶颈 我在 Azure 上有一个 NET Core 网站 其中包含一项 Web 应用服务和一个 SQL 数据库 我已经设置了负载测试并通过云部署它来访问网站 负载测试代理的配置属性是 4 cores
  • 如何通过 JMeter 中的 JDBC 采样器运行多个 MySQL 语句

    我在 JMeter 2 13 中使用 JDBC 采样器 我的 JMeter 采样器中有大约 100 个删除语句 如下所示 delete from abc where id gt Variable Name delete from qwe w
  • 如何测试 Angular 中的渲染速度

    我们正在构建一个 Angular 应用程序 并试图找出如何获得一些有关渲染各种页面所需时间的基准 我读过关于performance timing here https stackoverflow com questions 19579035
  • 网站性能测试:如何最好地估计计算机性能?

    我的网页中有一些浏览器密集型 CSS 和动画 我想确定用户是否拥有快速的 PC 以便我可以相应地缩放内容以提供最佳体验 我在用http Detectmobilebrowser com http detectmobilebrowser com
  • 静态块与静态方法 - 初始化静态字段

    出于好奇 我测量了静态块和静态方法初始值设定项之间的性能 首先 我在两个单独的 java 类中实现了上述方法 如下所示 First class Dummy static java util List
  • 如何使用 PyTest 对 Locust 执行负载测试?

    您认为使用 PyTest 执行负载测试有什么可能 例如 import locust class UsersTest locust TaskSet locust seq task 1 def api get task self self cl
  • Jmeter在执行过程中抛出“socketException:连接重置”错误

    我们要实现的目标是 500 个并发用户 我们尝试对 3 台机器上的 100 个用户进行测试 而且它运行得很好 没有任何错误 当我尝试使用相同数量的机器对 150 个或更多用户运行测试时 我开始收到以下响应代码 响应代码 非 Http 响应代
  • 使用数据库表作为 JMeter 的 CSV 数据集

    我目前正在使用 JMeter 对我公司的一个应用程序进行性能测试 该应用程序需要登录 我必须使用多个用户 在 JMeter 中通常完成此操作的方式似乎是通过 CSV 数据集 但是我可以访问数据库并可以直接从那里读取所有凭据 由于这是一个测试
  • 有哪些工具可以测试SQL语句的性能?

    在对性能永无休止的探索中 以及我自己的重击经历 我了解到一些可能会拖慢 SQL 语句性能的事情 强迫性子查询障碍进行疯狂的类型转换 并将它们嵌套到遗忘中 Group By 对所述疯狂类型转换的聚合函数fldID 所在位置 从我的 500 万
  • 如何在单台机器上运行 Locust 并进行多处理

    我希望 Locust 使用我电脑上的所有内核 我有很多 Locust 类 我想使用 Locust 作为库 我的代码示例 import gevent from locust env import Environment from locust
  • 与单进程场景​​相比,多进程场景中的访问时间意外缩短

    我正在从program1访问共享库 共享数组数据结构 并找到读取该数组的所有元素的访问时间 当只有 Program1 单独执行时 我得到了大约 17000 个时钟周期 现在 当我首先在另一个选项卡中执行program2 具有空的while循
  • list.count() 与 Counter() 性能

    在尝试查找字符串中一堆字符的频率时 为什么对 4 个不同的字符运行 string count character 4 次会比使用 collections Counter string 产生更快的执行时间 使用 time time 背景 给定
  • 更快的循环:foreach 与 some(jsperf 的性能与 Node 或 chrome 不同)

    将数组的值恢复为简单的最佳方法是什么true or false values 我很困惑 因为 jsperf 给了我VERY与 google chrome 控制台 nodejs 或任何其他 JS 引擎给我的结果不同 jsperf 片段在这里
  • PhantomJS CPU(核心)受限吗?

    我开始做一些基于并行浏览器的测试 并想看看在达到 100 CPU 之前我可以在 EC2 大型机器上并行运行多少个浏览器 我正在使用 JMeter webdriver 插件来实际运行浏览器 对于 FireFox 实际上每个 CPU 核心有 1
  • XPath JMeter 断言:错误“前缀必须解析为命名空间”

    我正在尝试使用JMeter XPath 断言 https jmeter apache org usermanual component reference html XPath Assertion使用 XPath 断言命令对标签值进行如下操
  • 哪里可以找到蝗虫原木?

    我正在使用 Locust 对我们的应用程序进行压力测试 我收到错误 因为 POST 调用似乎不正确 在哪里可以看到蝗虫的日志 我想看看邮寄电话是什么样子 看看出了什么问题 这是我的代码 以防有人可以告诉我我做错了什么 from locust

随机推荐

  • 是否可以通过 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 报告 为此 我