compare

package
v0.1.0-alpha.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 26, 2026 License: MulanPSL-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package compare 实现 pulse 测试结果对比功能

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ValidateConsistency

func ValidateConsistency(base, cand *Report) error

ValidateConsistency 验证两个报告的一致性

Types

type Assessment

type Assessment struct {
	Stability         string `json:"stability"`
	SimilarityOverall string `json:"similarity_overall"`
	Summary           string `json:"summary"`
}

Assessment 表示评估结论

func CalculateAssessment

func CalculateAssessment(baseMetrics, candMetrics Metrics, similarity Similarity) Assessment

CalculateAssessment 计算评估结论

type CompareResult

type CompareResult struct {
	Schema               string               `json:"schema"`
	BaselineFile         string               `json:"baseline_file"`
	CandidateFile        string               `json:"candidate_file"`
	Session              SessionMetrics       `json:"session"`
	TimeSeriesSimilarity TimeSeriesSimilarity `json:"time_series_similarity"`
	Assessment           Assessment           `json:"assessment"`
}

CompareResult 表示比较结果

func Run

func Run(baselinePath, candidatePath, outputJSONPath string, humanWriter io.Writer) (*CompareResult, error)

Run 执行比较操作

type DataLine

type DataLine struct {
	Delay1Ms float64
	Loss1Pct float64
	BW1Mbps  float64
	Delay2Ms float64
	Loss2Pct float64
	BW2Mbps  float64
}

DataLine 表示 report.txt 中的一行数据

type MetricDelta

type MetricDelta struct {
	Baseline  float64 `json:"baseline"`
	Candidate float64 `json:"candidate"`
	DeltaAbs  float64 `json:"delta_abs"`
}

MetricDelta 表示指标变化

type Metrics

type Metrics struct {
	UL struct {
		DelayAvgMs     float64
		LossAvgPct     float64
		GoodputAvgMbps float64
	}
	DL struct {
		DelayAvgMs     float64
		LossAvgPct     float64
		GoodputAvgMbps float64
	}
}

Metrics 表示计算的指标

func CalculateMetrics

func CalculateMetrics(r *Report) Metrics

CalculateMetrics 计算整场指标

type Report

type Report struct {
	TestName    string
	DurationSec float64
	StartTime   string
	EndTime     string
	IntervalSec float64
	PacketSize  int
	Contents    string
	Data        []DataLine
}

Report 表示解析后的 report.txt 文件

func ParseReportFile

func ParseReportFile(path string) (*Report, error)

ParseReportFile 解析 report.txt 文件

type SessionMetrics

type SessionMetrics struct {
	UL struct {
		DelayAvgMs     MetricDelta `json:"delay_avg_ms"`
		LossAvgPct     MetricDelta `json:"loss_avg_pct"`
		GoodputAvgMbps MetricDelta `json:"goodput_avg_mbps"`
	} `json:"ul"`
	DL struct {
		DelayAvgMs     MetricDelta `json:"delay_avg_ms"`
		LossAvgPct     MetricDelta `json:"loss_avg_pct"`
		GoodputAvgMbps MetricDelta `json:"goodput_avg_mbps"`
	} `json:"dl"`
}

SessionMetrics 表示会话指标

type Similarity

type Similarity struct {
	UL struct {
		Delay struct {
			Pearson float64
			RMSEPct float64
			Level   string
		}
		Loss struct {
			Pearson float64
			RMSEPct float64
			Level   string
		}
		Goodput struct {
			Pearson float64
			RMSEPct float64
			Level   string
		}
	}
	DL struct {
		Delay struct {
			Pearson float64
			RMSEPct float64
			Level   string
		}
		Loss struct {
			Pearson float64
			RMSEPct float64
			Level   string
		}
		Goodput struct {
			Pearson float64
			RMSEPct float64
			Level   string
		}
	}
	Overall string
}

Similarity 表示时间序列相似度

func CalculateSimilarity

func CalculateSimilarity(base, cand *Report) Similarity

CalculateSimilarity 计算时间序列相似度

type SimilarityMetric

type SimilarityMetric struct {
	Pearson float64 `json:"pearson"`
	RMSEPct float64 `json:"rmse_pct"`
	Level   string  `json:"level"`
}

SimilarityMetric 表示相似度指标

type TimeSeriesSimilarity

type TimeSeriesSimilarity struct {
	UL struct {
		Delay   SimilarityMetric `json:"delay"`
		Loss    SimilarityMetric `json:"loss"`
		Goodput SimilarityMetric `json:"goodput"`
	} `json:"ul"`
	DL struct {
		Delay   SimilarityMetric `json:"delay"`
		Loss    SimilarityMetric `json:"loss"`
		Goodput SimilarityMetric `json:"goodput"`
	} `json:"dl"`
}

TimeSeriesSimilarity 表示时间序列相似度

Source Files

  • compare.go

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL