commit
This commit is contained in:
171
test_consultation_message.py
Normal file
171
test_consultation_message.py
Normal file
@@ -0,0 +1,171 @@
|
||||
"""
|
||||
测试咨询消息发送功能
|
||||
"""
|
||||
from loguru import logger
|
||||
from adspower_client import AdsPowerClient
|
||||
from ad_automation import MIPAdAutomation
|
||||
from config import Config
|
||||
from db_manager import SiteManager, ClickManager, InteractionManager
|
||||
import sys
|
||||
|
||||
# 配置日志
|
||||
logger.remove()
|
||||
logger.add(
|
||||
sys.stdout,
|
||||
format="<green>{time:HH:mm:ss}</green> | <level>{level: <8}</level> | <level>{message}</level>",
|
||||
level="INFO"
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
"""测试主流程"""
|
||||
|
||||
# 测试URL(请替换为实际的MIP页面)
|
||||
TEST_URL = "https://health.baidu.com/m/detail/ar_2366617956693492811"
|
||||
|
||||
logger.info("="*70)
|
||||
logger.info("测试咨询消息发送功能")
|
||||
logger.info("="*70)
|
||||
logger.info(f"当前环境: {Config.ENV}")
|
||||
logger.info(f"测试URL: {TEST_URL}")
|
||||
logger.info("")
|
||||
|
||||
client = AdsPowerClient()
|
||||
|
||||
try:
|
||||
# 1. 初始化数据库,添加测试站点
|
||||
logger.info("步骤1: 初始化测试站点")
|
||||
logger.info("-"*70)
|
||||
|
||||
site_mgr = SiteManager()
|
||||
site = site_mgr.get_site_by_url(TEST_URL)
|
||||
|
||||
if not site:
|
||||
site_id = site_mgr.add_site(
|
||||
site_url=TEST_URL,
|
||||
site_name="测试站点-咨询消息",
|
||||
site_dimension="医疗健康"
|
||||
)
|
||||
logger.info(f"✅ 创建测试站点: site_id={site_id}")
|
||||
else:
|
||||
site_id = site['id']
|
||||
logger.info(f"✅ 使用已存在站点: site_id={site_id}")
|
||||
|
||||
logger.info("")
|
||||
|
||||
# 2. 获取当前环境的Profile
|
||||
logger.info("步骤2: 获取浏览器环境")
|
||||
logger.info("-"*70)
|
||||
|
||||
group_id = client.get_group_by_env()
|
||||
if not group_id:
|
||||
logger.error("未找到对应环境的分组")
|
||||
return
|
||||
|
||||
result = client.list_profiles(group_id=group_id)
|
||||
if not result or not result.get('data', {}).get('list'):
|
||||
logger.error("未找到可用的浏览器环境")
|
||||
return
|
||||
|
||||
profile = result['data']['list'][0]
|
||||
profile_id = profile['profile_id']
|
||||
logger.info(f"✅ 使用Profile: {profile['name']} (ID: {profile_id})")
|
||||
logger.info("")
|
||||
|
||||
# 3. 启动浏览器
|
||||
logger.info("步骤3: 启动浏览器")
|
||||
logger.info("-"*70)
|
||||
|
||||
browser_info = client.start_browser(user_id=profile_id)
|
||||
if not browser_info:
|
||||
logger.error("启动浏览器失败")
|
||||
return
|
||||
|
||||
logger.info("✅ 浏览器启动成功")
|
||||
logger.info("")
|
||||
|
||||
# 4. 连接浏览器
|
||||
logger.info("步骤4: 连接浏览器")
|
||||
logger.info("-"*70)
|
||||
|
||||
browser = client.connect_browser(browser_info)
|
||||
if not browser:
|
||||
logger.error("连接浏览器失败")
|
||||
return
|
||||
|
||||
page = client.get_page(browser)
|
||||
if not page:
|
||||
logger.error("获取页面失败")
|
||||
return
|
||||
|
||||
logger.info("✅ 浏览器连接成功")
|
||||
logger.info("")
|
||||
|
||||
# 5. 执行广告点击和消息发送
|
||||
logger.info("步骤5: 执行广告点击和消息发送")
|
||||
logger.info("-"*70)
|
||||
|
||||
automation = MIPAdAutomation(page)
|
||||
click_success, has_reply = automation.check_and_click_ad(TEST_URL, site_id=site_id)
|
||||
|
||||
if click_success:
|
||||
logger.info("✅ 广告点击成功")
|
||||
if has_reply:
|
||||
logger.info("✅ 收到了医生回复")
|
||||
else:
|
||||
logger.info("⚠️ 未收到医生回复(可能需要等待更长时间)")
|
||||
else:
|
||||
logger.warning("❌ 广告点击失败")
|
||||
|
||||
logger.info("")
|
||||
|
||||
# 6. 查询数据库记录
|
||||
logger.info("步骤6: 查询数据库记录")
|
||||
logger.info("-"*70)
|
||||
|
||||
# 查询点击记录
|
||||
click_mgr = ClickManager()
|
||||
clicks = click_mgr.get_clicks_by_site(site_id, limit=5)
|
||||
logger.info(f"点击记录数: {len(clicks)}")
|
||||
if clicks:
|
||||
last_click = clicks[0]
|
||||
logger.info(f"最新点击: ID={last_click['id']}, 时间={last_click['click_time']}")
|
||||
|
||||
# 查询互动记录
|
||||
interaction_mgr = InteractionManager()
|
||||
interactions = interaction_mgr.get_interactions_by_site(site_id, limit=5)
|
||||
logger.info(f"互动记录数: {len(interactions)}")
|
||||
if interactions:
|
||||
last_interaction = interactions[0]
|
||||
logger.info(f"最新互动: ID={last_interaction['id']}")
|
||||
logger.info(f" 发送内容: {last_interaction['reply_content']}")
|
||||
logger.info(f" 收到回复: {'是' if last_interaction['response_received'] else '否'}")
|
||||
|
||||
logger.info("")
|
||||
|
||||
# 7. 保持浏览器运行,等待手动检查
|
||||
logger.info("="*70)
|
||||
logger.info("测试完成!浏览器保持运行,可手动检查结果")
|
||||
logger.info("按 Ctrl+C 停止测试并关闭浏览器")
|
||||
logger.info("="*70)
|
||||
|
||||
input("\n按回车键停止测试...")
|
||||
|
||||
except KeyboardInterrupt:
|
||||
logger.info("\n用户中断测试")
|
||||
except Exception as e:
|
||||
logger.error(f"测试异常: {str(e)}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
finally:
|
||||
# 清理资源
|
||||
try:
|
||||
if 'profile_id' in locals():
|
||||
client.stop_browser(user_id=profile_id)
|
||||
logger.info("✅ 浏览器已关闭")
|
||||
except Exception as e:
|
||||
logger.warning(f"关闭浏览器失败: {str(e)}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user