Robot Framework + pushplus:测试结果推到微信
效果:套件失败时,Listener 或 Teardown 里 curl / requests 调 pushplus。
前置条件
- 一个 pushplus token(官网扫码获取)
- 可改测试工程,运行机已装 curl 或
requests
配置步骤
方式一:Listener(推荐)
pushplus_listener.py:
import os
import requests
class pushplus_listener:
ROBOT_LISTENER_API_VERSION = 3
def end_suite(self, data, result):
if result.passed:
return
requests.post(
"https://www.pushplus.plus/send",
json={
"token": os.environ["PUSHPLUS_TOKEN"],
"title": f"RF 失败: {data.name}",
"content": result.message or "请查看 report.html",
"template": "markdown",
},
timeout=10,
)
运行:robot --listener pushplus_listener.py tests/。token 走环境变量。
方式二:Teardown curl
*** Settings ***
Suite Teardown Run Keyword If Test Failed Notify Fail
*** Keywords ***
Notify Fail
Run Process curl -s -X POST https://www.pushplus.plus/send
... -H Content-Type: application/json
... -d {"token":"%{PUSHPLUS_TOKEN}","title":"RF 失败","content":"${TEST_NAME}","template":"txt"}
关键字名以你项目的 Process 库用法为准,保证 content 为非空字符串。
验证
curl -X POST "https://www.pushplus.plus/send" \
-H "Content-Type: application/json" \
-d '{"token":"你的token","title":"Robot Framework 配置测试","content":"token 可用","template":"markdown"}'
再跑一条必失败用例,确认只在失败时推送。
常见问题
每条 case 都推? Listener 挂在 end_suite,或只在 CI 的 on_failure 调一次。
CI 里没消息? 确认 Runner 注入了 PUSHPLUS_TOKEN 且能访问 www.pushplus.plus。