爬取蒲公英内测发版信息推送到钉钉群
目录
- 1、前言
- 2、编写脚本
- 3、设置Jenkins
- 4、推送通知效果
1、前言
在项目测试阶段,每次测试的App发版后,发版信息都会发布到蒲公英上,又由于项目的人员组织架构,无法在App构建完成后拿到发版信息,只能通过访问蒲公英上去查询,并且也不知道是何时发版。
蒲公英发版信息:
解决思路:将脚本依托到Jenkins里,并利用Jenkins采用设定的轮询机制,爬取蒲公英上的发版信息,并将信息发送到钉钉群。
2、编写脚本
data_notification.yaml(配置文件)
主要存放个人手机号(钉钉群发版信息有问题时通知此人),钉钉群的token(钉钉群添加机器人获取的),蒲公英App内测版网址与密码(android、iOS)。
test_AutomaticNotificationBuild.py(执行脚本)
获取配置文件信息(token、网址、密码),并进行拼接组装;之后循环爬取蒲公英App内测版发版信息。
蒲公英App内测版发版地址可访问时,并且为可更新版本,发送通知到钉钉群;发版地址不可访问时,告警通知个人。
函数url_content(对蒲公英App内测版发版信息内容筛选)
函数requests_url(获取蒲公英App内测版发版信息内容)
数据库表AutomaticNotificationBuild_xxx
其作用为,爬取的信息与数据库信息进行比对,一致时,说明版本未更新,不发送通知给钉钉群;不一致时,会将新的信息覆盖到表里,并同时发送通知给钉钉群。
函数notification_build_to_dingding(设置通知内容,并发送到钉钉群)
通知格式分为:text、markdown
代码语言:javascript复制# 钉钉机器人的webhook地址
url = "https://oapi.dingtalk.com/robot/send?access_token=" access_token
HEADERS = {
"Content-Type": "application/json ;charset=utf-8"
}
# # 格式为:text
# message = "最新版本通知-" app_name
# String_textMsg = {
# "msgtype": "text",
# "text": {"content": message "n"
# "系统:" system_version "n"
# "Build:" system_build "n"
# app_build "n"
# app_size "n"
# app_update "n"
# "下载地址:" system__url "n" system__url_password
# },
# "at": {
# "atMobiles": [
# # "134XXXXXXXX" #如果需要@某人,这里写他的手机号
# ],
# "isAtAll": 1 # 如果需要@所有人,这里写1
# }
# }
# 格式为:markdown
message = "最新版本通知-" app_name
String_textMsg = {
"msgtype": "markdown",
"markdown": {
"title": message,
"text": "### " message "nn"
"> 系统:" system_version "nn"
"> Build:" system_build "nn"
"> " app_build "nn"
"> " app_size "nn"
"> " app_update "nn"
"> 下载地址:" "[" system__url "](" system__url ")nn" system__url_password "nn" app_build_changelog "nn"
"![二维码](" app_screenshot ")"
},
"at": {
"atMobiles": [
# "134XXXXXXXX" #如果需要@某人,这里写他的手机号
],
"isAtAll": True # 如果需要@所有人,这里写1
}
}
String_textMsg = json.dumps(String_textMsg)
requests.packages.urllib3.disable_warnings()
res = requests.post(url, data=String_textMsg, headers=HEADERS, verify=False)
print(res.text)
3、设置Jenkins
创建版本通知项目
设置轮询机制(例如:每30分钟执行一次)
设置执行脚本
4、推送通知效果
Jenkins构建日志
钉钉群收到的发版信息
如蒲公英App内测版网址不可访问,钉钉群收到的告警信息,并@指定人员。