惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
Stack Overflow Blog
Stack Overflow Blog
人人都是产品经理
人人都是产品经理
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Y
Y Combinator Blog
The Cloudflare Blog
Last Week in AI
Last Week in AI
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
V
Visual Studio Blog
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
Google DeepMind News
Google DeepMind News
D
DataBreaches.Net
博客园 - 司徒正美
B
Blog RSS Feed
Microsoft Azure Blog
Microsoft Azure Blog
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
L
LangChain Blog

博客园 - 彪悍的代码不需要注释

虚拟机ftp安装 openclaw本地安装 Redhat服务器离线安装FTP 使用python脚本提取SVN近10年提交记录 本地VMware Workstation Pro的rhel-server-7.9-x86_64服务器配置本地源 敏感词过滤 限流 幂等性 Windows本地生成SSL证书,用于本地调试 【转】大文件上传原理及C#实现方案 【转】C# 实现接口幂等性的四种方案 WPF创建不规则窗体时WebBrowser控件不显示的问题 QrCode .NET之Kill -15 优雅退出 排查java代码慢-arthas工具 针对clickonce发布后的程序,优化处理省略弹出层 赔率 winform发布ClickOnce到Linux服务器 CentOS obs直播RTMP协议推流到Nginx流媒体服务器到VUE使用HLS直播
AI编写的离线压测工具
彪悍的代码不需要注释 · 2026-06-01 · via 博客园 - 彪悍的代码不需要注释

1. 参考Postmain,Apifox,Jmeter使用AI全自动编写的离线接口/抓包/录制/UI自动化测试/压力测试/压测报告输出的离线小工具。

2. 技术栈:net10.0, avalonia,freesql,sqllite

1. 项目管理

  1. 点击左侧 项目

  2. 点击新增按钮创建项目。

  3. 在表格中编辑 名称描述

  4. 项目会作为 接口录制压测UI 测试 的根节点。

项目列表会显示接口数、录制脚本数、压测脚本数。

2. 接口管理

点击左侧 接口 进入接口目录。接口树以项目为根节点,目录和接口都在项目下面维护。

常用操作:

  • 右键项目或目录,可以新增目录、新增 HTTP 接口、新增 Markdown、导入 Postman。

  • 右键接口,可以重命名、复制、移动、删除。

  • 接口可拖动到其他目录,也可以通过移动弹窗选择目标目录。

  • 树顶部搜索框支持按接口名称模糊查找。

新建 HTTP 接口后,右侧会打开接口页签。配置请求方法、URL、Params、Body、Headers、Cookies、Auth、前置操作、后置操作后,点击保存并输入接口名称。

3. 发送请求

  1. 打开接口页签。

  2. 选择请求方法,例如 GETPOST

  3. 输入请求地址。

  4. 配置 Params、Body、Headers、Cookies、Auth。

  5. 点击发送。

下方响应区显示响应头、响应内容、请求预览、HTTP 状态、耗时和大小。响应内容只临时显示在 UI,不保存到数据库。

4. Body 配置

Body 支持:

  • none

  • form-data

  • x-www-form-urlencoded

  • JSON

  • XML

  • Text

JSONXMLText 支持格式化、自动换行、行号。JSON 支持折叠和复制折叠段原始内容。格式错误时会高亮错误行并显示中文警告。

5. 前置操作

前置操作在请求发送前执行,适合等待指定毫秒数、生成变量、替换参数或处理请求数据。

常用写法:

set("token", "xxx")
variables.userId = "admin"

生成的变量可以在 URL、Params、Headers、Cookies、Body 中通过 {{变量名}} 使用。

6. 后置操作

后置操作在响应返回后执行,包含等待、JS 脚本、断言、提取变量。

断言可检查响应文本、JSON、XML、Header、Cookie、HTTP 状态码、耗时等。提取变量后,后续接口可通过 {{变量名}} 复用。

7. 录制

点击左侧 录制

录制分为:

  • 单次接口录制:类似抓包,记录浏览器操作过程中产生的 HTTP 请求。

  • UI 操作录制:只记录纯 UI 操作,用于后续 UI 自动化回放。

录制完成后,接口记录可以另存为接口或压测接口;UI 操作录制可以另存为 UI 测试。

8. 压测

点击左侧 压测。压测以项目为根节点,下面包含压测场景和压测接口。可以手动新增压测接口,也可以从接口或录制数据中导入。

压测场景右键菜单支持添加组件:

  • 定时器:每次请求发送前增加固定等待和随机等待,会按接口所在路径参与压测执行。

  • 控制器:用于组织接口和定时器,接口可以放到控制器下面统一管理;支持顺序、随机、百分比、吞吐量执行和控制器内循环次数。

  • 共享配置:用于配置当前路径下接口继承的 Header/Cookie。接口自身同名 Header/Cookie 会覆盖共享值。

压测场景支持:

  • 并发线程数

  • Ramp-Up 秒数

  • 持续时间秒数

  • 循环次数,-1 表示按持续时间运行

  • 错误后继续

  • 保存响应体

  • 执行模式:顺序、随机

  • 失败数阈值

  • 成功率阈值

  • 采样显示行数

  • 超时秒数

  • 思考时间毫秒

  • Keep-Alive

  • 跟随重定向

  • CSV 数据源

失败数阈值或成功率阈值触发后会自动停止压测。

CSV / Excel 数据参数化

在线程组的 场景默认值 中可以启用数据源。支持:

  • CSV 文件

  • Excel .xlsx 文件的第一个 Sheet

第一行必须是列名,例如:

userId,password
admin,123456
operator,abcdef

可以点击 选择 打开文件选择窗口,点击 预览 查看前 20 行数据。请求 URL、Params、Headers、Cookies、Body、Auth 和脚本变量中可以使用:

{{userId}}
{{password}}

取数方式:

  • 顺序循环:按行顺序取数,取完后从第一行继续。

  • 按虚拟用户:每个虚拟用户固定使用一行数据。

  • 随机:每次请求随机取一行。

压测组件模板

压测接口提供内置模板和自定义模板。

内置 Header 模板:

  • JSON Header

  • Bearer + Trace

  • 链路追踪

  • 缓存/连接

内置断言模板:

  • HTTP 200

  • JSON code=0

  • Body success

  • 耗时<1000ms

  • 接口基础校验

内置提取变量模板:

  • JSON data.id

  • Token

  • Trace Header

  • SESSION Cookie

  • 正则 ID

自定义模板:

  1. 在 Header、断言或提取变量页签中配置当前内容。

  2. 输入模板名称。

  3. 点击 保存模板

  4. 后续在下拉框选择模板,点击 应用 即可复用。

  5. 不再需要的模板可点击 删除

自定义模板保存到 SQLite 数据库,重启软件后仍可使用。

运行报告

启动压测后会自动切到 运行报告 页。

运行报告包含:

  • 状态、开始时间、运行时长

  • 进度条

  • 虚拟用户总数、活跃用户、完成用户

  • 总请求、成功率、失败、平均耗时、P50、P90、P95、P99、RPS、响应大小和接收流量

  • 控制器统计:命中、跳过、请求数、吞吐等待次数和等待耗时

  • HTTP 状态码分布

  • 接口聚合统计

  • 请求采样明细

  • 趋势图:RPS、P95、错误率、活跃用户

  • HTML 报告中的指标口径说明:成功率、错误率、百分位耗时、RPS、响应大小、接收流量和 SLA 结论

报告支持:

  • 只查看失败采样

  • 清空当前报告

  • 导出正式 HTML 压测报告,并同时生成 CSV 明细

  • 自动保存最近 20 次历史报告

  • 从历史报告下拉框加载或删除历史记录

CSV 报告导出到:

Data\LoadTestReports

9. 设置

点击左侧 设置,可配置请求地址、全局 Token、全局 Cookie、录制代理、压测默认配置、数据库配置、界面皮肤和界面语言。

设置保存后会写入 SQLite 数据库。

10. 数据保存

系统数据使用 SQLite 保存,主要包括:

  • 项目

  • 接口树和接口配置

  • 录制数据

  • 压测场景

  • 压测自定义模板

  • 压测历史报告

  • 系统设置

接口发送结果和压测运行结果只临时显示在 UI,不保存到数据库。

截图如下:

1. 项目管理

image

 2. 接口管理

image

image

image

image

 3. 录制接口以及录制UI

image

image

 4. UI测试(自动化)

image

 5. 压测

image

image

image

image

image

image

image

 压测报告:

image

image

image

image

 6. 设置

image

image

image

image

image

注:需要软件跟代码的可以私信我。