標籤:
接下來要對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中
介面測試-自動化-Java實現-HtmlFile