golang从Chrome/Firefox网络检查生成PlantUML图表插件hoofli的使用

hoofli - 从Chrome/Firefox网络检查生成PlantUML图表

hoofli是一个Golang工具,可以从Chrome或Firefox的网络检查数据生成PlantUML格式的图表。

安装

使用以下命令安装hoofli:

$ go install github.com/dnnrly/hoofli/cmd/hoofli

使用说明

该工具读取存储在本地磁盘上的浏览器HAR文件,并将它们转换为PlantUML格式的文件。你需要从PlantUML官网下载PlantUML或使用你选择的包管理工具安装。

运行测试

单元测试

$ make test

验收测试

$ make deps
$ make build acceptance-test

重要的make目标

  • install - 从当前工作树安装hoofli
  • build - 构建hoofli
  • clean - 从工作树中移除构建产物
  • clean-deps - 移除工作树中的依赖项
  • test-deps - CI目标 - 安装测试依赖项
  • build-deps - CI目标 - 安装构建依赖项
  • deps - CI目标 - 安装构建和测试依赖项
  • test - 运行单元测试并使用tparse美化输出
  • acceptance-test - 对构建的hoofli运行验收测试
  • ci-test - CI目标 - 运行单元测试
  • lint - 运行代码检查
  • release - CI目标 - 发布hoofli
  • update - 更新依赖项
  • help - 显示帮助信息

示例用法

以下是一个完整的示例,展示如何使用hoofli从HAR文件生成PlantUML图表:

package main

import (
	"fmt"
	"os"
	
	"github.com/dnnrly/hoofli/pkg/har"
	"github.com/dnnrly/hoofli/pkg/plantuml"
)

func main() {
	// 读取HAR文件
	harFile, err := os.Open("example.har")
	if err != nil {
		fmt.Printf("Error opening HAR file: %v\n", err)
		os.Exit(1)
	}
	defer harFile.Close()

	// 解析HAR文件
	harData, err := har.Parse(harFile)
	if err != nil {
		fmt.Printf("Error parsing HAR file: %v\n", err)
		os.Exit(1)
	}

	// 生成PlantUML图表
	puml := plantuml.Generate(harData)
	
	// 输出或保存PlantUML代码
	fmt.Println(puml)
	
	// 也可以保存到文件
	err = os.WriteFile("diagram.puml", []byte(puml), 0644)
	if err != nil {
		fmt.Printf("Error writing PlantUML file: %v\n", err)
		os.Exit(1)
	}
	
	fmt.Println("PlantUML diagram generated successfully!")
}

贡献

请阅读CONTRIBUTING.md了解我们的行为准则以及向我们提交拉取请求的流程。

版本控制

我们使用SemVer进行版本控制。有关可用版本,请查看仓库中的标签。

作者

  • Pascal Dennerly - 初始工作 - dnnrly

许可证

该项目采用Apache 2.0许可证 - 详见LICENSE文件。


更多关于golang从Chrome/Firefox网络检查生成PlantUML图表插件hoofli的使用的实战教程也可以访问 https://www.itying.com/category-94-b0.html

1 回复

更多关于golang从Chrome/Firefox网络检查生成PlantUML图表插件hoofli的使用的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


使用hoofli从Chrome/Firefox网络检查生成PlantUML图表

hoofli是一个实用的工具,它可以将Chrome/Firefox开发者工具中的网络请求数据转换为PlantUML序列图,帮助开发者可视化分析Web应用的请求流程。

安装hoofli

首先需要安装hoofli工具:

go install github.com/digitalocean/hoofli@latest

基本使用方法

1. 从浏览器导出HAR文件

  1. 在Chrome/Firefox中打开开发者工具(F12)
  2. 切换到"Network"选项卡
  3. 进行页面操作(加载页面、点击按钮等)
  4. 右键点击网络请求列表,选择"Save as HAR with content"

2. 使用hoofli生成PlantUML

hoofli -har yourfile.har -out diagram.puml

这会生成一个PlantUML文件,你可以使用PlantUML工具或在线查看器渲染它。

高级用法示例

过滤特定请求

package main

import (
	"log"
	"os"
	
	"github.com/digitalocean/hoofli"
)

func main() {
	// 读取HAR文件
	harData, err := os.ReadFile("network.har")
	if err != nil {
		log.Fatal(err)
	}
	
	// 创建hoofli解析器
	parser, err := hoofli.NewParserFromHAR(harData)
	if err != nil {
		log.Fatal(err)
	}
	
	// 设置过滤条件 - 只包含API请求
	filter := hoofli.Filter{
		URLPattern: "/api/*",
	}
	
	// 生成PlantUML
	plantUML, err := parser.ToPlantUML(filter)
	if err != nil {
		log.Fatal(err)
	}
	
	// 保存到文件
	err = os.WriteFile("api_sequence.puml", []byte(plantUML), 0644)
	if err != nil {
		log.Fatal(err)
	}
}

自定义输出格式

# 只显示请求方法
hoofli -har yourfile.har -show-method

# 显示请求和响应头
hoofli -har yourfile.har -show-headers

# 组合多个选项
hoofli -har yourfile.har -show-method -show-status -out custom.puml

集成到开发流程

你可以将hoofli集成到自动化测试中,自动生成请求序列图:

package main

import (
	"fmt"
	"os/exec"
	"testing"
)

func TestAPIFlow(t *testing.T) {
	// 运行测试前启动Chrome并记录HAR
	// 测试代码...
	
	// 测试完成后生成PlantUML
	cmd := exec.Command("hoofli", "-har", "test_har.har", "-out", "test_flow.puml")
	err := cmd.Run()
	if err != nil {
		t.Errorf("Failed to generate PlantUML: %v", err)
	}
	
	fmt.Println("API flow diagram generated: test_flow.puml")
}

可视化结果

生成的PlantUML文件可以使用以下方式查看:

  1. 使用PlantUML官方工具:https://plantuml.com/
  2. 使用VS Code插件:PlantUML
  3. 使用在线查看器:https://www.planttext.com/

实际应用场景

  1. API文档:自动生成API调用序列图
  2. 性能分析:可视化请求瀑布图,识别瓶颈
  3. 调试:理解复杂的前后端交互流程
  4. 测试验证:确保测试覆盖了所有关键请求路径

hoofli是一个轻量级但功能强大的工具,特别适合需要分析和文档化Web应用请求流程的开发者和架构师。

回到顶部