74 lines
1.5 KiB
Go
74 lines
1.5 KiB
Go
// Package golink 连接
|
|
package golink
|
|
|
|
import (
|
|
"context"
|
|
"sync"
|
|
"time"
|
|
|
|
"go_dreamfactory/stress/helper"
|
|
pb "go_dreamfactory/stress/proto"
|
|
|
|
"go_dreamfactory/stress/model"
|
|
"go_dreamfactory/stress/server/client"
|
|
)
|
|
|
|
// Grpc grpc 接口请求
|
|
func Grpc(ctx context.Context, chanID uint64, ch chan<- *model.RequestResults, totalNumber uint64, wg *sync.WaitGroup,
|
|
request *model.Request, ws *client.GrpcSocket) {
|
|
defer func() {
|
|
wg.Done()
|
|
}()
|
|
defer func() {
|
|
_ = ws.Close()
|
|
}()
|
|
for i := uint64(0); i < totalNumber; i++ {
|
|
grpcRequest(chanID, ch, i, request, ws)
|
|
}
|
|
return
|
|
}
|
|
|
|
// grpcRequest 请求
|
|
func grpcRequest(chanID uint64, ch chan<- *model.RequestResults, i uint64, request *model.Request,
|
|
ws *client.GrpcSocket) {
|
|
var (
|
|
startTime = time.Now()
|
|
isSucceed = false
|
|
errCode = model.HTTPOk
|
|
)
|
|
// 需要发送的数据
|
|
conn := ws.GetConn()
|
|
if conn == nil {
|
|
errCode = model.RequestErr
|
|
} else {
|
|
// TODO::请求接口示例
|
|
c := pb.NewApiServerClient(conn)
|
|
var (
|
|
ctx = context.Background()
|
|
req = &pb.Request{
|
|
//UserName: request.Body,
|
|
}
|
|
)
|
|
rsp, err := c.HelloWorld(ctx, req)
|
|
// fmt.Printf("rsp:%+v", rsp)
|
|
if err != nil {
|
|
errCode = model.RequestErr
|
|
} else {
|
|
// 200 为成功
|
|
if rsp.Code != 200 {
|
|
errCode = model.RequestErr
|
|
} else {
|
|
isSucceed = true
|
|
}
|
|
}
|
|
}
|
|
requestTime := uint64(helper.DiffNano(startTime))
|
|
requestResults := &model.RequestResults{
|
|
Time: requestTime,
|
|
IsSucceed: isSucceed,
|
|
ErrCode: errCode,
|
|
}
|
|
requestResults.SetID(chanID, i)
|
|
ch <- requestResults
|
|
}
|