mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-11 18:11:21 +08:00
- Fix JSON extraction logic by prioritizing brace counting method - Add support for DOUBAO string array coordinate format - Introduce IS_UI_TARS helper function for model type checking - Add comprehensive tests for JSON parsing and coordinate handling - Improve error handling with retry delays for LLM service failures
80 lines
1.6 KiB
Go
80 lines
1.6 KiB
Go
package ai
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestExtractJSONFromContent(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
input string
|
|
expected string
|
|
}{
|
|
{
|
|
name: "valid JSON",
|
|
input: `{"content": "test", "thought": "test"}`,
|
|
expected: `{"content": "test", "thought": "test"}`,
|
|
},
|
|
{
|
|
name: "JSON in markdown",
|
|
input: "```json\n{\n \"content\": \"test\"\n}\n```",
|
|
expected: `{
|
|
"content": "test"
|
|
}`,
|
|
},
|
|
{
|
|
name: "incomplete JSON without closing brace",
|
|
input: `{"content": "incomplete json"`,
|
|
expected: "",
|
|
},
|
|
{
|
|
name: "incomplete JSON with missing closing brace",
|
|
input: `{"content": "incomplete json", "missing_closing_brace": true`,
|
|
expected: "",
|
|
},
|
|
{
|
|
name: "plain text",
|
|
input: "This is just plain text",
|
|
expected: "",
|
|
},
|
|
{
|
|
name: "complex nested JSON with arrays",
|
|
input: `{
|
|
"actions": [
|
|
{
|
|
"action_type": "click",
|
|
"action_inputs": {
|
|
"start_box": [371, 235, 425, 270]
|
|
}
|
|
}
|
|
],
|
|
"thought": "点击桌面上的抖音应用图标以启动抖音",
|
|
"error": null
|
|
}`,
|
|
expected: `{
|
|
"actions": [
|
|
{
|
|
"action_type": "click",
|
|
"action_inputs": {
|
|
"start_box": [371, 235, 425, 270]
|
|
}
|
|
}
|
|
],
|
|
"thought": "点击桌面上的抖音应用图标以启动抖音",
|
|
"error": null
|
|
}`,
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
result := extractJSONFromContent(tt.input)
|
|
t.Logf("Input: %s", tt.input)
|
|
t.Logf("Output: %s", result)
|
|
assert.Equal(t, tt.expected, result)
|
|
})
|
|
}
|
|
}
|