APACHE-2.0 License
Ymir is designed as a distributed script tool running on kubernetes.
master - manage test task agent - get/run test work from master, agent's life cycle is same with a single task dashboard - ymir frontend, on which user can manage and start task task, watch test metric and node load.
Ymir is designed as distributed script tool which can be used as user load testing tool like locust.
Ymir Script is user's golang script which implented interface task, here are examples.
// TTaskSet ...
type TTaskSet interface {
Name() string // taskset name
Weight() int // default 1
Tasks() []TTask // tasks
}
//TTask ....
type TTask interface {
Name() string // task name
Run() int // entrypoint
}
// Register your taskset with a NewFunc ...
func Register(newfunc NewFunc) {
}
// Set Run Time for your script ...
func SetRunTime(t time.Duration) {
}
// Set Routine Count for your script ...
func SetRoutineCount(c int) {
}
deploy
cd deploy && kubectl create -f server_deploy.yaml
develop
# change ImageDestBase and Tag in makefile
make build # build dashboard and binary
make publish_docker # build and push server docker image
make publish_docker_agent # build and push agent docker image