问题标签 [scala-gatling]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - 通过扩展 Gatling 自定义 DSL:如何使用 Scala?
我们正在使用 Gatling 对我们的应用程序进行负载测试(效果很好)。我们正在尝试通过对 Gatling 类进行可组合扩展来干掉一些代码(如ScenarioBuilder
/ ChainBuilder
/ 等,见io.gatling.core.structure
)。
这是我们的一个场景的示例:
我们想做的是开始制作一些可组合的,以便我们可以在其他场景中重复使用它们。像这样的东西:
全面披露; 我对 Scala 不是很熟悉。这行得通,但问题uploadFor
在于此时它正在使用 a ChainBuilder
vs. a ScenarioBuilder
。
我想
哦,简单!只需使用泛型!
除了我不能让它工作:(它看起来像大多数,extend StructureBuilder[T]
但我似乎无法定义一个通用定义,我可以WhateverScenarios
在任何上下文中使用 my StructureBuilder[T]
。
提前感谢您提供的任何信息。
scala - 加特林令牌刷新心跳
我正在尝试模仿定期令牌刷新。我们的前端中有 JavaScript 代码,它会定期检查是否需要刷新令牌,如果需要,则发出刷新令牌的调用。只要有人在使用该应用程序,它就会每隔几分钟左右运行一次。
我们应用程序的典型用户会在超过令牌生命周期的时间内打开应用程序而不对其进行任何操作。所以我不能简单地检查并在每次调用上执行令牌刷新而不调整脚本以不模仿现实生活中的用法(因为调用需要更频繁地发生)。
任何想法是否或如何可能?
load-testing - Gatling:是否可以像用户一样升级单个场景?
考虑一个使用 Gatling 测试 API 的示例。对于一些奇怪的要求,我必须为每个用户获取一个场景
我在此列表中添加了很多场景,因为我的请求正文应该因每个用户而异,否则请求将不会被处理。此时,这些单独的场景配置了以下加特林模拟
现在在如下全局设置中调用所有这些场景
假设我有 1000 个用户(scenarioList
大小为 1000),这里的问题是所有 1000 个用户都将同时启动,但我想增加这些用户。所以问题在于增加场景而不是并行运行它们。
这可能吗 ?如果没有,还有其他方法可以遵循吗?随着请求主体的变化,我不能奢侈地与多个用户一起运行相同的场景。请告诉我。
load-testing - 使用 Gatlin 负载测试,请求如何被归类为“KO”?
我正在使用https://gatling.io对应用程序进行负载测试。我非常感谢该工具的默认报告。搜索文档后,我不清楚特定请求是如何归类为“KO”的。(或者不行)
我们目前正在使用 Gatlin 的所有默认设置。
我们怀疑请求需要在检查 gatling.conf 后 10 秒内做出响应。
这个假设正确吗?
gatling - 仅在检查成功时才调用函数?
仅当响应返回字符串“成功”时,我才想将会话属性写入文件。
我正在尝试这样做:
我看到这不像 IDE 所说的那样有效。有没有办法根据响应检查的结果调用函数?
scala - 加特林 checkIf 语法
旧版应用程序具有以下有效的 Gatling 测试
我需要将其更改为状态为 200,在这种情况下,它会检查 jsonnode ID 是否存在(就像上面一样),或者状态为 401,在这种情况下,它会检查 jsonnode 描述是否存在。任何其他状态都应导致失败。
这是我到目前为止所拥有的,但它似乎没有按预期工作,因为 Gatling 会考虑所有响应失败,即使是 ID 为 200 且描述为 401 的响应失败。
我查看了文档并在网上搜索,但无法找出实现我想要的正确方法,因此在这里询问。
gatling - Gatling2 未能正确使用用户会话
我希望有人能指出我正确的方向!我尝试运行一个场景,该场景有几个步骤必须按顺序执行,每个步骤都具有相同的用户会话才能正常工作。下面的代码适用于一个用户,但如果我使用 2 个或更多用户则失败......我做错了什么?
所以我确实添加了两种无法按预期工作的方法。在第一部分中,我尝试通过 check(jsonPath("$").saveAs("oauthToken")) 获取令牌并存储在会话中,在第二个调用中,我尝试使用 val tokenString = session.get 读取该令牌("oauthToken").as[String] 失败,但表示会话中没有该密钥的条目...
gatling - 如果尝试处理来自 csv 数据馈送的多行,总是得到错误“未定义名为‘name’的属性”
在我的测试脚本中,我尝试通过以下语句 处理100
来自数据馈送的行数据:csv
但我总是得到一个错误:
你能帮我找出根本原因吗?谢谢你。
这是脚本:
test_data.csv 中的数据是:
顺便说一句,如果我只处理1
线,它工作得很好。
gatling - 如何从加特林的参数化模拟中获取每个场景的报告?
我正在尝试测试一个在内部根据输入执行不同操作的 API:
- 国家
- 顾客
- 物品数量
以下模拟是我想出的:
这是使用 maven 插件运行的(并使用 gatling 插件在 jenkins 中进行跟踪),但这会导致单个跟踪案例:Pricing
. 这是没有用的,因为即使项目数量也将接近响应时间的线性增加。
具有每种场景类型的simulation.log
数据,但开箱即用的报告将其作为单一类型的查询处理,并将所有结果合并到一个图表中,这意味着无法查看某个组合是否会导致峰值计算或数据错误。
我想为每个组合获取单独的指标,因此很容易看到例如 API 中的代码或数据更改导致Pricing-(US,TYPE1,50)
场景中的延迟峰值。
用加特林实现这一目标的惯用方式是什么?我不想为每种情况创建模拟,因为这将是管理的一场噩梦(我们正在努力实现使用 jmeter 摆脱手动管理的数据和詹金斯作业)。
influxdb - Gatling 不使用石墨协议将指标发送到 InfluxDB
我按照BlazeMeter 文章使用 Grafana 和 InfluxDB 监控 Gatling 测试,但没有数据发送到 InfluxDB,也没有任何名为“graphite”的数据库。InfluxDB 启动并监听端口:2003。这是来自 InfluxDB 的日志:
我将gatling.conf
字段设置为:
gatling.conf
位于src/test/resources
文件夹中,我通过调试确保 Gatling 加载了此配置文件。
我错过了什么?