AI编写的离线压测工具

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

 

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

 

posted @ 2026-06-01 13:59  彪悍的代码不需要注释  阅读(121)  评论(0)    收藏  举报