接口测试

This commit is contained in:
zhaocy 2022-07-18 13:39:00 +08:00
parent 59ed0e621a
commit a6d674cf1e
8 changed files with 111 additions and 63 deletions

View File

@ -30,6 +30,7 @@ func Execute() {
func init() { func init() {
RootCmd.AddCommand(runCmd) RootCmd.AddCommand(runCmd)
initLog() initLog()
robot.InitDb()
} }
var account = flag.String("account", "", "登录账号") var account = flag.String("account", "", "登录账号")

View File

@ -6,7 +6,9 @@ package robot
// 理这类问题,这个助手可以返回合适的数据,作为输入参数。 // 理这类问题,这个助手可以返回合适的数据,作为输入参数。
type assistant struct { type assistant struct {
//TODO
} }
func NewAssistant() *assistant {
return &assistant{}
}

38
cmd/robot/db.go Normal file
View File

@ -0,0 +1,38 @@
package robot
import (
"context"
"log"
"sync"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)
var dbOnce sync.Once
var mgoCli *mongo.Client
var mgoDb *mongo.Database
func InitDb() {
dbOnce.Do(func() {
var err error
// Set client options
clientOptions := options.Client().ApplyURI("mongodb://admin:123456@10.0.0.9:27018")
// Connect to MongoDB
mgoCli, err = mongo.Connect(context.TODO(), clientOptions)
if err != nil {
log.Fatal(err)
}
// Check the connection
err = mgoCli.Ping(context.TODO(), nil)
if err != nil {
log.Fatal(err)
}
mgoDb = mgoCli.Database("dreamfactory")
})
}

View File

@ -42,21 +42,7 @@ var (
// r := rsp.(*pb.HeroInfoResp) // r := rsp.(*pb.HeroInfoResp)
// fmt.Printf("%v\n", r) // fmt.Printf("%v\n", r)
// }, // },
next: func(robot *Robot, rsp proto.Message) {
tcs := []*TestCase{
{
desc: "觉醒",
mainType: string(comm.ModuleHero),
subType: hero.Awaken,
req: &pb.HeroAwakenReq{
HeroObjID: heroId,
},
rsp: &pb.HeroAwakenResp{},
//enabled: true,
},
}
robot.addBuilders(tcs)
},
} }
tcs = append(tcs, tc) tcs = append(tcs, tc)
} }
@ -105,39 +91,36 @@ var (
}, },
}, },
rsp: &pb.HeroStrengthenUpStarResp{}, rsp: &pb.HeroStrengthenUpStarResp{},
enabled: true, // enabled: true,
} }
tcs = append(tcs, tc) tcs = append(tcs, tc)
}
robot.addBuilders(tcs) tc2 := &TestCase{
}
},
}, {
desc: "英雄列表",
mainType: string(comm.ModuleHero),
subType: hero.HeroSubTypeList,
req: &pb.HeroListReq{},
rsp: &pb.HeroListResp{},
enabled: true,
next: func(robot *Robot, rsp proto.Message) {
if r, ok := rsp.(*pb.HeroListResp); ok {
tcs := []*TestCase{}
// selHero := r.List[0] //选中的英雄
for _, v := range r.List {
heroId := v.Id
tc := &TestCase{
desc: "英雄升级", desc: "英雄升级",
mainType: string(comm.ModuleHero), mainType: string(comm.ModuleHero),
subType: hero.StrengthenUplv, subType: hero.StrengthenUplv,
req: &pb.HeroStrengthenUplvReq{ req: &pb.HeroStrengthenUplvReq{
HeroObjID: heroId, HeroObjID: heroId,
ExpCardID: "62d124700625e43054ba307d", ExpCards: map[string]int32{
Amount: 1, "62d124700625e43054ba307d": 1,
},
}, },
rsp: &pb.HeroStrengthenUplvResp{}, rsp: &pb.HeroStrengthenUplvResp{},
enabled: true, enabled: true,
} }
tcs = append(tcs, tc) tcs = append(tcs, tc2)
tc3 := &TestCase{
desc: "觉醒",
mainType: string(comm.ModuleHero),
subType: hero.Awaken,
req: &pb.HeroAwakenReq{
HeroObjID: heroId,
},
rsp: &pb.HeroAwakenResp{},
//enabled: true,
}
tcs = append(tcs, tc3)
} }
robot.addBuilders(tcs) robot.addBuilders(tcs)
} }

View File

@ -1,6 +1,7 @@
package robot package robot
import ( import (
"fmt"
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/modules/task" "go_dreamfactory/modules/task"
"go_dreamfactory/pb" "go_dreamfactory/pb"
@ -15,32 +16,39 @@ var (
mainType: string(comm.ModuleTask), mainType: string(comm.ModuleTask),
subType: task.TaskSubTypeList, subType: task.TaskSubTypeList,
req: &pb.TaskListReq{ req: &pb.TaskListReq{
TaskTag: int32(comm.TASK_DAILY), //设置任务类型
TaskTag: int32(comm.TASK_DAILY), //每天任务
// TaskTag: int32(comm.TASK_WEEKLY), //周任务
// TaskTag: int32(comm.TASK_ACHIEVE),
}, },
rsp: &pb.TaskListResp{}, rsp: &pb.TaskListResp{},
// print: func(rsp proto.Message) { print: func(rsp proto.Message) {
// out := rsp.(*pb.TaskListResp) out := rsp.(*pb.TaskListResp)
// for _, v := range out.List { for _, v := range out.List {
// fmt.Printf("%v \n", v) fmt.Printf("%v \n", v)
// } }
// }, },
// enabled: true, enabled: true,
next: func(robot *Robot, rsp proto.Message) { next: func(robot *Robot, rsp proto.Message) {
tcs := []*TestCase{} tcs := []*TestCase{}
if _, ok := rsp.(*pb.TaskListResp); ok { if v, ok := rsp.(*pb.TaskListResp); ok {
} for _, tt := range v.List {
robot.addBuilders(tcs) tc := &TestCase{
},
}, {
desc: "领取任务奖励", desc: "领取任务奖励",
mainType: string(comm.ModuleTask), mainType: string(comm.ModuleTask),
subType: task.TaskSubTypeReceive, subType: task.TaskSubTypeReceive,
req: &pb.TaskReceiveReq{ req: &pb.TaskReceiveReq{
TaskTag: int32(comm.TASK_DAILY), TaskTag: int32(comm.TASK_DAILY),
Id: "62c5681374c83911207fa265", Id: tt.Id,
}, },
rsp: &pb.TaskReceiveResp{}, rsp: &pb.TaskReceiveResp{},
// enabled: true, enabled: true,
}
tcs = append(tcs, tc)
}
robot.addBuilders(tcs)
}
},
}, { }, {
desc: "活跃度", desc: "活跃度",
mainType: string(comm.ModuleTask), mainType: string(comm.ModuleTask),
@ -55,7 +63,7 @@ var (
mainType: string(comm.ModuleTask), mainType: string(comm.ModuleTask),
subType: task.TaskSubTypeActiveReceive, subType: task.TaskSubTypeActiveReceive,
req: &pb.TaskActiveReceiveReq{ req: &pb.TaskActiveReceiveReq{
Id: "62c676d57deea8b9af8884fb", Id: "62d4c90c3ccfe7787f317975",
TaskTag: int32(comm.TASK_DAILY), TaskTag: int32(comm.TASK_DAILY),
}, },
rsp: &pb.TaskActiveReceiveResp{}, rsp: &pb.TaskActiveReceiveResp{},

View File

@ -24,19 +24,31 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.TaskReceiveReq)
resp := &pb.TaskReceiveResp{} resp := &pb.TaskReceiveResp{}
defer func() { defer func() {
err := session.SendMsg(string(this.moduleTask.GetType()), TaskSubTypeList, resp) err := session.SendMsg(string(this.moduleTask.GetType()), TaskSubTypeReceive, resp)
if err != nil { if err != nil {
code = pb.ErrorCode_SystemError code = pb.ErrorCode_SystemError
} }
utils.TraceFunc(session.GetUserId(), string(this.moduleTask.GetType()), TaskSubTypeList, req, resp) utils.TraceFunc(session.GetUserId(), string(this.moduleTask.GetType()), TaskSubTypeReceive, req, resp)
}() }()
userTask := this.moduleTask.modelTask.getUserTask(session.GetUserId(), comm.TaskTag(req.TaskTag), req.Id) userTask := this.moduleTask.modelTask.getUserTask(session.GetUserId(), comm.TaskTag(req.TaskTag), req.Id)
if userTask != nil { if userTask != nil {
//判断是否完成
if userTask.Status == 0{
code = pb.ErrorCode_TaskHandle
return
}
//判断任务是否领取
if userTask.Received == 1 {
code = pb.ErrorCode_TaskReceived
return
}
conf, err := this.moduleTask.configure.getTaskById(userTask.TaskId) conf, err := this.moduleTask.configure.getTaskById(userTask.TaskId)
if err != nil { if err != nil {
log.Errorf("get task config err:%v", err) log.Errorf("get task config err:%v", err)
return return
} }
//奖励 //奖励
if code = this.moduleTask.CheckConsumeRes(session.GetUserId(), conf.Reword, true); code != pb.ErrorCode_Success { if code = this.moduleTask.CheckConsumeRes(session.GetUserId(), conf.Reword, true); code != pb.ErrorCode_Success {
return return

View File

@ -70,7 +70,10 @@ func (this *ModelTaskActive) getUserActive(uid, id string, taskTag comm.TaskTag)
return nil return nil
} }
func (this *ModelTaskActive) updateReceive(uid, id string, taskTag comm.TaskTag, data map[string]interface{}) error { func (this *ModelTaskActive) updateReceive(uid, id string, taskTag comm.TaskTag, data map[string]interface{}) (err error) {
if len(data) == 0 {
return
}
return this.moduleTask.modelTaskActive.ChangeList(swapKey(uid, taskTag), id, data) return this.moduleTask.modelTaskActive.ChangeList(swapKey(uid, taskTag), id, data)
} }

View File

@ -87,4 +87,5 @@ enum ErrorCode {
TaskActiveInit = 1606; // TaskActiveInit = 1606; //
TaskActiveNofound = 1604; // TaskActiveNofound = 1604; //
TaskActiveNoenough = 1605; // TaskActiveNoenough = 1605; //
TaskNoFinished = 1606; //
} }