Case Generator 平台升级

一次把"能用"打磨成"好用"的 20+ 项改进

今天对测试平台做了一轮集中升级,覆盖接口断言、监控运维、AI 生成、站内消息、Web/App 录制体验等。下面是本次改动清单。

一、接口测试:断言更强大、更统一

  • JSON 路径断言会"取值比较"了:支持 $.data.id=123 这种写法,先按路径提取值再比较;只填路径则判断是否存在。
  • 新增「全 JSON 对比」:把整个响应 JSON 和期望 JSON 递归对比,还支持忽略指定路径(如 .data.token、.timestamp),不一致时直接告诉你差异在哪。
  • 断言逻辑统一:手动接口测试、场景执行、报告展示用同一套求值逻辑,行为一致。

接口断言:JSON 路径取值比较 + 全 JSON 对比(可忽略路径)

二、系统监控与运维

  • 登录监控:登录日志(成功/失败、IP、UA、时间)、在线用户与会话、强制下线、异常告警(暴力破解、异地登录),并支持 IP 归属地。
  • 服务器状态:CPU/内存/磁盘/运行时长/进程、数据库/Redis/Channels 连接状态、执行节点探活与延迟。
  • 操作日志管理:记录谁在什么时候打开了哪个菜单、执行了哪些动作、发了哪些请求;支持筛选、分页、导出 CSV 与自动清理。
  • 性能优化:ASGI 下把外部调用与日志写库移到后台线程,避免阻塞请求线程。

登录监控:登录日志 / 在线用户 / 异常告警 / IP 归属地

服务器状态:本机资源 / 服务状态 / 执行节点探活

日志管理:菜单访问 / 执行动作 / 请求审计,支持筛选与导出

三、AI 生成:更稳、更贴心

  • 支持自定义接口地址:OPENAI_BASE_URL 可指向 DeepSeek / 智谱 / 硅基流动 等兼容接口。
  • 容错更强:不规范字段自动归一化;markdown 围栏、前后缀文本、尾随逗号、被截断的 JSON 都能尽力解析。
  • 脚本生成更可靠:脚本改为"直接返回源码",避免长代码被 JSON 截断。
  • 排障更容易:新增 LLM 请求/响应日志,任务详情页「查看日志」面板可直接看应用日志。
  • 中文友好:生成的测试用例用中文,脚本注释用中文(代码与标识符保持英文)。

四、站内消息与公告

  • 用户之间可发私信,管理员可发公告;顶栏铃铛 + 未读红点,通过 WebSocket 实时推送。
  • 支持图片、表情、附件;提示统一为顶部 Toast,更清爽。

站内消息:私信 / 公告 / 未读红点,支持图片表情附件

五、Web / App 录制体验大升级

  • 画面交互录制:直接在浏览器/设备截图上点击、按住拖动(滑动)、输入,即可录制成动作。
  • 浏览器控制按钮:录制栏新增 返回 / 前进 / 刷新 / 切换标签,无头或远程浏览器也能驱动页面。
  • 放大窗口:可移动、可缩放、等比缩放(适应 / - / +),放大后坐标换算依旧准确。
  • 动作类型可选:录制栏「动作」下拉(自动 / 点击 / 输入);双击已录制项还能修改动作类型。
  • Selenium 支持真实鼠标拖动:进度条、滑块、滚动条拖动都可用。
  • 按元素类型判断:只有真正的输入类控件才记「输入」,其余记「点击」。
  • 细节修复:刷新截图三种模式都生效;App 新增「唤醒屏幕」与黑屏提示;兼容 saucedemo 等页面导航导致的识别失败(自动重试)。

Web 录制:画面点击/拖动/输入 + 返回/前进/刷新/切换标签 + 放大

App 录制:设备截图放大 + 待输入文本 + 唤醒屏幕

六、界面与体验细节

  • 登录页与多个页面适配移动端。
  • 上传按钮美化(新建生成的需求文件、头像上传)。
  • 日志字体颜色优化,深色底上更清晰;修复下拉框三角箭头压住文字的问题。

登录页移动端适配

七、部署与运维脚本

  • run.sh 支持后台运行(nohup),并提供 stop / restart / status。
  • 新增 cleanup_browsers 命令,一键清理残留的自动化浏览器进程。
  • CentOS 7 提示:Playwright 需要 glibc≥2.27,无法运行时会明确提示改用 Selenium 或派发到执行节点。

小结

本次改动已全部提交到 Gitee。核心思路是两点:更可靠(边界情况下不再轻易失败,失败也给出可操作提示)、更好用(监控、消息、录制画面交互、移动端适配)。

后续会继续围绕录制稳定性、执行节点体验、报告可读性打磨。有问题欢迎留言反馈。公众号 测试技术驿站

相关推荐
RobinDevNotes1 小时前
用 Profile 揪出大模型训练性能瓶颈
python·性能优化
李航19831 小时前
用 DeepDraw 几何引擎开发建筑设计软件(六):创建画线工具
python·软件构建
AI 编程助手GPT1 小时前
Python 备份 SQLite:为什么复制了 .db,恢复后还是少数据?
人工智能·python·ai·chatgpt
狗都不学爬虫_1 小时前
AI逆向 - 天御无感点击验证(补+纯)
爬虫·python·网络爬虫
机核研创社1 小时前
HN 慧拿 HN-06 全自动上橡筋机|圆筒扩张结构与三针五线绷缝原理
人工智能·自动化
柒儿吖1 小时前
SSCom 重构全记录:用 Rust 把串口调试助手送上鸿蒙 PC、macOS、Windows和Linux
测试工具·rust·harmonyos
529宝宝起名网2 小时前
用 Python 开发历史名字查询与起名灵感工具:从古籍人物数据库到名字文化故事生成
开发语言·前端·python
用户298698530142 小时前
Python 将 HTML 转换为 Word 文档的实践指南
python·html·api
维克兜率天2 小时前
【维克】模块3总结:从一行空数据,到一个能跑的模型
python·深度学习·算法