91 lines
4.0 KiB
Bash
91 lines
4.0 KiB
Bash
#!/bin/bash
|
||
|
||
# 切换到测试模式的脚本
|
||
# 功能:
|
||
# 1. lingxin_chat_api_inner.h文件中打开LINGXIN_TEST宏
|
||
# 2. 在lingxin_test_runner.c文件中修改TEST_WS_IP宏的IP值
|
||
# 3. 询问是否需要走自动化压测,是则进行音量修改和请求路径修改
|
||
|
||
set -e # 遇到错误立即退出
|
||
|
||
echo "开始切换到测试模式..."
|
||
|
||
CHAT_API_H_FILE="./src/inc/lingxin_chat_api_inner.h"
|
||
LINGXIN_TEST_RUNNER_C_FILE="./tests/lingxin_test_runner.c"
|
||
LINGXIN_COMMON_H_FILE="./src/inc/lingxin_common.h"
|
||
|
||
# 步骤1:在lingxin_chat_api_inner.h文件中打开LINGXIN_TEST宏
|
||
echo "步骤1:在lingxin_chat_api_inner.h文件中打开LINGXIN_TEST宏"
|
||
# 检查lingxin_chat_api_inner.h文件中是否已存在LINGXIN_TEST宏定义
|
||
if grep -q "^#define LINGXIN_TEST" "$CHAT_API_H_FILE"; then
|
||
echo "✓ LINGXIN_TEST宏已经打开"
|
||
else
|
||
# 查找有无注释掉的宏
|
||
if grep -q "// #define LINGXIN_TEST" "$CHAT_API_H_FILE"; then
|
||
# 使用perl命令替换注释掉的宏
|
||
perl -i -pe 's|// #define LINGXIN_TEST|#define LINGXIN_TEST|g' "$CHAT_API_H_FILE"
|
||
echo "✓ LINGXIN_TEST宏打开成功"
|
||
else
|
||
echo "✗ 在lingxin_chat_api_inner.h文件中找不到可打开的LINGXIN_TEST宏定义"
|
||
fi
|
||
fi
|
||
|
||
# 步骤2:在lingxin_test_runner.c文件中修改TEST_WS_IP宏的IP值
|
||
echo "步骤2:在lingxin_test_runner.c文件中修改TEST_WS_IP宏的IP值"
|
||
# 询问用户是否要更改测试WebSocket IP地址
|
||
read -p "请输入测试服务器IP地址(默认为公网IP 8.154.30.254) " test_ws_ip
|
||
if [[ -z "$test_ws_ip" ]]; then
|
||
test_ws_ip="8.154.30.254"
|
||
fi
|
||
# 使用perl命令替换现有的IP地址
|
||
perl -i -pe "s/#define TEST_WS_IP \\\"[0-9.]+\\\"/#define TEST_WS_IP \\\"$test_ws_ip\\\"/" "$LINGXIN_TEST_RUNNER_C_FILE"
|
||
echo "✓ 已更新TEST_WS_IP宏定义为: $test_ws_ip"
|
||
|
||
# 步骤3:询问是否需要走自动化压测,是则进行音量修改和请求路径修改
|
||
echo "步骤3:询问是否需要走自动化压测,是则进行音量修改和请求路径修改"
|
||
# 询问用户是否要进行自动化压测配置
|
||
read -p "是否要进行自动化压测配置?(y/n): " enable_stress_test
|
||
if [[ $enable_stress_test == "y" || $enable_stress_test == "Y" ]]; then
|
||
# 3.1 修改音量设置
|
||
echo "正在修改音量设置..."
|
||
if grep -q "set_volume(40)" "$LINGXIN_TEST_RUNNER_C_FILE"; then
|
||
perl -i -pe 's/set_volume\(40\)/set_volume(1)/' "$LINGXIN_TEST_RUNNER_C_FILE"
|
||
echo "✓ 已将音量从40修改为1"
|
||
else
|
||
echo "✗ 未找到set_volume(40),跳过音量修改"
|
||
fi
|
||
|
||
# 3.2 修改REQUEST_URL
|
||
echo "正在修改REQUEST_URL..."
|
||
if grep -q '#define REQUEST_URL "eagent.edu-aliyun.com"' "$LINGXIN_COMMON_H_FILE"; then
|
||
perl -i -pe "s/#define REQUEST_URL \\\"eagent.edu-aliyun.com\\\"/#define REQUEST_URL \\\"$test_ws_ip\\\"/" "$LINGXIN_COMMON_H_FILE"
|
||
echo "✓ 已将REQUEST_URL修改为: $test_ws_ip"
|
||
else
|
||
echo "✗ 未找到REQUEST_URL定义,跳过修改"
|
||
fi
|
||
|
||
# 3.3 修改WEBSOCKET_CHAT_PATH
|
||
echo "正在修改WEBSOCKET_CHAT_PATH..."
|
||
if grep -q '#define WEBSOCKET_CHAT_PATH "gw/ws/open/api/v1/unifiedAccess"' "$LINGXIN_COMMON_H_FILE"; then
|
||
perl -i -pe 's/#define WEBSOCKET_CHAT_PATH "gw\/ws\/open\/api\/v1\/unifiedAccess"/#define WEBSOCKET_CHAT_PATH ""/' "$LINGXIN_COMMON_H_FILE"
|
||
echo "✓ 已将WEBSOCKET_CHAT_PATH修改为空字符串"
|
||
else
|
||
echo "✗ 未找到WEBSOCKET_CHAT_PATH定义,跳过修改"
|
||
fi
|
||
|
||
echo "✓ 自动化压测配置完成!"
|
||
else
|
||
echo "跳过自动化压测配置"
|
||
fi
|
||
|
||
|
||
echo "✓ 测试模式切换完成!"
|
||
echo ""
|
||
echo "注意事项:"
|
||
echo "- 脚本已自动在lingxin_chat_api_inner.h文件中打开LINGXIN_TEST宏"
|
||
echo "- 脚本已自动在lingxin_test_runner.c文件中修改TEST_WS_IP宏的IP值"
|
||
if [[ $enable_stress_test == "y" || $enable_stress_test == "Y" ]]; then
|
||
echo "- 脚本已自动进行自动化压测配置,已修改音量设置和请求路径"
|
||
fi
|
||
echo "- 请重新编译项目以使更改生效"
|
||
echo "- 要切换回普通模式,可以运行switch_to_normal_mode.sh脚本" |