利用javaWeb+jquery+ajax开发测试平台(监控、快捷操作所有的自动化测试项目)

效果:https://v.qq.com/x/page/b3021ygobgd.html(录制的视频)下面是几张截图实现代码:因为后端接口的代码太多,这里只粘前端代码jsp代码:<%-- Created by IntelliJ IDEA. User: mft Date: 2019-10-08 Time: 15:00 To change...
摘要由CSDN通过智能技术生成

效果:

https://v.qq.com/x/page/b3021ygobgd.html (录制的视频)

下面是几张截图

实现代码:

因为后端接口的代码太多,这里只粘前端代码

jsp代码:

<%--
  Created by IntelliJ IDEA.
  User: mft
  Date: 2019-10-08
  Time: 15:00
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>测试平台</title>
    <meta http-equiv="content" content="text/html;charset=utf-8">
    <%--    css依赖--%>
    <link rel="stylesheet" href="css/jquery/jquery-ui-1.12.1.css">
    <%--    css本地--%>
    <link rel="stylesheet" type="text/css" href="css/test.css">

    <%--    script依赖--%>
    <script src="js/jquery/jquery-3.4.1.js"></script>
    <script src="js/jquery/jquery-ui-1.12.1.js"></script>
    <%--    script本地--%>
    <script type="text/javascript" src="js/test.js"></script>
</head>
<body>

<div class="title"  id="div1">测试平台</div>

<div style="width: 100%" id="div2">
    <span class="titleText" style="float: left;">线上接口</span>

    <button style="float: left;" onclick="buildJenkins('115','InterfaceTest_live')">开始测试</button>
    <button style="float: left;" onclick="stopJenkins('115','InterfaceTest_live')">中止测试</button>

    <a href="http://test.babyfs.cn/re/lastReportList/InterfaceTest_live.html" target="_blank">
        <button style="float: left;">查看报告</button>
    </a>
    <a href="http://10.10.10.115:8082/job/InterfaceTest_live/" target="_blank">
        <button style="float: left;">修改配置</button>
    </a>
    <i id="InterfaceTest_live_resule" style="float: left;">测试结束</i>


    <i id="InterfaceTest_resule" style="float: right;">测试结束</i>
    <a href="http://10.10.10.115:8082/job/InterfaceTest/" target="_blank">
        <button style="float: right;">修改配置</button>
    </a>
    <a href="http://test.babyfs.cn/re/lastReportList/InterfaceTest.html" target="_blank">
        <button style="float: right;">查看报告</button>
    </a>
    <button style="float: right;" onclick="stopJenkins('115','InterfaceTest')">中止测试</button>
    <button style="float: right;" onclick="buildJenkins('115','InterfaceTest')">开始测试</button>
    <span class="titleText" style="float: right;">lpt接口</span>
</div>

<div style="width: 100%" id="div3">
    <span>
        <pre id="InterfaceTest_live_log" class="InterfaceTest_live_style"></pre>
        <pre id="InterfaceTest_log" class="InterfaceTest_style"></pre>
    </span>
</div>


<div style="width: 100%" id="div4">
    <span class="titleText" style="float: left;">服务器性能</span>

    <a href="http://test.babyfs.cn/webtools/index.jsp" target="_blank">
        <button style="float: left;">开始测试</button>
    </a>
    <button style="float: left;" onclick="stopJenkins('115','performanceTest')">中止测试</button>
    <a href="http://test.babyfs.cn/re/performanceTest/result/index.html" target="_blank">
        <button style="float: left;">查看报告</button>
    </a>
    <a href="http://10.10.10.115:8082/job/performanceTest/" target="_blank">
        <button style="float: left;">修改配置</button>
    </a>
    <i id="performanceTest_resule" style="float: left;">测试结束</i>


    <i id="monkey_resule" style="float: right;width: 11%">测试结束</i>
    <a href="http://10.10.10.115:8082/job/monkey/" target="_blank">
        <button style="float: right;">修改配置</button>
    </a>
    <a href="http://10.10.10.115:8080/re/lastReportList/monkey.png" target="_blank">
        <button style="float: right;">查看截图</button>
    </a>
    <a href="http://10.10.10.115:8080/re/lastReportList/monkey.html" target="_blank">
        <button style="float: right;">查看报告</button>
    </a>
    <button style="float: right;" onclick="stopJenkins('115','monkey');buildJenkins('115','monkey_stop')">中止测试
    </button>
    <button style="float: right;" onclick="buildJenkins('115','monkey')">开始测试</button>

    <span class="titleText" style="float: right;">app性能</span>
</div>

<div style="width: 100%" id="div5">
    <span>
        <pre id="performanceTest_log" class="performanceTest_style"></pre>
        <pre id="monkey_log" class="monkey_style"></pre>
    </span>
</div>


<div style="width: 100%"  id="div6">
    <span class="titleText" style="float: left;">app功能</span>

    <a href="http://test.babyfs.cn/webtools/app_regressionTest.jsp" target="_blank">
        <button style="float: left;">开始测试</button>
    </a>
    <button style="float: left;
    " onclick="stopJenkins('37','app_regressionTest')">中止测试
    </button>
    <a href="http://10.10.10.115:8080/re/lastReportList/app_regressionTest.html" target="_blank">
        <button style="float: left;">查看报告</button>
    </a>
    <a href="http://10.10.10.115:8082/job/app_regressionTest/" target="_blank">
        <button style="float: left;">修改配置</button>
    </a>
    <i id="app_regressionTest_resule" style="float: left;">测试结束</i>


    <i id="op_resule" style="float: right;width: 11%">测试结束</i>
    <a href="http://10.10.10.115:8082/job/op/" target="_blank">
        <button style="float: right;">修改配置</button>
    </a>
    <a href="http://10.10.10.115:8080/re/lastReportList/monkey.png" target="_blank">
        <button style="float: right;">查看截图</button>
    </a>
    <a href="http://10.10.10.115:8080/re/lastReportList/monkey.html" target="_blank">
        <button style="float: right;">查看报告</button>
    </a>
    <button style="float: right;" onclick="stopJenkins('115','op')">中止测试
    </button>
    <button style="float: right;" onclick="buildJenkins('115','op')">开始测试</button>

    <span class="titleText" style="float: right;">op后台</span>
</div>

<div style="width: 100%"  id="div7">
    <span>
        <pre id="app_regressionTest_log" class="app_regressionTest_style"></pre>
        <pre id="op_log" class="op_style"></pre>
    </span>
</div>

</body>
</html>

 js代码:

let get1;
let get2;
let get3;
let get4;
let get5;
let slideDownTime = 1000;

window.onload = function () {
    $("div").hide().slideDown(slideDownTime);//隐藏、展开所有div元素

    getLog('logCat', '115', 'InterfaceTest_live', 'InterfaceTest_live_log', '');
    getLog('logCat', '115', 'InterfaceTest', 'InterfaceTest_log', '');
    getLog('logCat', '115', 'performanceTest', 'performanceTest_log', '');
    getLog('logCat', '115', 'monkey', 'monkey_log', '');
    getLog('logCat', '115', 'app_regressionTest', 'app_regressionTest_log', '');

    get1 = setInterval("code('BuildResult','115','performanceTest','performanceTest_resule')", 3500);
    get2 = setInterval("code('BuildResult','115','InterfaceTest_live','InterfaceTest_live_resule')", 3500);
    get3 = setInterval("code('BuildResult','115','InterfaceTest','InterfaceTest_resule')", 3500);
    get4 = setInterval("code('BuildResult','115','monkey','monkey_resule')", 3500);
    get5 = setInterval("code('BuildResult','115','app_regressionTest','app_regressionTest_resule')", 3500);
    setInterval("mobility('#InterfaceTest_live_resule')", 3000);
    setInterval("mobility('#InterfaceTest_resule')", 3000);
    setInterval("mobility('#performanceTest_resule')", 3000);
    setInterval("mobility('#monkey_resule')", 3000);
    setInterval("mobility('#app_regressionTest_resule')", 3000);
};

//动效
function mobility(id) {
    let reString = $(id).text();
    if (reString === '正在测试') {
        // 运行特效
        $(id).toggle('pulsate', {times: 2}, 3000);
    } else {
        $(id).show('blind', {direction: 'up'}, 1000);
    }
}

//开始构建
function buildJenkins(jenkinsUrl, jobName) {
    $.ajax({
        type: "post",//请求方式
        url: "./StartTest",//发送请求地址
        data: {
            type: "build",
            jenkinsUrl: jenkinsUrl,
            jobName: jobName
        },
        success: function (data) {
            playAudio('开始测试' + jobName);
            console.log(data);
        },
        error: function () {
            playAudio('开始测试异常' + jobName);
            console.log("开始构建异常,递归调用");
            buildJenkins(jenkinsUrl, jobName);
        }
    });
}

//中止构建
function stopJenkins(jenkinsUrl, jobName) {
    $.ajax({
        type: "post",//请求方式
        url: "./StartTest",//发送请求地址
        data: {
            type: "stopBuild",
            jenkinsUrl: jenkinsUrl,
            jobName: jobName
        },
        success: function (data) {
            playAudio('中止测试' + jobName);
            console.log(data)
        },
        error: function () {
            playAudio('中止测试异常' + jobName);
            console.log("中止构建异常,递归调用");
            stopJenkins(jenkinsUrl, jobName);
        }
    });
}

//请求log,并填充到元素
function getLog(type, jenkinsUrl, jobName, id, grepString) {
    $.ajax({
        type: "post",//请求方式
        url: "./StartTest",//发送请求地址
        data: {
            type: type,
            jenkinsUrl: jenkinsUrl,
            jobName: jobName,
            grepString: grepString
        },
        success: function (data) {
            $("#" + id).html(data);
        },
        error: function () {
            console.log("请求log异常,递归调用:" + id);
            getLog(type, jenkinsUrl, jobName, id, grepString);
        }
    });
    //设置滚动条到最底部
    let objDiv = document.getElementById(id);
    objDiv.scrollTop = objDiv.scrollHeight;

}

//查看构建状态
function code(type, jenkinsUrl, jobName, id) {
    $.ajax({
        type: "post",//请求方式
        url: "./StartTest",//发送请求地址
        data: {
            type: type,
            jenkinsUrl: jenkinsUrl,
            jobName: jobName
        },
        success: function (data) {
            $("#" + id).html(data);
            if (data === '正在测试') {
                switch (jobName) {
                    case "app_regressionTest":
                        getLog('logCat', jenkinsUrl, jobName, 'app_regressionTest_log', '');
                        // 10秒后只执行一次
                        setTimeout("getLog('logCat','115','app_regressionTest','app_regressionTest_log','')", 10000);
                        break;
                    case "monkey":
                        getLog('logCat', jenkinsUrl, jobName, 'monkey_log', '');
                        // 10秒后只执行一次
                        setTimeout("getLog('logCat','115','monkey','monkey_log','')", 10000);
                        break;
                    case "InterfaceTest":
                        getLog('logCat', jenkinsUrl, jobName, 'InterfaceTest_log', '');
                        // 10秒后只执行一次
                        setTimeout("getLog('logCat','115','InterfaceTest','InterfaceTest_log','')", 10000);
                        break;
                    case "InterfaceTest_live":
                        getLog('logCat', jenkinsUrl, jobName, 'InterfaceTest_live_log', '');
                        // 10秒后只执行一次
                        setTimeout("getLog('logCat','115','InterfaceTest_live','InterfaceTest_live_log','')", 10000);
                        break;
                    case "performanceTest":
                        getLog('logCat', jenkinsUrl, jobName, 'performanceTest_log', '');
                        // 10秒后只执行一次
                        setTimeout("getLog('logCat','115','performanceTest','performanceTest_log','')", 10000);
                        break;
                }
            }
        },
        error: function () {
            console.log("查看测试状态异常")
        }
    });
}

//文字转音频
function playAudio(String) {
    let msg = new SpeechSynthesisUtterance();
    msg.text = String;
    msg.lang = 'zh-CN';
    console.log(msg);
    speechSynthesis.speak(msg);
}

css代码: 

body {
    background-color: #515151;
    /*background-image: url("../css/image/body.jpg");*/
    /*background-repeat:no-repeat;*/
    /*background-size:100% 100%;*/
    /*background-attachment: fixed;*/


}

button {
    cursor: pointer;
    width: 6%;
}

i {
    font-size: 15px;
    color: #B8860B;
    width: 17%;
}

.interfaceTest_live_style {
    background-color: black;
    background-attachment: local;
    color: limegreen;

    float: left;
    font-size: 12px;

    width: 49%;
    height: 300px;
    overflow: scroll;
}

.interfaceTest_style {
    background-color: black;
    background-attachment: local;
    color: limegreen;

    float: right;
    font-size: 12px;

    width: 49%;
    height: 300px;
    overflow: scroll;
}

.performanceTest_style {
    background-color: black;
    background-attachment: local;
    color: limegreen;

    float: left;
    font-size: 12px;

    width: 49%;
    height: 300px;
    overflow: scroll;
}

.monkey_style {
    background-color: black;
    background-attachment: local;
    color: limegreen;

    float: right;
    font-size: 12px;

    width: 49%;
    height: 300px;
    overflow: scroll;
}

.app_regressionTest_style {
    background-color: black;
    background-attachment: local;
    color: limegreen;

    float: left;
    font-size: 12px;

    width: 49%;
    height: 300px;
    overflow: scroll;
}

.op_style {
    background-color: black;
    background-attachment: local;
    color: limegreen;

    float: right;
    font-size: 12px;

    width: 49%;
    height: 300px;
    overflow: scroll;
}

.titleText {
    /*background-color: black;*/
    color: #FFE14A;
    height: 20px;
    width: 8%;
}

.title {
    color: #FFE14A;
    margin-left: auto;
    margin-right: auto;
    height: 50px;
    width: 100px;
    font-size: 20px;

}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌翻天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值