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

如何在Tsung 1.7中利用动态变量自定义输出指定日志内容

当然可以实现这个需求!

Tsung 1.7完全支持通过动态变量提取响应内容,并将自定义数据写入外部日志文件,下面是具体的实现步骤:

1. 提取响应中的目标数据

首先,你需要在HTTP请求的配置中,用<dyn_variable>标签结合正则表达式,分别提取响应里的时间戳和JSON的result字段值:

<request>
  <http url="/your-api-endpoint" method="POST" version="1.1">
    <!-- 这里放你的请求体,比如对应的JSON-RPC请求内容 -->
    <body content_type="application/json">{"jsonrpc":"2.0","method":"your-method","params":[],"id":1}</body>
  </http>
  <!-- 提取Recv后面的时间戳 -->
  <dyn_variable name="recv_timestamp" regex="Recv:([0-9]+\.[0-9]+):" />
  <!-- 提取JSON中的result字段值 -->
  <dyn_variable name="json_result" regex='"result":"([^"]+)"' />
</request>
  • recv_timestamp变量会捕获响应开头的时间戳(比如1559218599.939782);
  • json_result变量会捕获JSON里result对应的十六进制字符串值。

2. 将提取的数据写入外部日志

接下来,在请求之后添加一个<action>动作,用Tsung的自定义日志功能把变量值写入指定文件:

<session name="jsonrpc-test" probability="100" type="ts_http">
  <!-- 上面的请求配置放在这里 -->
  <request>
    <!-- ... 你的请求和动态变量定义 ... -->
  </request>
  
  <!-- 自定义日志动作 -->
  <action name="log-custom-data">
    <log level="custom" category="custom_result_log" file="/absolute/path/to/your/custom.log">
      <message format="tsung">${recv_timestamp},${json_result}</message>
    </log>
  </action>
</session>

3. 全局配置日志文件

最后,在Tsung配置的根<tsung>标签下,添加全局日志文件的配置,确保Tsung能正确输出自定义日志:

<tsung loglevel="notice" version="1.0">
  <!-- 其他全局配置(比如服务器、用户数等) -->
  
  <!-- 配置自定义日志文件 -->
  <logfile name="/absolute/path/to/your/custom.log" level="custom" />
</tsung>

注意事项

  • 确保Tsung进程有目标日志文件的写入权限,路径最好用绝对路径避免问题;
  • 如果响应格式有变化,需要调整正则表达式以匹配新的格式;
  • 动态变量的作用域是当前session,所以如果在多个请求中需要复用,要注意变量的覆盖问题。

这样运行Tsung后,custom.log文件里就会每行记录一个请求的时间戳和对应的result值啦。

内容的提问来源于stack exchange,提问作者Stefano De Angelis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:48:18