SIP 性能测试配置生成工具集,用于生成 pjsua 和 SIPp 测试所需的配置文件。
| 工具 | 功能 |
|---|---|
genpjtest |
生成 pjsua 测试配置文件 |
gensipptest |
生成 SIPp 测试 CSV 文件 |
genusers |
生成 FreeSWITCH 用户 XML 配置 |
httpserver |
简易 HTTP 文件服务器 |
diskbench |
磁盘写入性能测试 |
reportlog2db |
日志解析转 SQL 工具 |
# 编译所有工具 (Linux + Windows)
make all
# 仅编译 Windows 版本
make build-test-windows
# 清理
make clean编译产物输出到 dist/ 目录。
生成 pjsua 自动应答测试配置,用于 SIP 注册和通话测试。
| 参数 | 说明 | 示例 |
|---|---|---|
-group |
用户组前缀 | 10003_ |
-idip |
SIP ID 的 IP 地址 | 172.16.23.52 |
-reg |
SIP 注册服务器地址 | 172.16.23.52:6060 |
-password |
SIP 密码(统一) | 888888 |
-realm |
SIP realm | *(默认) |
-port |
起始本地端口 | 10000(默认) |
-set |
配置集 | 见下方说明 |
主叫起始,被叫起始,数量|主叫起始,被叫起始,数量
示例:
# 生成两组配置:99个(6001起呼) + 100个(6200起呼)
genpjtest -group 10003_ -idip 172.16.23.52 -reg 172.16.23.52:6060 -password 888888 -set "6101,6001,99|6300,6200,100"配置文件生成到 genfile/pj_test/ 目录:
test0/config.cfgtest1/config.cfg- ...
每个配置文件包含最多 4 个账号,自动配置:
- SIP 注册信息
- 自动应答 (200)
- 自动播放
sample1.wav
生成 SIPp 压力测试所需的 CSV 数据文件。
| 参数 | 说明 | 示例 |
|---|---|---|
-group |
用户组前缀 | 10003 |
-set |
配置集 | 同 genpjtest |
-head |
CSV 头部类型 | SEQUENTIAL(默认)/ RANDOM |
-fixnum |
是否固定被叫号码 | false(默认) |
gensipptest -group 10003 -set "6101,6001,99|6300,6200,100"生成 genfile/sipp_test/t.csv,格式:
SEQUENTIAL
100036101;6001;[authentication username=100036101 password=888888]
...生成 FreeSWITCH 用户目录 XML 配置。
| 参数 | 说明 | 示例 |
|---|---|---|
-prefix |
用户前缀 | 10000_ |
-from |
起始编号 | 1000 |
-to |
结束编号 | 1399 |
genusers -prefix 10000_ -from 1000 -to 1399输出到 genfile/users/test-users.xml。
简易 HTTP 服务器,用于分发测试文件。
httpserver -p 8028测试磁盘写入性能,写入约 800MB 数据并计算速度。
diskbench解析 IVR 日志文件生成 SQL INSERT 语句。
reportlog2db -f logfile.log [-l]-f: 日志文件路径-l: 本地模式,追加 tenant 更新语句
Makefile 提供预设的发布目标:
make release-theme1 # 测试环境 theme1
make release-theme-chitu # 赤兔环境
make release-theme-prod # 生产环境
make release-theme-test # 测试环境发布包输出到 release/<theme>/,包含:
pj_test/- pjsua 测试脚本和配置sipp_test/- SIPp 测试脚本和配置
GenPerfTest/
├── Makefile # 构建脚本
├── src/ # 源代码
│ ├── genpjtest.go # pjsua 配置生成
│ ├── gensipptest.go # SIPp 配置生成
│ ├── genusers.go # 用户 XML 生成
│ ├── httpserver.go # HTTP 服务器
│ ├── diskbench.go # 磁盘性能测试
│ └── reportlog2db.go# 日志转 SQL
├── resource/ # 资源文件
│ ├── pjsua/ # pjsua 脚本和音频
│ └── sipp/ # SIPp 脚本和音频
├── dist/ # 编译输出
├── genfile/ # 生成的配置文件
└── release/ # 发布包
- Go 1.x
- pjsua(测试执行)
- SIPp(测试执行)