go_dreamfactory/stress/server/golink/http_link_many.go
2022-11-24 21:30:50 +08:00

72 lines
4.2 KiB
Go

// Package golink 连接
package golink
import (
"time"
"go_dreamfactory/stress/model"
)
// ReqListMany 接口分步压测
type ReqListMany struct {
list []*model.Request
}
// getCount 获取连接
func (r *ReqListMany) getCount() int {
return len(r.list)
}
var (
clientList *ReqListMany
)
// init 接口分步压测示例
func init() {
clientList = &ReqListMany{}
// TODO::接口分步压测示例
// 需要压测的接口参数
clients := make([]*model.Request, 0)
// 压测第一步
clients = append(clients, &model.Request{
URL: "https://page.aliyun.com/delivery/plan/list", // 请求url
Form: "http", // 请求方式 示例参数:http/webSocket/tcp
Method: "POST", // 请求方法 示例参数:GET/POST/PUT
Headers: map[string]string{
"referer": "https://cn.aliyun.com/",
"cookie": "aliyun_choice=CN; JSESSIONID=J8866281-CKCFJ4BUZ7GDO9V89YBW1-KJ3J5V9K-GYUW7; maliyun_temporary_console0=1AbLByOMHeZe3G41KYd5WWZvrM%2BGErkaLcWfBbgveKA9ifboArprPASvFUUfhwHtt44qsDwVqMk8Wkdr1F5LccYk2mPCZJiXb0q%2Bllj5u3SQGQurtyPqnG489y%2FkoA%2FEvOwsXJTvXTFQPK%2BGJD4FJg%3D%3D; cna=L3Q5F8cHDGgCAXL3r8fEZtdU; isg=BFNThsmSCcgX-sUcc5Jo2s2T4tF9COfKYi8g9wVwr3KphHMmjdh3GrHFvPTqJD_C; l=eBaceXLnQGBjstRJBOfwPurza77OSIRAguPzaNbMiT5POw1B5WAlWZbqyNY6C3GVh6lwR37EODnaBeYBc3K-nxvOu9eFfGMmn",
}, // headers 头信息
Body: "adPlanQueryParam=%7B%22adZone%22%3A%7B%22positionList%22%3A%5B%7B%22positionId%22%3A83%7D%5D%7D%2C%22requestId%22%3A%2217958651-f205-44c7-ad5d-f8af92a6217a%22%7D", // 消息体
Verify: "statusCode", // 验证的方法 示例参数:statusCode、json
Timeout: 30 * time.Second, // 是否开启Debug模式
Debug: false, // 是否开启Debug模式
})
// 压测第二步
clients = append(clients, &model.Request{
URL: "https://page.aliyun.com/delivery/plan/list", // 请求url
Form: "http", // 请求方式 示例参数:http/webSocket/tcp
Method: "POST", // 请求方法 示例参数:GET/POST/PUT
Headers: map[string]string{
"referer": "https://cn.aliyun.com/",
"cookie": "aliyun_choice=CN; JSESSIONID=J8866281-CKCFJ4BUZ7GDO9V89YBW1-KJ3J5V9K-GYUW7; maliyun_temporary_console0=1AbLByOMHeZe3G41KYd5WWZvrM%2BGErkaLcWfBbgveKA9ifboArprPASvFUUfhwHtt44qsDwVqMk8Wkdr1F5LccYk2mPCZJiXb0q%2Bllj5u3SQGQurtyPqnG489y%2FkoA%2FEvOwsXJTvXTFQPK%2BGJD4FJg%3D%3D; cna=L3Q5F8cHDGgCAXL3r8fEZtdU; isg=BFNThsmSCcgX-sUcc5Jo2s2T4tF9COfKYi8g9wVwr3KphHMmjdh3GrHFvPTqJD_C; l=eBaceXLnQGBjstRJBOfwPurza77OSIRAguPzaNbMiT5POw1B5WAlWZbqyNY6C3GVh6lwR37EODnaBeYBc3K-nxvOu9eFfGMmn",
}, // headers 头信息
Body: "adPlanQueryParam=%7B%22adZone%22%3A%7B%22positionList%22%3A%5B%7B%22positionId%22%3A83%7D%5D%7D%2C%22requestId%22%3A%2217958651-f205-44c7-ad5d-f8af92a6217a%22%7D", // 消息体
Verify: "statusCode", // 验证的方法 示例参数:statusCode、json
Timeout: 30 * time.Second, // 是否开启Debug模式
Debug: false, // 是否开启Debug模式
})
clientList.list = clients
// TODO::分步压测时,注释下面一行代码
clientList.list = nil
}
// getRequestList 获取请求列表
func getRequestList(request *model.Request) []*model.Request {
if len(clientList.list) <= 0 {
return []*model.Request{request}
}
return clientList.list
}