Files
httprunner/examples/game/2048/main_test.go
2025-06-25 20:17:27 +08:00

44 lines
2.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package game_2048
import (
"testing"
hrp "github.com/httprunner/httprunner/v5"
"github.com/httprunner/httprunner/v5/uixt/option"
"github.com/stretchr/testify/require"
)
func TestGame2048(t *testing.T) {
userInstruction := `2048 是一款数字合并类的益智小游戏,以下是它的基本规则:
1、游戏目标在一个 4x4 的网格中,通过合并相同数字的方块,最终得到一个数值为 2048 的方块。当然,若你能继续合并,也可追求更高的数字。
2、初始状态游戏开始时网格中会随机出现两个数字为 2 或 4 的方块。
3、移动操作玩家可以选择上、下、左、右四个方向进行移动。每次移动时所有方块会朝着指定方向滑动直到碰到边界或其他方块。
4、合并规则当两个相同数字的方块在移动过程中相遇时它们会合并成一个新的方块新方块的数值为原来两个方块数值之和。例如两个 2 合并成一个 4两个 4 合并成一个 8依此类推。
5、新方块生成每次移动结束后网格中会随机出现一个新的数字为 2 或 4 的方块。
6、注意事项若连续多次滑动无法生效请调整策略例如向上无法滑动可以尝试向下滑向左无法滑动可以尝试向右滑。
7、游戏结束当网格被填满且没有可合并的方块时游戏结束停止游戏。
请严格按照以上游戏规则,开始游戏
`
testCase := &hrp.TestCase{
Config: hrp.NewConfig("2048 小游戏自动化测试").
SetLLMService(option.DOUBAO_1_5_UI_TARS_250328),
TestSteps: []hrp.IStep{
hrp.NewStep("启动抖音「2048经典」小游戏").
Android().
StartToGoal("启动抖音搜索「2048经典」小游戏并启动游戏").
Validate().
AssertAI("当前位于抖音「2048」小游戏页面"),
hrp.NewStep("开始游戏").
Android().
StartToGoal(userInstruction, option.WithMaxRetryTimes(100)),
},
}
err := testCase.Dump2JSON("game_2048.json")
require.Nil(t, err)
// err = hrp.NewRunner(t).Run(testCase)
// assert.Nil(t, err)
}