Files
Ubuntu 32b43f85bd a
2026-07-03 16:58:28 +08:00

173 lines
5.2 KiB
Bash
Executable File

#!/bin/bash
# 测试完整工作流程(包含小红书发布)
echo "============================================================"
echo "🧪 测试完整工作流程"
echo "============================================================"
echo "时间: $(date '+%Y-%m-%d %H:%M:%S')"
echo ""
WORK_DIR="/home/ubuntu/nanocode/it_automation_enhanced"
cd "$WORK_DIR" || exit 1
# 1. 清理测试数据
echo "1️⃣ 清理测试数据..."
rm -f data/test_articles.db
rm -f logs/test_*.log
rm -f output/test_*.json
echo "✅ 测试数据清理完成"
# 2. 创建测试数据库
echo ""
echo "2️⃣ 创建测试数据库..."
cat > scripts/create_test_db.py << 'EOF'
import sqlite3
import datetime
db_path = "/home/ubuntu/nanocode/it_automation_enhanced/data/test_articles.db"
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS articles (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
url TEXT UNIQUE NOT NULL,
source TEXT NOT NULL,
category TEXT,
publish_date TEXT,
word_count INTEGER DEFAULT 0,
processed INTEGER DEFAULT 0,
translation_status INTEGER DEFAULT 0,
humanizer_status INTEGER DEFAULT 0,
xhs_status INTEGER DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
''')
# 插入测试数据
test_articles = [
("AI芯片技术的最新突破", "https://example.com/ai-chip", "TestSource", "tech", "2026-03-19", 1200),
("Python 3.12性能优化指南", "https://example.com/python-optimize", "TestSource", "programming", "2026-03-19", 800),
("云计算安全最佳实践", "https://example.com/cloud-security", "TestSource", "cloud", "2026-03-19", 1500),
]
cursor.executemany('''
INSERT OR IGNORE INTO articles
(title, url, source, category, publish_date, word_count)
VALUES (?, ?, ?, ?, ?, ?)
''', test_articles)
conn.commit()
conn.close()
print(f"测试数据库创建完成: {db_path}")
print(f"插入 {len(test_articles)} 条测试数据")
EOF
python3 scripts/create_test_db.py
# 3. 修改配置使用测试数据库
echo ""
echo "3️⃣ 更新配置..."
cp config/config.json config/config_test.json
sed -i 's|"database_path".*|"database_path": "/home/ubuntu/nanocode/it_automation_enhanced/data/test_articles.db",|' config/config_test.json
sed -i 's|"test_mode".*|"test_mode": true,|' config/config_test.json
echo "✅ 测试配置更新完成"
# 4. 运行测试流程
echo ""
echo "4️⃣ 运行测试流程..."
TEST_LOG="$WORK_DIR/logs/test_workflow_$(date '+%Y%m%d_%H%M%S').log"
# 创建测试调度脚本
cat > scripts/test_scheduler.sh << 'EOF'
#!/bin/bash
echo "=== 测试调度脚本 ==="
echo "时间: $(date '+%Y-%m-%d %H:%M:%S')"
# 模拟网页抓取
echo "📡 模拟网页抓取..."
sleep 2
echo "✅ 抓取完成,找到3篇文章"
# 模拟文章处理
echo "🔄 模拟文章处理..."
sleep 1
echo "✅ 文章处理完成"
# 模拟小红书发布
echo "📱 模拟小红书发布..."
echo "选择文章: AI芯片技术的最新突破"
echo "创建测试图片..."
# 创建测试图片
python3 -c "
from PIL import Image, ImageDraw
img = Image.new('RGB', (1080, 1440), color=(70, 130, 180))
draw = ImageDraw.Draw(img)
draw.text((100, 600), '测试文章', fill=(255, 255, 255))
draw.text((100, 700), 'AI芯片技术', fill=(255, 255, 200))
img.save('/tmp/test_xhs_image.png')
print('测试图片创建完成')
"
if [ -f /tmp/test_xhs_image.png ]; then
echo "🖼️ 测试图片创建成功"
# 实际发布(测试模式)
echo "🚀 执行小红书发布..."
xhs post --title "测试: AI芯片技术" --body "这是自动化系统的测试发布
文章: AI芯片技术的最新突破
来源: 测试系统
时间: $(date '+%Y-%m-%d %H:%M')
#技术测试 #自动化 #AI芯片" --images /tmp/test_xhs_image.png 2>&1 | tee -a /tmp/xhs_test_output.txt
if [ $? -eq 0 ]; then
echo "🎉 小红书发布成功!"
# 更新数据库
sqlite3 /home/ubuntu/nanocode/it_automation_enhanced/data/test_articles.db \
"UPDATE articles SET xhs_status = 1 WHERE title LIKE '%AI芯片%'" 2>/dev/null
else
echo "⚠️ 小红书发布测试完成(可能为模拟)"
fi
rm -f /tmp/test_xhs_image.png
else
echo "⚠️ 跳过图片创建和发布"
fi
echo "✅ 测试流程完成"
EOF
chmod +x scripts/test_scheduler.sh
./scripts/test_scheduler.sh 2>&1 | tee "$TEST_LOG"
# 5. 验证结果
echo ""
echo "5️⃣ 验证结果..."
if [ -f "data/test_articles.db" ]; then
echo "📊 数据库状态:"
sqlite3 data/test_articles.db "SELECT title, xhs_status FROM articles;" 2>/dev/null
fi
if [ -f "/tmp/xhs_test_output.txt" ]; then
echo ""
echo "📄 小红书发布输出:"
cat /tmp/xhs_test_output.txt | tail -5
rm -f /tmp/xhs_test_output.txt
fi
echo ""
echo "============================================================"
echo "📋 测试完成"
echo "============================================================"
echo "• 测试日志: $TEST_LOG"
echo "• 测试数据库: data/test_articles.db"
echo "• 测试配置: config/config_test.json"
echo ""
echo "💡 实际调度将在每天16:00自动执行"
echo " 查看cron任务: crontab -l"
echo " 手动测试: ./scripts/main_scheduler.sh"
echo "============================================================"