自动化测试报告发送至钉钉
方式一.Jenkins发送自动化测试报告至钉钉
第一步:新建一个钉钉群,创建钉钉机器人,保留机器人的
dingtalk webhook:https://oapi.dingtalk.com/robot/send?access_token=XXXXXX
关键词:警告
第二步:需要安装allure-jenkins-plugin.hpi和dingding-notifications.hpi插件至Jenkins中
第三步:在Jenkins的全局变量中配置钉钉的流程
通知时机:根据构建项目的成功与否来决定是否提示,可根据需要配置
id:不用填写,系统自动生成
名称:任意填写
关键字:将创建的机器人的关键字填入其中,点击测试测试通过会在钉钉群中发送Jenkins的消息
第四步:在项目中的局部变量中配置钉钉群中的通知人,如果不填写通知人内容可能系统默认谁也不发送,会收不到消息
方式二. Java直接发送消息至钉钉
/**
* 组装请求报文
* @param content
* @return
*/
private static String buildReqStr(String content, boolean isAtAll, List<String> mobileList) {
//消息内容
Map<String, String> contentMap = Maps.newHashMap();
contentMap.put("content", content);
//通知人
Map<String, Object> atMap = Maps.newHashMap();
//是否通知所有人
boolean isAtAll1 = false;
//通知具体人的手机号码列表
List<String> mobileList = Lists.newArrayList();
//1.是否通知所有人
atMap.put("isAtAll", isAtAll1);
//2.通知具体人的手机号码列表
atMap.put("atMobiles", mobileList1);
Map<String, Object> reqMap = Maps.newHashMap();
reqMap.put("msgtype", "text");
reqMap.put("text", contentMap);
reqMap.put("at", atMap);
return JSON.toJSONString(reqMap);
}
public static String doPostJson(String url, String json) {
// 创建Httpclient对象
CloseableHttpClient httpClient = HttpClients.createDefault();
CloseableHttpResponse response = null;
String resultString = "";
try {
// 创建Http Post请求
HttpPost httpPost = new HttpPost(url);
// 创建请求内容
StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);
httpPost.setEntity(entity);
// 执行http请求
response = httpClient.execute(httpPost);
resultString = EntityUtils.toString(response.getEntity(), "utf-8");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
response.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return resultString;
}
主方法:
public static void main(String[] args){
//钉钉机器人地址(配置机器人的webhook)
String dingUrl = "https://oapi.dingtalk.com/robot/send?access_token=df17262967fe5733fc5ec2a831f06918b0200e80e5d048617ae4140968ef5a03";
//是否通知所有人
boolean isAtAll = false;
//通知具体人的手机号码列表
List<String> mobileList = Lists.newArrayList();
// mobileList .add("186XXXXXXX");
mobileList .add("186XXXXXXX");
// mobileList .add("182XXXXXXX");
//钉钉机器人消息内容:重点:加关键字
String content ="警告:";
//组装请求内容
String reqStr = buildReqStr(content, isAtAll, mobileList);
//推送消息(http请求)
String result =SendHttps.doPostJson(dingUrl, reqStr);
System.out.println("result == " + result);
}