zoukankan      html  css  js  c++  java
  • 接口测试-自动化-Java实现-HtmlFile

    接下来要对TestMain中的方法逐个进行分析:

    首先 是HtmlFile .java,在主方法中的应用为:

    HtmlFile hf = new HtmlFile();
    hf.createLog("C:/Code/1.html");

    看名称就知道,其实实现的东西很简单就是创建1.html作为Log输出文件。

    具体的实现代码如下:

    public class HtmlFile implements IFile {
        
        private FileHandler fileHandler;
        private Logger logger = Logger.getLogger(HtmlFile.class.getName());
    
        @Override
        public void write(String p_info) {
            // TODO Auto-generated method stub
        }
    
        @Override
        public void createLog(String p_info) {
            // TODO Auto-generated method stub
            // String p_info 是文件路径
            try {
                fileHandler = new FileHandler(p_info);
            } catch (SecurityException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            fileHandler.setFormatter(new HtmlFormatter());
            logger.addHandler(fileHandler);
        }
    
        @Override
        public void closeLog() {
            // TODO Auto-generated method stub
            fileHandler.close();
            RecordStore.p_pass = 0;
            RecordStore.p_fail = 0;
            RecordStore.result = "";
            RecordStore.expected = "";
            RecordStore.actual = "";
            RecordStore.instruction = "";
            RecordStore.i = 0;
        }
    
        @Override
        public void write(String p_info1, String p_info2) {
            // TODO Auto-generated method stub
            
        }
    
    
    
        @Override
        public String read() {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public String read(String p_info) {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public String read(String p_info1, String p_info2) {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public void write(Object p_info1, Object p_info2, Object p_info3) {
            // TODO Auto-generated method stub
            // 重写方法的时候,第一个值是 Case说明,第二个是实际结果,第三个是标识是否成功
            RecordStore.i++;
            RecordStore.instruction = (String) p_info1;
            RecordStore.actual = p_info2;
            if (p_info1 != null && p_info2 != null && p_info1 != "") {
                if ("True".equalsIgnoreCase((String) p_info3)) {
                    RecordStore.result = "True";
                    RecordStore.p_pass ++;
                }else {
                    RecordStore.result = "False";
                    RecordStore.p_fail ++;
                }
                logger.info((String) p_info1);
            }
        }
    
    }

    解释:

    1. 因为这个类,实现了IFile的接口的方法,而IFile只是定义了不同的写,读,创建文件的方法。所以这里只是为了更好的兼容以后的输出不同的Log格式,没有什么太大的用处。

    2. 实现createLog方法,通过手动输入“FilePath”的方式来创建一个Html文件来保存文件。

    注意以下代码:

    fileHandler.setFormatter(new HtmlFormatter());

    因为是使用HTML的格式来输出统计报告,所以需要使用到setFormatter 方法,而Java中原有的是针对ini,或者 Properties格式的文件进行的格式化,所以需要自己重新写一个针对HTML的格式化类。即 HtmlFormatter();

    3. 实现closeLog()方法,首先是关闭文件系统,另外需要把所有的记录清空掉。

    4. 实现Write()方法,把一些信息放到RecordStore中。剩下的信息,写入log中

  • 相关阅读:
    【html5构建触屏网站】之touch事件
    优化网站加载速度的14个技巧
    存储
    [概念] javascript构造函数和普通函数的
    nodejs中的 Cannot read property'text' of undefined 问题
    整理js继承
    清除浮动的五种方法
    用canvas绘制一个时钟
    javascript运动框架
    $(document).ready()与window.onload的区别(转发)
  • 原文地址:https://www.cnblogs.com/kevinqinan/p/4580997.html
Copyright © 2011-2022 走看看