Skip to content

运行测试应用

当前页面是关于使用 test_client 和 test_server 测试 XQUIC 的指南。 如果相关环境尚未设置,请参阅 环境准备 文档。

运行前准备

在运行 test_server 之前,需要先生成证书文件:

bash
cd build
keyfile=server.key
certfile=server.crt
openssl req -newkey rsa:2048 -x509 -nodes -keyout "$keyfile" -new -out "$certfile" -subj /CN=test.xquic.com

运行测试

之后,可以运行 test_client 和 test_server,以下命令仅供参考:

bash
./test_server -l d > /dev/null &
./test_client -a 127.0.0.1 -p 8443 -s 1024000 -E

对于同一个test_client和不同的test_server之间的通信, session信息、传输参数和令牌可能互不兼容。此外,使用相同的客户端使用不同的域名连接到同一服务器也可能失败,因为不同的域名可能配置了不同的证书。

因此,对于上述情况而言,在建立新的连接之前,建议先删除 build 目录下的 test_session、tp_localhost 和 xqc_token 文件,以防缓存文件导致建立连接失败。

参数

以下所有参数在 tests/test_client.c 和 tests/test_server.c 文件的 usage() 函数中有描述,如果有参数差异,请参考最新代码。 你可能会在 ./script/case_test.sh 脚本中看到以下参数的使用,该脚本作为使用这些参数测试不同功能的示例。 test_client | 选项 | 用途 | | -1 | 强制 1RTT。 | | -6 | IPv6 | | -A | 开启多路径请求加速,默认关闭。 | | -a | 服务器地址。 | | -b | 批处理 | | -B | 最大连接数,默认为 1000。 | | -c | 拥塞控制算法。r:reno b:bbr c:cubic B:bbr2 bbr+ bbr2+ P:copa | | -C | 开启 pacing。 | | -D | 进程数,默认为 2。 | | -d | 丢包率 ‰ | | -E | 开启负载均衡 ID 加密 | | -e | 回显。发送接收到的内容。 | | -f | 调试无限循环。 | | -F | 关闭连接的绝对超时时间。>=0 | | -g | 开启 FEC。 | | -G | 开启 GET 请求,默认为 POST。 | | -h | 主机与 SNI。例如:test.xquic.com | | -H | 请求头。例如:key:value | | -i | 多路径接口选项。 | | -J | 随机 CID,默认关闭。 | | -K | 负载均衡 ID 加密密钥 | | -L | 开启无限发送,默认关闭。 | | -M | 开启多路径,默认关闭。 | | -N | 不加密。 | | -o | 输出日志文件路径,默认为 ./slog | | -P | 每个连接的并行请求数,默认为 1。 | | -Q | 多路径备份路径待命,设置 backup_mode 为 1(开启)。默认 backup_mode 为 0(关闭)。 | | -R | 开启重注入,默认关闭。 | | -S | 服务器 SID。 | | -t | 连接超时,默认为 3 秒。 | | -T | 传输层,无 HTTP3。 | | -u | URL,默认为 https://test.xquic.com/path/resource | | -V | 强制证书验证。0: 不允许自签名证书。1: 允许自签名证书。 | | -v | 协商多路径版本。4: Multipath-04。5: Multipath-05。 | | -w | 将接收到的内容写入文件。 | | -x | 测试用例 ID。 | | -y | 多路径备份路径待命选项。 | | -z | 定期发送请求选项。 | test_server | 选项 | 用途 | | -a | 服务器地址。 | | -b | 批处理 | | -c | 拥塞控制算法。r:reno b:bbr c:cubic B:bbr2 bbr+ bbr2+ P:copa | | -C | 开启 pacing。 | | -E | 开启负载均衡 ID 加密 | | -f | 开启 FEC。 | | -K | 负载均衡 ID 加密密钥 | | -L | 开启无限发送,默认关闭。 | | -M | 开启多路径,默认关闭。 | | -o | 输出日志文件路径,默认为 ./slog | | -Q | 多路径备份路径待命,设置 backup_mode 为 1(开启)。默认 backup_mode 为 0(关闭)。 | | -R | 开启重注入,默认关闭 | | -S | 服务器 SID | | -U | 发送数据报选项:0(关闭),1(开启),2(开启 + 批处理)。 | | -y | 多路径备份路径待命选项。 | | -H | 禁用 h3_ext 选项。 | | -m | 设置 mpshell 开启 | | -s | 发送的主体大小。 | | -w | 将接收到的内容写入文件。 | | -r | 从文件读取发送的主体。优先级 e > s > r | | -l | 日志级别。e:error d:debug。 | | -u | URL,默认为 https://test.xquic.com/path/resource | | -x | 测试用例 ID。 | | -6 | IPv6。 | | -e | 回显。发送接收到的内容。 |