加载当前业务线下jmx文件列表方法loadBusinessLineCase()--js
// 加载业务线监控接口
function loadBusinessLineCase(lineName) {
url = "getMonitorCaseOfBzLine";
$.post(
url,
{
"lineName" : lineName //业务线名称
},
function(data) { //data为接口的返回值,以下为根据接口返回展示界面
if(data.status == "1") { //根据status修改配置信息,显示当前状态是否在监控
document.getElementById("startMonitorBtn").innerText = "停止监控"
document.getElementById("monitorFreq").disabled = true;
} else {
document.getElementById("startMonitorBtn").innerText = "开始监控"
document.getElementById("monitorFreq").disabled = true;
}
document.getElementById("monitorFreq").value = data.frequency //展示监控频率
var total = data.total;
var itemContent = "<h5 class=summary id=summary> 共找到" + total + "条数据</h5>"
var json_array = data.data;
itemContent += "<div class=panel-group id=accordion>"
for (var i = 0; i < json_array.length; i++) {
itemContent += "<div class='panel panel-success'>"
itemContent += "<div class=panel-heading>"
itemContent += "<h4 class=panel-title style=float:left>"
itemContent += "<a data-toggle=collapse data-parent=#accordion href=#collapse" + json_array[i].id + ">"
itemContent += "用例名称: " + json_array[i].fileName
itemContent += "</a></h4>"
itemContent += "<a style=float:right; href=javascript:copy('" + json_array[i].id + "');>前往接口测试平台</a>"
itemContent += "<div style=clear:both></div>"
itemContent += "</div>"
itemContent += "<div id=collapse" + json_array[i].id + " class='panel-collapse collapse'>"
itemContent += "<div class=panel-body>"
itemContent += " Event: XXXXXXXXX"
itemContent += "</div></div></div>"
}
itemContent += "</div>"
removeElementById("accordion"); //删除之前的控件
removeElementById("summary");//删除之前的控件
$(".seperator1").after(itemContent);//显示本次的控件
}, "json")
}
web.xml配置
<servlet>
<servlet-name>getMonitorCaseOfBzLine</servlet-name>
<servlet-class>com.xxx.servlet.GetMonitorCaseOfBzLineServlet</servlet-class>
<init-param>
<param-name>monitorCaseRootPath</param-name>
<param-value>此处配置需要加载的文件地址</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>getMonitorCaseOfBzLine</servlet-name>
<url-pattern>/getMonitorCaseOfBzLine</url-pattern>
</servlet-mapping>
配置完成后我们就可以实现GetMonitorCaseOfBzLineServlet这个接口
package com.xxx.servlet;
import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Arrays;
import javax.servlet.http.*;
import org.apache.log4j.Logger;
import javax.servlet.*;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class GetMonitorCaseOfBzLineServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
ServletConfig config = null; // 定义一个ServletConfig对象
private String sqlDriverName = ""; // 定义的JDBC驱动名
private String sqlAddr = ""; // 定义的数据库地址
private String sqlUsername = ""; // 定义的数据库用户名
private String sqlPassword = ""; // 定义的数据库连接密码
private String sqlDbName = ""; // 定义的数据库名
private String monitorCaseRootPath = "";
public void init(ServletConfig config) throws ServletException {
super.init(config); // 继承父类的init()方法
this.config = config; // 获取配置信息
monitorCaseRootPath = config.getInitParameter("monitorCaseRootPath");
}
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
doPost(req, res);
}
public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
res.setContentType("application/json; charset=utf-8");
PrintWriter out = res.getWriter();
String lineName = req.getParameter("lineName");
//
try {
JSONObject jsonObject = new JSONObject();
//获取业务线设置
sqlDriverName = getServletContext().getInitParameter("driverName");// 从配置文件中获取JDBC驱动名
sqlAddr = getServletContext().getInitParameter("addr");// 从配置文件中获取数据库地址
sqlUsername = getServletContext().getInitParameter("username"); // 获取数据库用户名
sqlPassword = getServletContext().getInitParameter("password"); // 获取数据库连接密码
sqlDbName = getServletContext().getInitParameter("dbName"); // 获取要连接的数据库
String url = "jdbc:mysql://" + sqlAddr + "/" + sqlDbName + "?useSSL=false";
Class.forName(sqlDriverName);
Connection conn = DriverManager.getConnection(url, sqlUsername, sqlPassword);
Statement stmt = conn.createStatement();
String sql = "select frequency,status from monitor_settings where bzname='" + lineName + "'";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
int frequency = rs.getInt(1);
int status = rs.getInt(2);
jsonObject.put("frequency", frequency);
jsonObject.put("status", status);
}
// 获取文件列表
File rootFolder = new File(monitorCaseRootPath + lineName);
File[] tempFileList = rootFolder.listFiles();
JSONArray jsonArray = new JSONArray();
int total=0;
for (int i = 0; i < tempFileList.length; i++) {
File tempFile = tempFileList[i];
// 仅处理文件
if (tempFile.isFile() && tempFile.getName().endsWith(".jmx")) {
JSONObject jsonDataObject = new JSONObject();
jsonDataObject.put("id", i);
jsonDataObject.put("fileName", tempFile.getName());
jsonArray.add(jsonDataObject);
total++;
}
}
jsonObject.put("total", total);
jsonObject.put("data", jsonArray);
System.out.println(jsonObject.toString());
out.write(jsonObject.toString());
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
out.println(e.toString());
}
out.close();
}
}
接口返回值:
{
"total":"当前业务线jmx文件总数",
"frequency":"当前业务线监控频率",
"status":"当前业务线是否监控",
"data":[
{
"id":"文件id1",
"fileName":"文件名称1"
},
{
"id":"文件id2",
"fileName":"文件名称2"
}
]
}
网友评论