zoukankan      html  css  js  c++  java
  • (原创)工具无处不在

          一说工具,所有人都自然而然的联想到自动化测试,其实不尽然  (写这文档,写完后,没提交成功,原来我断网了,害得我重写,运气真是差,一晚上3个多小时,全花在这文档上了)
          测试过程中,不是所有工具,都用于自动化测试,不过他属于自动化测试体系持续集成过程中的一小步。在测试的过程中,不管是自动化,还是手工测试,一系列 工具的应用将大大提高测试效率,试想一下,如果您在几年的测试工作中,形成了一个由一堆小工具组成的百宝箱 ,也许这些小工具,在以后的某个项目中,不能直接拿来就用,但我相信在这众多工具的使用中,内在的东西会为你以后的工作左右缝源。

              上面啰嗦这么多,我们来看一个下面的场景下,我的做法,相信类似的场景你也会碰到,且听我慢慢道来
    在MYPM的不断升级中,我们需要不断的发布补丁,如果只是修改个别BUG,补丁所涉及到的要更新的文件不会很多,手动写脚本来更新,也不要多长时间,但 是如果是一个里程碑的新版本发布,更新的文件都会上100,写脚本也是很麻烦的事且容易出错。

        先来看,我们以前打补丁的方法,先和SVN同步,看哪些文件,要提交,然后把这些文件都拷出来,同时记下,这文件在MYPM部署后的所在目录,然后写脚本 去替换他,如替换时所在目录不存在,还要新建,以前MYPM免费版打补丁我都是手写,这次商业版,变更的文件太多,没办法手写;另外从成本角来说,要是只 有几个文件发生变更,写工具类就不合算。也许你会说,让用户装一个新版本就行了,是项目还行,我们是产品,让每一个客户去升级安装是很麻烦的事,我们宁愿麻烦我们,也不愿麻烦客户。

        在看我下面的实现之前,我们可以总结出这样的结论经,只是要有规律的东西,在成本合算的前提下都可以用工具来实现,做到一次编写N次使用;同样也适用于软件测试特别是在数据驱动的测试中
        我们来看一下一个linux下的MYPM补丁脚本片段
    #!/bin/sh
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes
    cp -f ./button.properties /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/button.properties
    echo 1 replace  button.properties success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/resource/webwork
    cp -f ./testTaskManager.xml /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/resource/webwork/testTaskManager.xml
    echo 2 replace  testTaskManager.xml success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/gantt
    cp -f ./jsgantt.css /home/mypmcc/sfckMypm/mypm203/gantt/jsgantt.css

    这次我们升级时,更新的文件有110个,每个文件要3行脚本,一共要写330行本,这是个功夫活
    我是懒人,这活是有规律可行的功夫活,我们完全可以把上面的两个步骤((1)找到哪些文件更新了,(2)把这些文件通过编写脚本去更新客户的mypm),用工具去实现

       首先我们写了一个工具类,类名就叫chgChkTool,我们叫他变更检查工具,他的工作就是遍历,MYPM工程下所有文件,给他传入两个参数:一个是 上次打补丁的时间,另一个是MYPM安装目录,检查文件有没有更新时,拿这个时间来作对比。然后生成下面包含这个列表的chgFileList.txt文 件
    mypmHome=/home/mypmcc/sfckMypm/mypm203
    #配置文件
    /src/button.properties
    /src/resource/webwork/testTaskManager.xml
    #公共JSP JS文件
    /WebRoot/gantt/jsgantt.css
    /WebRoot/gantt/jsgantt.js
    /WebRoot/js/commonFunction_botm.js
    /WebRoot/js/globalVariable.js
    /WebRoot/jsp/analysisManager/analysisMain.jsp
    ......省去若干不一一列出,省得在这里占篇副
    #测试需求管理
    /WebRoot/jsp/outlineManager/contextMenu.js
    /WebRoot/jsp/outlineManager/functionList.jsp
    WebRoot/jsp/outlineManager/outLineBase.js
    ......省去若干不一一列出,省得在这里占篇副
    #测试用例管理
    /WebRoot/jsp/caseManager/batchAuditInitList.js
    /WebRoot/jsp/caseManager/batchAuditList.jsp
    /WebRoot/jsp/caseManager/caseBase.js
    ......省去若干
    #BUG管理
    /WebRoot/jsp/bugManager/assignPersion.js
    /WebRoot/jsp/bugManager/baseFuncn.js
    /WebRoot/jsp/bugManager/batchAssignBugList.jsp
    /WebRoot/jsp/bugManager/batchBase.js
    ......省去若干不一一列出,省得在这里占篇副
    #java 类文件
    /src/cn/com/mypm/testTaskManager/service/impl/TestTaskDetailServiceImpl.class
    /src/cn/com/mypm/testTaskManager/service/impl/TestTaskDetailServiceImpl$1.class
    /src/cn/com/mypm/testTaskManager/service/impl/TestTaskDetailServiceImpl$2.class
    /src/cn/com/mypm/outlineManager/service/OutLineManagerService.class
    ......省去若干不一一列出,省得在这里占篇副

    下面是从chgFileList.txt生成脚本文件的GenePatchSrcTool 代码片段
        public void writeScrpt(){
            //读取变更清单文件
            String fileName = getClass().getResource("/chgFileList.txt").toString();
            fileName = fileName.substring(6, fileName.length());
             //获取脚本文件目录,目录为变更清单文件目录下子目录,子目录为 patchs加当前日期
            String scriptFilePath = fileName.replaceAll("chgFileList.txt", "patchs"+StringUtils.formatShortDate(new Date())+".bat");
            scriptFilePath = scriptFilePath.substring(0,scriptFilePath.lastIndexOf("/"));
            File scriptFile = new File(new File(scriptFilePath),"patchs"+StringUtils.formatShortDate(new Date())+".bat");
            StringBuffer scriptSb = new StringBuffer("#!/bin/sh \n");
            OutputStreamWriter scriptFileWrite = null;
            String mypmHome = "";
            String filePatch = "";
            String currDir = "";
            String currFileName = "";
            try {
                InputStreamReader read = new InputStreamReader(new FileInputStream(  fileName), "UTF-8");
                BufferedReader reader = new BufferedReader(read);
                String line;
                int i =1;
                //循环读取chgFileList每一行,然后生成该文件所在目录,拷贝该文件,打出拷贝成功提示的脚本
                while ((line = reader.readLine()) != null) {
                    if (!(line.trim()).startsWith("#") && !"".equals(line)) {
                        if(line.indexOf("mypmHome=")>0){  //含"mypmHome= 为MYPM安装目录
                            mypmHome = line.split("=")[1];
                        }else{
                            if(line.startsWith("/src")){以src打头,为类或配置文件 把SRC换为mypmHome+"/WEB-INF/classes"
                                filePatch = line.replaceFirst("/src", mypmHome+"/WEB-INF/classes");                           
                                currDir = filePatch.substring(0,filePatch.lastIndexOf("/"));
                                currFileName = filePatch.substring(filePatch.lastIndexOf("/")+1);
                                 //生成创建目录脚本
                                scriptSb.append("mkdir  " +currDir +" \n");
                                //生成拷贝文件脚本
                                scriptSb.append("copy " +currFileName +" "+filePatch +" /y \n");
                                //打出拷贝第i个文件成功提示
                                scriptSb.append("echo " +i +" replace  " +currFileName +" success \n");
                            }else if(line.startsWith("/WebRoot")){ //以/WebRoot"打头,为JSP 或JS、
                             //CSS在页面文件  直接换mypmHome
                                filePatch = line.replaceFirst("/WebRoot", mypmHome);
                                currDir = filePatch.substring(0,filePatch.lastIndexOf("/"));
                                currFileName = filePatch.substring(filePatch.lastIndexOf("/")+1);
                                scriptSb.append("mkdir  " +currDir +" \n");
                                scriptSb.append("cp " +currFileName +" "+filePatch +" /y \n");
                                scriptSb.append("echo " +i +" replace  " +currFileName +" success \n");
                            }
                            i++;
                        }
                    }
                }
                read.close();

            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }  
            try {
                //把缓存中的脚本写到文件中
                scriptFileWrite = new OutputStreamWriter(new FileOutputStream(scriptFile), "utf-8");
                scriptFileWrite.write(scriptSb.toString());
            } catch (UnsupportedEncodingException e) {         
                e.printStackTrace();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {           
                e.printStackTrace();
            }finally{
                if(scriptFileWrite!=null)
                    try {
                        scriptFileWrite.close();
                    } catch (IOException e) {                  
                        e.printStackTrace();
                    }
            }
        }

    下面我们来看一下,用这两个工具类生成的东东

    chgChkTool 生成的 chgFileList.txt

    mypmHome=/home/mypmcc/sfckMypm/mypm203
    /src/button.properties
    /src/resource/webwork/testTaskManager.xml
    #JSP JS\u6587\u4ef6
    /WebRoot/gantt/jsgantt.css
    /WebRoot/gantt/jsgantt.js
    /WebRoot/js/commonFunction_botm.js
    /WebRoot/js/globalVariable.js
    /WebRoot/jsp/analysisManager/analysisMain.jsp
    /WebRoot/jsp/aboutMypm.jsp
    /WebRoot/jsp/userManager/login.js
    /WebRoot/jsp/userManager/login4Ce.js
    /WebRoot/jsp/userManager/userList.jsp
    /WebRoot/jsp/userManager/userManger.js
    /WebRoot/jsp/taskManager/taskList.js
    /WebRoot/jsp/singleTestTaskManager/flwSetList.js
    /WebRoot/jsp/singleTestTaskManager/flwSetList.jsp
    /WebRoot/jsp/singleTestTaskManager/swTestTaskList.js
    /WebRoot/jsp/rolemanager/roleList.jsp
    /WebRoot/jsp/common/main.js
    /WebRoot/jsp/common/pageRefresher.jsp
    /WebRoot/jsp/common/refresh.jsp
    #\u6d4b\u8bd5\u5927\u521a
    /WebRoot/jsp/outlineManager/contextMenu.js
    /WebRoot/jsp/outlineManager/functionList.jsp
    WebRoot/jsp/outlineManager/outLineBase.js
    /WebRoot/jsp/outlineManager/outlineTree.jsp
    /WebRoot/jsp/outlineManager/outTree.js
    /WebRoot/jsp/outlineManager/testRequirementMain.jsp
    #\u6d4b\u8bd5\u7528\u4f8b
    /WebRoot/jsp/caseManager/batchAuditInitList.js
    /WebRoot/jsp/caseManager/batchAuditList.jsp
    /WebRoot/jsp/caseManager/caseBase.js
    /WebRoot/jsp/caseManager/caseBatchBase.js
    /WebRoot/jsp/caseManager/caseBoard.jsp
    /WebRoot/jsp/caseManager/caseHistory.jsp
    /WebRoot/jsp/caseManager/caseInitList.js
    /WebRoot/jsp/caseManager/caseList.jsp
    /WebRoot/jsp/caseManager/caseMgrMain.jsp
    /WebRoot/jsp/caseManager/caseTree.js
    /WebRoot/jsp/caseManager/caseTree.jsp
    /WebRoot/jsp/caseManager/exeHistory.js
    /WebRoot/jsp/caseManager/exeHistory.jsp
    /WebRoot/jsp/caseManager/lastExeCase.js
    /WebRoot/jsp/caseManager/lastExeCase.jsp
    #BUG\u7ba1\u7406
    /WebRoot/jsp/bugManager/assignPersion.js
    /WebRoot/jsp/bugManager/baseFuncn.js
    /WebRoot/jsp/bugManager/batchAssignBugList.jsp
    /WebRoot/jsp/bugManager/batchBase.js
    /WebRoot/jsp/bugManager/batchGrid.js
    /WebRoot/jsp/bugManager/broMsg.js
    /WebRoot/jsp/bugManager/bugBoard.jsp
    /WebRoot/jsp/bugManager/bugHandling.js
    /WebRoot/jsp/bugManager/bugMgrLeftTre.js
    /WebRoot/jsp/bugManager/bugMgrLeftTre.jsp
    /WebRoot/jsp/bugManager/bugMgrMain.jsp
    /WebRoot/jsp/bugManager/bugMgrRight.js
    /WebRoot/jsp/bugManager/bugMgrRight.jsp
    /WebRoot/jsp/bugManager/bugMsgList.jsp
    /WebRoot/jsp/bugManager/bugTree.js
    /WebRoot/jsp/bugManager/bugTree.jsp
    /WebRoot/jsp/bugManager/detail.jsp
    /WebRoot/jsp/bugManager/edit.js
    /WebRoot/jsp/bugManager/editBug.jsp
    /WebRoot/jsp/bugManager/flowCtrl.js
    /WebRoot/jsp/bugManager/grid.js
    /WebRoot/jsp/bugManager/handBug.jsp
    /WebRoot/jsp/bugManager/history.js
    /WebRoot/jsp/bugManager/myAllBugbaseFuncn.js
    /WebRoot/jsp/bugManager/myAllBugList.jsp
    /WebRoot/jsp/bugManager/myBugList.jsp
    /WebRoot/jsp/bugManager/relaBug.js
    /WebRoot/jsp/bugManager/relaBugList.jsp
    /WebRoot/jsp/bugManager/relaCase.js
    /WebRoot/jsp/bugManager/relaCaseList.jsp
    /WebRoot/jsp/bugManager/window.js
    #\u7c7b\u6587\u4ef6
    /src/cn/com/mypm/testTaskManager/service/impl/TestTaskDetailServiceImpl.class
    /src/cn/com/mypm/testTaskManager/service/impl/TestTaskDetailServiceImpl$1.class
    /src/cn/com/mypm/testTaskManager/service/impl/TestTaskDetailServiceImpl$2.class
    /src/cn/com/mypm/outlineManager/service/OutLineManagerService.class
    /src/cn/com/mypm/outlineManager/service/impl/OutLineManagerServiceImpl.class
    /src/cn/com/mypm/outlineManager/dto/OutLineManagerDto.class
    /src/cn/com/mypm/outlineManager/blh/OutLineManagerBlh.class
    /src/cn/com/mypm/object/mapping/OutlineInfo.hbm.xml
    /src/cn/com/mypm/object/mapping/BugBaseInfo.hbm.xml
    /src/cn/com/mypm/object/BugBaseInfo.class
    /src/cn/com/mypm/object/OutlineInfo.class
    /src/cn/com/mypm/object/TestCaseInfo.class
    /src/cn/com/mypm/object/TestResult.class
    /src/cn/com/mypm/impExpManager/service/ImpExpManagerService.class
    /src/cn/com/mypm/impExpManager/service/impl/ImpExpManagerServiceImpl.class
    /src/cn/com/mypm/impExpManager/dto/ExpBugInfo.class
    /src/cn/com/mypm/impExpManager/blh/BugImpExpBlh.class
    /src/cn/com/mypm/impExpManager/blh/BugImpExpBlh$1.class
    /src/cn/com/mypm/impExpManager/blh/CaseImpExpBlh.class
    /src/cn/com/mypm/impExpManager/blh/CaseImpExpBlh$1.class
    /src/cn/com/mypm/framework/security/MenuServlet.class
    /src/cn/com/mypm/common/blh/CommonBlh.class
    /src/cn/com/mypm/caseManager/service/CaseManagerService.class
    /src/cn/com/mypm/caseManager/service/impl/CaseManagerServiceImpl.class
    /src/cn/com/mypm/caseManager/blh/CaseManagerBlh.class
    /src/cn/com/mypm/bugManager/service/impl/BugManagerServiceImpl.class
    /src/cn/com/mypm/bugManager/service/impl/BugCommonServiceImpl.class
    /src/cn/com/mypm/bugManager/blh/RelaCaseBlh.class
    /src/cn/com/mypm/bugManager/blh/BugManagerBlh.class
    /src/cn/com/mypm/bugManager/blh/BugFlowControlBlh.class
    /src/cn/com/mypm/bugManager/blh/BugFlowControlBlh$ListObjectComparator.class

    3.GenePatchSrcTool 生成的补丁脚本内容

    #!/bin/sh

    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes
    cp -f ./button.properties /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/button.properties
    echo 1 replace  button.properties success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/resource/webwork
    cp -f ./testTaskManager.xml /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/resource/webwork/testTaskManager.xml
    echo 2 replace  testTaskManager.xml success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/gantt
    cp -f ./jsgantt.css /home/mypmcc/sfckMypm/mypm203/gantt/jsgantt.css
    echo 3 replace  jsgantt.css success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/gantt
    cp -f ./jsgantt.js /home/mypmcc/sfckMypm/mypm203/gantt/jsgantt.js
    echo 4 replace  jsgantt.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/js
    cp -f ./commonFunction_botm.js /home/mypmcc/sfckMypm/mypm203/js/commonFunction_botm.js
    echo 5 replace  commonFunction_botm.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/js
    cp -f ./globalVariable.js /home/mypmcc/sfckMypm/mypm203/js/globalVariable.js
    echo 6 replace  globalVariable.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/analysisManager
    cp -f ./analysisMain.jsp /home/mypmcc/sfckMypm/mypm203/jsp/analysisManager/analysisMain.jsp
    echo 7 replace  analysisMain.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp
    cp -f ./aboutMypm.jsp /home/mypmcc/sfckMypm/mypm203/jsp/aboutMypm.jsp
    echo 8 replace  aboutMypm.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/userManager
    cp -f ./login.js /home/mypmcc/sfckMypm/mypm203/jsp/userManager/login.js
    echo 9 replace  login.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/userManager
    cp -f ./login4Ce.js /home/mypmcc/sfckMypm/mypm203/jsp/userManager/login4Ce.js
    echo 10 replace  login4Ce.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/userManager
    cp -f ./userList.jsp /home/mypmcc/sfckMypm/mypm203/jsp/userManager/userList.jsp
    echo 11 replace  userList.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/userManager
    cp -f ./userManger.js /home/mypmcc/sfckMypm/mypm203/jsp/userManager/userManger.js
    echo 12 replace  userManger.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/taskManager
    cp -f ./taskList.js /home/mypmcc/sfckMypm/mypm203/jsp/taskManager/taskList.js
    echo 13 replace  taskList.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/singleTestTaskManager
    cp -f ./flwSetList.js /home/mypmcc/sfckMypm/mypm203/jsp/singleTestTaskManager/flwSetList.js
    echo 14 replace  flwSetList.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/singleTestTaskManager
    cp -f ./flwSetList.jsp /home/mypmcc/sfckMypm/mypm203/jsp/singleTestTaskManager/flwSetList.jsp
    echo 15 replace  flwSetList.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/singleTestTaskManager
    cp -f ./swTestTaskList.js /home/mypmcc/sfckMypm/mypm203/jsp/singleTestTaskManager/swTestTaskList.js
    echo 16 replace  swTestTaskList.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/rolemanager
    cp -f ./roleList.jsp /home/mypmcc/sfckMypm/mypm203/jsp/rolemanager/roleList.jsp
    echo 17 replace  roleList.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/common
    cp -f ./main.js /home/mypmcc/sfckMypm/mypm203/jsp/common/main.js
    echo 18 replace  main.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/common
    cp -f ./pageRefresher.jsp /home/mypmcc/sfckMypm/mypm203/jsp/common/pageRefresher.jsp
    echo 19 replace  pageRefresher.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/common
    cp -f ./refresh.jsp /home/mypmcc/sfckMypm/mypm203/jsp/common/refresh.jsp
    echo 20 replace  refresh.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/outlineManager
    cp -f ./contextMenu.js /home/mypmcc/sfckMypm/mypm203/jsp/outlineManager/contextMenu.js
    echo 21 replace  contextMenu.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/outlineManager
    cp -f ./functionList.jsp /home/mypmcc/sfckMypm/mypm203/jsp/outlineManager/functionList.jsp
    echo 22 replace  functionList.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/outlineManager
    cp -f ./outlineTree.jsp /home/mypmcc/sfckMypm/mypm203/jsp/outlineManager/outlineTree.jsp
    echo 24 replace  outlineTree.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/outlineManager
    cp -f ./outTree.js /home/mypmcc/sfckMypm/mypm203/jsp/outlineManager/outTree.js
    echo 25 replace  outTree.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/outlineManager
    cp -f ./testRequirementMain.jsp /home/mypmcc/sfckMypm/mypm203/jsp/outlineManager/testRequirementMain.jsp
    echo 26 replace  testRequirementMain.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/caseManager
    cp -f ./batchAuditInitList.js /home/mypmcc/sfckMypm/mypm203/jsp/caseManager/batchAuditInitList.js
    echo 27 replace  batchAuditInitList.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/caseManager
    cp -f ./batchAuditList.jsp /home/mypmcc/sfckMypm/mypm203/jsp/caseManager/batchAuditList.jsp
    echo 28 replace  batchAuditList.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/caseManager
    cp -f ./caseBase.js /home/mypmcc/sfckMypm/mypm203/jsp/caseManager/caseBase.js
    echo 29 replace  caseBase.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/caseManager
    cp -f ./caseBatchBase.js /home/mypmcc/sfckMypm/mypm203/jsp/caseManager/caseBatchBase.js
    echo 30 replace  caseBatchBase.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/caseManager
    cp -f ./caseBoard.jsp /home/mypmcc/sfckMypm/mypm203/jsp/caseManager/caseBoard.jsp
    echo 31 replace  caseBoard.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/caseManager
    cp -f ./caseHistory.jsp /home/mypmcc/sfckMypm/mypm203/jsp/caseManager/caseHistory.jsp
    echo 32 replace  caseHistory.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/caseManager
    cp -f ./caseInitList.js /home/mypmcc/sfckMypm/mypm203/jsp/caseManager/caseInitList.js
    echo 33 replace  caseInitList.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/caseManager
    cp -f ./caseList.jsp /home/mypmcc/sfckMypm/mypm203/jsp/caseManager/caseList.jsp
    echo 34 replace  caseList.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/caseManager
    cp -f ./caseMgrMain.jsp /home/mypmcc/sfckMypm/mypm203/jsp/caseManager/caseMgrMain.jsp
    echo 35 replace  caseMgrMain.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/caseManager
    cp -f ./caseTree.js /home/mypmcc/sfckMypm/mypm203/jsp/caseManager/caseTree.js
    echo 36 replace  caseTree.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/caseManager
    cp -f ./caseTree.jsp /home/mypmcc/sfckMypm/mypm203/jsp/caseManager/caseTree.jsp
    echo 37 replace  caseTree.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/caseManager
    cp -f ./exeHistory.js /home/mypmcc/sfckMypm/mypm203/jsp/caseManager/exeHistory.js
    echo 38 replace  exeHistory.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/caseManager
    cp -f ./exeHistory.jsp /home/mypmcc/sfckMypm/mypm203/jsp/caseManager/exeHistory.jsp
    echo 39 replace  exeHistory.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/caseManager
    cp -f ./lastExeCase.js /home/mypmcc/sfckMypm/mypm203/jsp/caseManager/lastExeCase.js
    echo 40 replace  lastExeCase.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/caseManager
    cp -f ./lastExeCase.jsp /home/mypmcc/sfckMypm/mypm203/jsp/caseManager/lastExeCase.jsp
    echo 41 replace  lastExeCase.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./assignPersion.js /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/assignPersion.js
    echo 42 replace  assignPersion.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./baseFuncn.js /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/baseFuncn.js
    echo 43 replace  baseFuncn.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./batchAssignBugList.jsp /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/batchAssignBugList.jsp
    echo 44 replace  batchAssignBugList.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./batchBase.js /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/batchBase.js
    echo 45 replace  batchBase.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./batchGrid.js /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/batchGrid.js
    echo 46 replace  batchGrid.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./broMsg.js /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/broMsg.js
    echo 47 replace  broMsg.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./bugBoard.jsp /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/bugBoard.jsp
    echo 48 replace  bugBoard.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./bugHandling.js /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/bugHandling.js
    echo 49 replace  bugHandling.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./bugMgrLeftTre.js /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/bugMgrLeftTre.js
    echo 50 replace  bugMgrLeftTre.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./bugMgrLeftTre.jsp /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/bugMgrLeftTre.jsp
    echo 51 replace  bugMgrLeftTre.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./bugMgrMain.jsp /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/bugMgrMain.jsp
    echo 52 replace  bugMgrMain.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./bugMgrRight.js /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/bugMgrRight.js
    echo 53 replace  bugMgrRight.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./bugMgrRight.jsp /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/bugMgrRight.jsp
    echo 54 replace  bugMgrRight.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./bugMsgList.jsp /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/bugMsgList.jsp
    echo 55 replace  bugMsgList.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./bugTree.js /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/bugTree.js
    echo 56 replace  bugTree.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./bugTree.jsp /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/bugTree.jsp
    echo 57 replace  bugTree.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./detail.jsp /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/detail.jsp
    echo 58 replace  detail.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./edit.js /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/edit.js
    echo 59 replace  edit.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./editBug.jsp /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/editBug.jsp
    echo 60 replace  editBug.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./flowCtrl.js /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/flowCtrl.js
    echo 61 replace  flowCtrl.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./grid.js /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/grid.js
    echo 62 replace  grid.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./handBug.jsp /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/handBug.jsp
    echo 63 replace  handBug.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./history.js /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/history.js
    echo 64 replace  history.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./myAllBugbaseFuncn.js /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/myAllBugbaseFuncn.js
    echo 65 replace  myAllBugbaseFuncn.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./myAllBugList.jsp /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/myAllBugList.jsp
    echo 66 replace  myAllBugList.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./myBugList.jsp /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/myBugList.jsp
    echo 67 replace  myBugList.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./relaBug.js /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/relaBug.js
    echo 68 replace  relaBug.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./relaBugList.jsp /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/relaBugList.jsp
    echo 69 replace  relaBugList.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./relaCase.js /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/relaCase.js
    echo 70 replace  relaCase.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./relaCaseList.jsp /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/relaCaseList.jsp
    echo 71 replace  relaCaseList.jsp success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/jsp/bugManager
    cp -f ./window.js /home/mypmcc/sfckMypm/mypm203/jsp/bugManager/window.js
    echo 72 replace  window.js success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/testTaskManager/service/impl
    cp -f ./TestTaskDetailServiceImpl.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/testTaskManager/service/impl/TestTaskDetailServiceImpl.class
    echo 73 replace  TestTaskDetailServiceImpl.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/testTaskManager/service/impl
    cp -f ./TestTaskDetailServiceImpl$1.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/testTaskManager/service/impl/TestTaskDetailServiceImpl$1.class
    echo 74 replace  TestTaskDetailServiceImpl$1.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/testTaskManager/service/impl
    cp -f ./TestTaskDetailServiceImpl$2.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/testTaskManager/service/impl/TestTaskDetailServiceImpl$2.class
    echo 75 replace  TestTaskDetailServiceImpl$2.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/outlineManager/service
    cp -f ./OutLineManagerService.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/outlineManager/service/OutLineManagerService.class
    echo 76 replace  OutLineManagerService.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/outlineManager/service/impl
    cp -f ./OutLineManagerServiceImpl.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/outlineManager/service/impl/OutLineManagerServiceImpl.class
    echo 77 replace  OutLineManagerServiceImpl.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/outlineManager/dto
    cp -f ./OutLineManagerDto.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/outlineManager/dto/OutLineManagerDto.class
    echo 78 replace  OutLineManagerDto.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/outlineManager/blh
    cp -f ./OutLineManagerBlh.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/outlineManager/blh/OutLineManagerBlh.class
    echo 79 replace  OutLineManagerBlh.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/object/mapping
    cp -f ./OutlineInfo.hbm.xml /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/object/mapping/OutlineInfo.hbm.xml
    echo 80 replace  OutlineInfo.hbm.xml success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/object/mapping
    cp -f ./BugBaseInfo.hbm.xml /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/object/mapping/BugBaseInfo.hbm.xml
    echo 81 replace  BugBaseInfo.hbm.xml success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/object
    cp -f ./BugBaseInfo.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/object/BugBaseInfo.class
    echo 82 replace  BugBaseInfo.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/object
    cp -f ./OutlineInfo.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/object/OutlineInfo.class
    echo 83 replace  OutlineInfo.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/object
    cp -f ./TestCaseInfo.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/object/TestCaseInfo.class
    echo 84 replace  TestCaseInfo.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/object
    cp -f ./TestResult.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/object/TestResult.class
    echo 85 replace  TestResult.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/impExpManager/service
    cp -f ./ImpExpManagerService.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/impExpManager/service/ImpExpManagerService.class
    echo 86 replace  ImpExpManagerService.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/impExpManager/service/impl
    cp -f ./ImpExpManagerServiceImpl.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/impExpManager/service/impl/ImpExpManagerServiceImpl.class
    echo 87 replace  ImpExpManagerServiceImpl.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/impExpManager/dto
    cp -f ./ExpBugInfo.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/impExpManager/dto/ExpBugInfo.class
    echo 88 replace  ExpBugInfo.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/impExpManager/blh
    cp -f ./BugImpExpBlh.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/impExpManager/blh/BugImpExpBlh.class
    echo 89 replace  BugImpExpBlh.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/impExpManager/blh
    cp -f ./BugImpExpBlh$1.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/impExpManager/blh/BugImpExpBlh$1.class
    echo 90 replace  BugImpExpBlh$1.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/impExpManager/blh
    cp -f ./CaseImpExpBlh.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/impExpManager/blh/CaseImpExpBlh.class
    echo 91 replace  CaseImpExpBlh.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/impExpManager/blh
    cp -f ./CaseImpExpBlh$1.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/impExpManager/blh/CaseImpExpBlh$1.class
    echo 92 replace  CaseImpExpBlh$1.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/framework/security
    cp -f ./MenuServlet.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/framework/security/MenuServlet.class
    echo 93 replace  MenuServlet.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/common/blh
    cp -f ./CommonBlh.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/common/blh/CommonBlh.class
    echo 94 replace  CommonBlh.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/caseManager/service
    cp -f ./CaseManagerService.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/caseManager/service/CaseManagerService.class
    echo 95 replace  CaseManagerService.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/caseManager/service/impl
    cp -f ./CaseManagerServiceImpl.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/caseManager/service/impl/CaseManagerServiceImpl.class
    echo 96 replace  CaseManagerServiceImpl.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/caseManager/blh
    cp -f ./CaseManagerBlh.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/caseManager/blh/CaseManagerBlh.class
    echo 97 replace  CaseManagerBlh.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/bugManager/service/impl
    cp -f ./BugManagerServiceImpl.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/bugManager/service/impl/BugManagerServiceImpl.class
    echo 98 replace  BugManagerServiceImpl.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/bugManager/service/impl
    cp -f ./BugCommonServiceImpl.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/bugManager/service/impl/BugCommonServiceImpl.class
    echo 99 replace  BugCommonServiceImpl.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/bugManager/blh
    cp -f ./RelaCaseBlh.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/bugManager/blh/RelaCaseBlh.class
    echo 100 replace  RelaCaseBlh.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/bugManager/blh
    cp -f ./BugManagerBlh.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/bugManager/blh/BugManagerBlh.class
    echo 101 replace  BugManagerBlh.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/bugManager/blh
    cp -f ./BugFlowControlBlh.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/bugManager/blh/BugFlowControlBlh.class
    echo 102 replace  BugFlowControlBlh.class success
    mkdir -p /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/bugManager/blh
    cp -f ./BugFlowControlBlh$ListObjectComparator.class /home/mypmcc/sfckMypm/mypm203/WEB-INF/classes/cn/com/mypm/bugManager/blh/BugFlowControlBlh$ListObjectComparator.class
    echo 103 replace  BugFlowControlBlh$ListObjectComparator.class success

  • 相关阅读:
    location url 反向代理到来机的其它端口 gitlab
    PortSentry是入侵检测工具中配置最简单、效果最直接的工具之一
    iptables下state的4种形式
    windows  远程桌面命令 mstsc
    linux中解决SSH连接慢问题 关键点GSSAPIAuthentication
    无密码登录远程主机
    openfire 服务器名称:后面的黄色叹号
    ssh -v root@xxxxx 显示登录的细节
    mysql 只导数据不含表结构
    磁盘空间占满inode结点没用完 并删除了文件但是释放不了
  • 原文地址:https://www.cnblogs.com/mypm/p/2081034.html
Copyright © 2011-2022 走看看