mirror of
https://github.com/httprunner/httprunner.git
synced 2026-09-06 16:07:45 +08:00
fix: improve Chinese character display in HTML reports
- Fix JSON serialization to preserve Chinese characters instead of Unicode escaping
- Use SetEscapeHTML(false) in toJSON template function
- Apply safeHTML to prevent HTML entity encoding of Chinese text
- Now displays {"text":"连了又连"} instead of {"text":"连了又连"}
This commit is contained in:
@@ -1 +1 @@
|
|||||||
v5.0.0-beta-2506080923
|
v5.0.0-beta-2506080929
|
||||||
|
|||||||
@@ -237,11 +237,18 @@ func (g *HTMLReportGenerator) GenerateReport(outputFile string) error {
|
|||||||
"encodeImageBase64": g.encodeImageToBase64,
|
"encodeImageBase64": g.encodeImageToBase64,
|
||||||
"getStepLogs": g.getStepLogsForTemplate,
|
"getStepLogs": g.getStepLogsForTemplate,
|
||||||
"safeHTML": func(s string) template.HTML { return template.HTML(s) },
|
"safeHTML": func(s string) template.HTML { return template.HTML(s) },
|
||||||
"toJSON": func(v interface{}) string { b, _ := json.Marshal(v); return string(b) },
|
"toJSON": func(v interface{}) string {
|
||||||
"mul": func(a, b float64) float64 { return a * b },
|
var buf strings.Builder
|
||||||
"add": func(a, b int) int { return a + b },
|
encoder := json.NewEncoder(&buf)
|
||||||
"base": filepath.Base,
|
encoder.SetEscapeHTML(false)
|
||||||
"index": func(m map[string]any, key string) interface{} { return m[key] },
|
_ = encoder.Encode(v)
|
||||||
|
result := buf.String()
|
||||||
|
return strings.TrimSpace(result)
|
||||||
|
},
|
||||||
|
"mul": func(a, b float64) float64 { return a * b },
|
||||||
|
"add": func(a, b int) int { return a + b },
|
||||||
|
"base": filepath.Base,
|
||||||
|
"index": func(m map[string]any, key string) interface{} { return m[key] },
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse template
|
// Parse template
|
||||||
@@ -1033,7 +1040,7 @@ const htmlTemplate = `<!DOCTYPE html>
|
|||||||
{{end}}
|
{{end}}
|
||||||
|
|
||||||
{{if $subAction.Arguments}}
|
{{if $subAction.Arguments}}
|
||||||
<div class="arguments">Arguments: {{toJSON $subAction.Arguments}}</div>
|
<div class="arguments">Arguments: {{safeHTML (toJSON $subAction.Arguments)}}</div>
|
||||||
{{end}}
|
{{end}}
|
||||||
|
|
||||||
{{if $subAction.Requests}}
|
{{if $subAction.Requests}}
|
||||||
@@ -1143,7 +1150,7 @@ const htmlTemplate = `<!DOCTYPE html>
|
|||||||
</div>
|
</div>
|
||||||
<div class="log-message">{{$logEntry.Message}}</div>
|
<div class="log-message">{{$logEntry.Message}}</div>
|
||||||
{{if $logEntry.Data}}
|
{{if $logEntry.Data}}
|
||||||
<div class="log-data">{{toJSON $logEntry.Data}}</div>
|
<div class="log-data">{{safeHTML (toJSON $logEntry.Data)}}</div>
|
||||||
{{end}}
|
{{end}}
|
||||||
</div>
|
</div>
|
||||||
{{end}}
|
{{end}}
|
||||||
|
|||||||
Reference in New Issue
Block a user