接口测试-自动化-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中

原文地址:https://www.cnblogs.com/kevinqinan/p/4580997.html