You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Gatling脚本中随机加载0-100编号的请求文件?

实现Gatling随机加载指定范围的请求文件

没问题,我来帮你搞定这个随机加载文件的需求!只需要对原脚本做一点修改,就能让每个虚拟用户随机选取0到100编号的请求文件,具体实现如下:

修改后的完整脚本

import java.text.DecimalFormat

// 定义格式化器,确保编号是4位带前导零的格式,和示例文件命名规则一致
val fileFormat = new DecimalFormat("0000")

val scn = scenario("newUser") 
  .exec(http("request_0") 
    .get("/wordpress/?page_id=83") 
    .headers(headers_0)) 
  .pause(1) 
  .exec(http("request_1") 
    .post("/wordpress/?page_id=83") 
    .headers(headers_1) 
    // 动态生成随机文件名:生成0-100的随机数→格式化为4位字符串→拼接文件名
    .body(RawFileBody(session => s"new_user_request_${fileFormat.format(session.randomInt(101))}.txt"))) 

setUp(scn.inject(atOnceUsers(100))).protocols(httpProtocol)

关键细节解释

  • 编号格式化:用DecimalFormat("0000")把随机生成的数字转换成4位带前导零的字符串,比如数字5会变成0005,完美匹配示例文件new_user_request_0001.txt的命名格式。
  • 随机数生成:session.randomInt(101)会生成0到100(包含两端)的随机整数——因为Gatling的randomInt(n)是左闭右开区间[0, n-1),所以传入101才能覆盖到100这个编号。
  • 动态文件名:通过RawFileBody的函数式写法,每个虚拟用户在执行请求时都会独立生成随机文件名,实现真正的随机加载。

注意事项

  • 请确保所有new_user_request_0000.txt到new_user_request_0100.txt文件都存放在Gatling的user-files/resources目录下(或你自定义的资源路径),否则会出现文件找不到的错误。
  • 如果你的编号范围是1到100而非0到100,只需要把session.randomInt(101)改成session.randomInt(100) + 1即可。

内容的提问来源于stack exchange,提问作者Luigi Izzo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:05:46