压力测试 chiab
介绍
chiab 是一款类似于ab的简单压力测试工具,使用go语言编写的第三方库。ab是一个独立的命令行工具,chiab是嵌入在代码当中执行的函数。chiab的代码仅仅只有100行左右。
为什么要写chiab?
生成准确测试时间的标准报告文件
在go语言中直接调用更方便
测试http请求
func TestGet(t *testing.T) {
var concurrency int64 = 20
var requests int64 = 10000
RequestStart(concurrency, 60*time.Second)
Run(func(id int64) bool {
_, err := Get(id, "http://127.0.0.1:8100/profile", nil, "")
if err != nil {
return false
} else {
return true
}
}, concurrency, requests, "测试HTTP服务", false)
}测试代码段
Run方法
参数:
handler 被测试的代码段
concurrency 并发数
requests 请求数
title 报告标题
save 报告是否存为文件
返回值
返回true表示成功
测试报告
文件名:测试函数执行效率_2022-12-05 11:39.txt
实现
定义Request
任务分配
给每个并发平均分配任务,如果不能平均最后一个协程会分配的多一些。
启动协程池
发令枪
让所有的协程先预热跑起来,等待发令枪,发令枪响,所有协程开始跑被分配的工作单元。
日志写入文件
等待每一个任务结束
报告
P90
百分之90的用户访问速度
地址
最后更新于