RunnerGo项目的后端接口部分,基于Gin框架设计实现。
下载地址:https://studygolang.com/dl
安装方式:一键安装,可修改安装路径。
RunnerGo项目的后端接口部分,基于Gin框架设计实现。
# 1、克隆代码
git clone https://github.com/Runner-Go-Team/RunnerGo-management-open.git
# 2、进入项目根目录
cd RunnerGo-management-open
# 3、下载或更新依赖
go mod tidy
# 4、启动服务
go run main.go
安装mysql(安装MySQL参考链接、安装Navicat参考链接),安装完以后,创建一个runnergo数据库,然后把根目录 RunnerGo-management-open/cmd/runnergo_database.sql拿出来,进入到你创建的数据库,然后执行这个sql文件,就会把对应的数据库创建好。
进入配置文件目录: cd RunnerGo-management-open/configs/*.yaml文件
(dev.yaml:开发环境,test.yaml:测试环境,prd.yaml:生产环境)
配置详情: 参考RunnerGo-management-open根目录下的README.md文件
关键配置解释:
# clients下面的配置,主要是management请求压力机相关接口的配置,压力机服务为RunnerGo-engine-open,其中domain对应的就是RunnerGo-engine-open服务对应的IP或域名。
clients:
runner:
run_api: "https://domain/runner/run_api"
run_scene: "https://domain/runner/run_scene"
stop_scene: "https://domain/runner/stop_scene"
run_plan: "https://domain/runner/run_plan"
stop_plan: "https://domain/runner/stop"
# 下面两个redis,第一个主要是用来做日常缓存使用,第二个redis主要用来做报告数据的缓存,因为报告数据数据量比较到,所以才分开两个redis服务,个人使用的话,可以把两个redis配置成一样的值,使用一个redis服务即可。
redis:
address: "1234.redis.rds.aliyuncs.com:6379"
password: "******"
db: 0
redisReport:
address: "abcd.redis.rds.aliyuncs.com:6379"
password: "******"
db: 0
# 邮箱服务配置,主要用来发送邀请链接,运行计划报告等功能,如需使用,配置上自己的对应邮箱配置即可。
smtp:
host: "smtpdm.aliyun.com"
port: 465
email: "****@qq.com"
password: "******"
# 短信服务,主要用来注册的时候给用户发短信验证码使用,若需要次服务,填写对应的账号密码即可。
sms:
id: "your ID"
secret: "your secret"
#邀请链接加密密钥,主要用来对邀请链接里面包含的参数进行加密,该字符串可任意填写一个密钥字符串即可,需要注意的是,改密钥的长度必须为,16,24,32这三种长度中的一种。
inviteData:
AesSecretKey: "****************"
RunnerGo项目的前端部分, 基于React框架设计实现。
# 克隆代码
git clone https://github.com/Runner-Go-Team/RunnerGo-fe-open.git
# 或
git clone https://gitee.com/Runner-Go-Team/runnergo-management-open.git
# 切换目录
cd RunnerGo-fe-open
# 下载依赖
npm install
# 启动开发环境项目
npm start
如果想使用上传头像、上传场景内的csv、text文件等功能, 需要配置阿里云OSS服务,或者使用本地存储的file-server服务,两者使用其一即可。
OSS: 在根目录的config文件夹中的oss文件中。
export const OSS_Config = {
region: 'Your Region',
accessKeyId: 'Your AccessKeyId',
accessKeySecret: 'Your AccessKeySecret',
bucket: 'Your Bucket',
}
配置后端服务地址: 在根目录的config文件夹中的server文件中
const RD_BaseURL = {
development: 'manage服务开发环境地址',
test: 'manage服务测试环境地址',
production: 'manage服务线上环境地址',
};
通过NodeJs实现RunnerGo项目的头像上传、csv/text等参数化文件的上传
。看到终端输出server running即代表此服务运行成功!
# 克隆代码
git clone https://github.com/Runner-Go-Team/file-server.git
# 或
git clone https://gitee.com/Runner-Go-Team/file-server.git
# 切换目录
cd file-server
# 下载依赖
npm install
# 运行程序
node app.js
engine 服务为发压服务
,主要是发送请求
。
# 克隆代码
git clone https://github.com/Runner-Go-Team/RunnerGo-engine-open.git
# 或
git clone https://gitee.com/Runner-Go-Team/runnergo-engine-open.git
# 进入项目根目录
cd RunnerGo-engine-open
# 下载或更新依赖
go mod tidy
# 编辑配置文件 open.yam
# 心跳功能配置
heartbeat:
port: 8002
region: "北京"
duration: 2
resources: 5
# 默认不用修改
http:
address: "0.0.0.0:8002" #本服务host
port: 8002 #本服务端口
readTimeout: 5000 #fasthttp client完整响应读取(包括正文)的最大持续时间
writeTimeout: 5000 #fasthttp client完整请求写入(包括正文)的最大持续时间
noDefaultUserAgentHeader: true
maxConnPerHost: 10000
MaxIdleConnDuration: 5000 #空闲的保持连接将在此持续时间后关闭
NoDefaultUserAgentHeader: 30000
# 用于存储临时消息,及未完成的报告数据
redis:
address: "" #redis地址
password: "apipost"
db: 1
#kafka相关配置,需提前准备好
kafka:
address: "" #kafka地址
topIc: "report" # kafka的topic,用于传输测试数据
# mongo数据库相关配置,需提前准备好
mongo:
dsn: "" #mongo地址
database: "runnergo_open" #mongo库
stressDebugTable: "stress_debug" # 性能测试中接口debug日志集合
sceneDebugTable: "scene_debug" # 场景调试,接口debug日志集合
apiDebugTable: "api_debug" # api调试,接口debug日志集合
debugTable: "debug_status" # 性能测试中,是否开启debug日志模式集合
autoTable: "auto_report" # 自动化测试,接口debug日志集合
# engine本服务配置
machine:
maxGoroutines: 20005 # 本机支持的最大协程数
serverType: 1
netName: ""
diskName: ""
log:
path: "/data/logs/RunnerGo/RunnerGo-engine-info.log" #本服务log存放地址
#management服务相关接口配置
management:
notifyStopStress: "https://****/management/api/v1/plan/notify_stop_stress" #management服务停止性能任务接口
notifyRunFinish: "https://***/management/api/v1/auto_plan/notify_run_finish" #management服务任务完成接口
go run main.go
collector服务为处理性能测试数据服务
,没有该服务,测试报告将是无数据状态。
# 克隆代码
git clone https://github.com/Runner-Go-Team/RunnerGo-collector-open.git
# 或
git clone https://github.com/Runner-Go-Team/RunnerGo-collector-open.git
# 进入项目根目录
cd RunnerGo-collector-open
# 下载或更新依赖
go mod tidy
# 编辑配置文件 open.yam
http:
host: "0.0.0.0:20125" 本服务地址
# kafka相关配置
kafka:
host: "" kafka地址
topic: "runnergo"
key: "kafka:report:partition" kafka分区的key,存放在redis中。不需要修改
num: 2 #kafka分区数量,如果想同时运行多个性能任务,需要设置该值,并将kafka分区数量调整到对应的值,同时修改management服务中的分区总数
totalKafkaPartition: "TotalKafkaPartition" 默认不需要修改
stressBelongPartition: "StressBelongPartition" 默认不需要修改
reportRedis:
address: "" #redis地址
password: "apipost"
db: 0
redis:
address: "" #可与reportRedis共用
password: "apipost"
db: 0
log:
path: "/data/logs/RunnerGo/RunnerGo-collector-info.log"
#management服务配置
management: #management服务停止任务接口
notifyStopStress: "https://***/management/api/v1/plan/notify_stop_stress"
go run main.go