对于测试人员来说,有时候对线上问题的跟踪解决,缺乏一定意识,有时因禅道bug过多,导致没有重点根据线上问题。若通过钉钉机器人,设置定时任务发送,提醒相关人员按时处理禅道bug,就会让人关注重点。
实现步骤:通过java代码实现
1、找到对应消息接收群,设置钉钉机器人,拷贝关键信息Webhook地址
2、在java代码中编写代码实现发送钉钉机器人信息,以表格形式发送
3、在java代码中,连接收集禅道bug的数据库连接方式,并编写对应sql获取关键统计信息
4、在java代码中,编写定时器代码,触发钉钉机器人发送信息
5、将java代码打成jar包,放在服务器上,根据java代码中设置的定时器时间,进行触发任务
具体实现代码:
发送钉钉机器人代码
package Timer;
import org.json.JSONObject;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class SendMessageDing {
private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
private static final String DB_URL = "jdbc:mysql://XXXX:ip/zentao";
private static final String DB_USER = "root";
private static final String DB_PASS = "123456";
private static final String DINGTALK_WEBHOOK_URL = "你的机器人webhook地址";
// public static void main(String[] args) {
sendMessage();
// }
public static void sendMessage(){
// SpringApplication.run(ZentaoSentMessageApplication.class, args);
Connection conn = null;
Statement stmt = null;
try {
Class.forName(JDBC_DRIVER);
conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASS);
stmt = conn.createStatement();
// String sql = "SELECT b.id as ID,p.`name` as 产品名称, b.title as BUG标题, b.deadline as 截止时间, u1.realname as 指派给 "
// + "FROM zt_bug b JOIN zt_project p ON b.project = p.id "
// + "JOIN zt_user u1 ON b.assignedTo = u1.account "
// + "WHERE b.title LIKE '%线上问题%' AND b.status = 'active' AND b.deadline != '0000-00-00' AND b.deadline<NOW()";;
String sql = "SELECT b.id as ID,p.`name` as 产品名称, b.title as BUG标题, b.deadline as 截止时间, u1.realname as