jenkins完成robotframework任务发送钉钉消息

前提条件

1、申请钉钉测试企业帐号:http://open-dev.dingtalk.com/

  • 获取企业id:corpid
  • 获取企业密钥:corpsecret

2、将个人需要接受钉钉消息的帐号加入该测试企业,https://oa.dingtalk.com

钉钉API

1、获取access_token
通过corpid、corpsecret,获取access_token
https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.yx7wdO&treeId=172&articleId=104980&docType=1

2、发起企业消息会话

  • 根据用户id,发送公告。
  • 根据部门id,发送公告。

https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.znh7Sd&treeId=172&articleId=104973&docType=1#s0

touser:用户id
toparty:部门id
agentid:发送消息的应用id,钉钉管理后台中企业应用里可以获取到agentid

PS:获取用户、部门信息,参考https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.BBiUmR&treeId=172&articleId=104979&docType=1

3、发起群会话
https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.v0Fnon&treeId=172&articleId=104977&docType=1
获取chatid,手机钉钉二维码扫描:https://wsdebug.dingtalk.com/
后续操作参考:https://bbs.aliyun.com/simple/?t281925.html
PS:新注册的企业帐号,未经过认证,已经不能发送群会话了。要发消息,只能走企业消息会话。

Jenkins配置

1、将jenkins改为需要用户名、密码登录
注册的时候,全名=拼音缩写+空格+钉钉userid

2、安装插件Build User Vars Plugin
因为默认获取执行脚本的用户名,需要通过该插件获取。

  • 全名中的姓名拼音(BUILD_USER_FIRST_NAME):用于在钉钉消息中显示,是谁触发的脚本
  • 全名中的钉钉userid(BUILD_USER_LAST_NAME):用户发送这条消息给哪个钉钉用户

3、启用Build User Vars Plugin插件

4、修改脚本构建参数
传入需要发送钉钉消息的参数:发送钉钉消息的userid、消息通知内容
run.bat %WORKSPACE%\src\testcase %BUILD_USER_LAST_NAME% ” %BUILD_URL% finish!!! by BUILD_USER_FIRST_NAME%”

run.bat脚本

1、增加参数,透传钉钉发送参数 至 robotframework脚本
pybot -v userid:%2 -v msg:%3 -d %cd%\report %1

RobotFrameWork脚本

1、引入发送请求钉钉接口的代码,pyUtil\DingtailLib.py、module\dingtalk.robot
2、testcase层增加全局文件:__init__.robot,设置project级别suite Teardown,即testcase目录下所有脚本执行完毕后,触发发送钉钉消息的关键字

参数传递方向
jenkins >> run.bat >>robotframework

最终效果

发表评论

电子邮件地址不会被公开。