欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

自动化测试报告发送至钉钉

程序员文章站 2024-03-21 22:26:40
...

自动化测试报告发送至钉钉

方式一.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> mobileList1 = Lists.newArrayList();
		      //  mobileList1.add("186XXXXXXX");
		        mobileList1.add("186XXXXXXX");	       
		       // mobileList1.add("182XXXXXXX");
		        //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();				    	          
		    	            //钉钉机器人消息内容:重点:加关键字
	    	                String content ="警告:";
		    	            //组装请求内容
		    	            String reqStr = buildReqStr(content, isAtAll, mobileList);
		    	            //推送消息(http请求)				    	            
		    	            String result =SendHttps.doPostJson(dingUrl, reqStr);
		    	            System.out.println("result == " + result);	
	    	              }