Skip to main content

BSOD-Analyzer

背景

为方便PA针对BSOD现象快速定位问题根源,节省PA/SA Team对接的工作量,同时统一归纳测试期间产生的BSOD Dump文件,BSOD Analyzer WebApp可以自动化执行上传、存储、分析、AI总结、E-Mail提醒等功能。可以大幅缩短PA/SA Team的Debug所用时间。

功能

  • Dump上传
    填写上传人的 ITCode 和简单描述,选择要上传的 Dump 文件,点击 "Submit" 即可完成上传。

  • 存储
    上传后的 Dump 文件将根据 ITCode 和上传时间自动分类归档存储在服务器端。存储路径可自定义设置。

  • 分析
    上传完成后,后台将自动进行 Dump 文件的分析,并生成一个 txt 文件,保存于 Dump 文件所在路径的文件夹中。

  • AI提取
    分析完成的 txt 结果将提交给 AI 进行进一步分析,生成一份 HTML 格式的报告(当前使用 ChatGPT,未来可更换为本地模型)。

  • E-Mail提醒
    后端程序会将生成的 HTML 格式分析报告作为邮件正文,发送到提交人 ITCode 的邮箱中。

  • 记录查看
    所有步骤完成后,可以在主页面的提交记录详情中查看分析过程中产生的所有文件。

技术栈

  • 前端:React
  • 后端:Nodejs
  • 数据库:MongoDB

环境要求

  • Node.js 20+
  • Python 3.11+

安装

# 拉取项目文件
git clone https://github.com/ltycn/LNVPE-BSOD.git

cd LNVPE-BSOD

# 安装python依赖
pip install requirements.txt

# 启动后端程序
cd server
node server.js

# 启动前端
npm start

截图

RESTAPI使用

概述

该 API 用于向服务器提交一个包含提交者信息、描述和文件的表单。

  • API URL: http://localhost:3000/api/submissions
  • 方法: POST
  • 请求格式: multipart/form-data

请求参数

参数名类型描述是否必需
submitterstringITCode
descriptionstring提交内容的描述
filefile (binary)需要上传的文件

请求示例

使用 Postman 或类似工具发送请求时,可以按照以下方式构建请求:

  • URL: http://localhost:3000/api/submissions
  • 方法: POST
  • 请求头: Content-Type: multipart/form-data
  • 请求体:
{
"submitter": "liuty24",
"description": "testpostman",
"file": "<file>"
}

Curl 示例

curl -X POST http://localhost:3000/api/submissions \
-F "submitter=liuty24" \
-F "description=testpostman" \
-F "file=@/path/to/your/file"

响应格式

成功响应

成功的请求将返回一个 JSON 响应,包含提交的详细信息。

{
"submitter": "liuty24",
"description": "testpostman",
"file": "uploads\\liuty24\\240731165850\\MEMORY.DMP",
"timestamp": "2024-07-31T08:58:50.841Z",
"_id": "66a9fccabbf27a95144f1730",
"__v": 0
}

错误响应

如果请求失败,服务器将返回一个 JSON 错误响应。

{
"error": "Submission failed"
}