之前文章實現了乙個簡單的介面自動化測試用例,下面的文章將講解如何將測試用例進行優化,並用excel**進行資料驅動,將測試結果輸出到excel。
首先我們先說一下資料驅動,資料驅動即通過讀取檔案內容,將所需要的資料通過檔案讀寫的方式進行輸入輸出。
這裡我推薦使用excel來進行資料驅動。
1.資料驅動:
這裡我新建了乙個excelutil類來進行資料驅動方法的封裝。
有如下幾個方法:
①構造方法
/**
* 建構函式,初始化excel資料
* @param filepath
* @param sheetname
*/excelutil(string filepath,string sheetname) catch (exception e)
}
②根據行號和列號來取得對應資料
/**
* 根據行號和列號來取得對應資料
* @param row
* @param column
* @return
*/public string getexceldatebyindex(int row,int column)
③清理excel裡的內容(後續為了存入資料)
/**
* 清理excel裡的內容
* @throws ioexception
*/public void cleanexceldatatoindex() throws ioexception
outputstream out = new fileoutputstream("f:\\test_work_csj\\介面自動化\\test.xlsx");
workbook.write(out);
system.out.println("資料刪除成功");
}
④處理excel2003/2007的區別
/**
* 得到2003/2007不同的區別
* @param file
* @return
* @throws ioexception
*/public static workbook getworkbok(file file) throws ioexceptionelse if(file.getname().endswith("xlsx"))
return wb;
}
⑤用例通過的處理(寫入檔案)
/**
* 用例通過,將介面名,用例名,狀態碼,響應資料,pass
* @param name
* @param code
* @param response
* @throws ioexception
*/public void writeexceldatatoindexpass(string name,string testname,string code,string response) throws ioexception catch (exception e) finally
} catch (exception e)
}system.out.println("資料匯出成功");
}
⑥用例失敗的處理(寫入檔案)
/**
* 用例不通過,將介面名,用例名,狀態碼,響應資料,fail
* @param name
* @param testname
* @param code
* @param response
* @throws ioexception
*/public void writeexceldatatoindexfail(string name,string testname,string code,string response) throws ioexception catch (exception e) finally
} catch (exception e)
}
system.out.println("資料匯出成功");
}
這個類主要封裝了幾個針對excel**的讀寫等操作,為了後續讀取引數和寫入資料。
之前有說過介面自動化測試無非五個要素:
①訪問的路徑(url)
②傳輸的引數
③資訊頭型別
④處理響應資料
⑤斷言下面我們針對這五個要素進行優化,將其封裝成配置方法,使其呼叫簡單方便。
1.路徑:通過行數來讀取url。
/**
* 資料驅動返回url,引數為行數
* @param url
* @param line
* @return
* @throws ioexception
*/public static string geturl(int line) throws ioexception
2.傳輸的引數:
/**
* 資料驅動返回引數,引數為行數
* @param params
* @param line
* @return
* @throws ioexception
*/public static string getparams(int line) throws ioexception
3.資訊頭:
/**
* 資料驅動返回資訊頭型別
* @param line
* @return
* @throws ioexception
*/public static hashmapgetheadertype(int line) throws ioexception
return hashmap;
}
先看下現在的用例:
@test
public void getapicarinfo1() throws clientprotocolexception, ioexception
count這裡為行號,使用變數來資料驅動獲取資料。所以整個用例所需要的地方就只有get/post方法名。
這篇主要說明了如何資料驅動獲取url,引數和資訊頭;即所需要傳送的請求要素。
後面的文章我將詳細講述響應要素,即如何處理的響應,如何斷言,如何寫入檔案的處理。利用這幾點將很輕鬆的實現介面自動化測試。
php介面自動化測試用例編寫
最近用php寫完了一版專案的介面,有點多,意味著bug也會很多,人工測試起來有點麻煩,於是準備用php編寫乙個測試bug的程式。以前是沒有這種意識的。這篇文章主要是提醒我未來程式寫完後,能養成編寫介面自動化測試用例的習慣。其實編寫介面自動化測試用例很簡單,比如測試乙個登陸的介面 public fun...
介面自動化測試用例設計方法
一 介面自動化測試用例設計方法 1.1 介面引數覆蓋 介面測試通過輸入使用引數組合,獲得伺服器返回值,並根據預先設定的規則判斷是否符合預期值。在介面測試中,根據介面的功能不同,需要側重檢測的方面也不同。主要從以下幾個方面考慮用例設計 1 引數型別 數值型 字元型 布林型 列舉型 組合型別 a.特定介...
介面自動化測試框架 完整測試用例模板
分享一下自己的介面自動化測試框架,希望能給有需要的道友們一點幫助,大神勿噴希望能指點一下。動手寫介面自動化測試框架前,首先要根據使用需求和使用環境設計合適的介面自動化測試框架,決定用什麼格式進行資料驅動,設計測試用例模板的格式很重要,基本設計完就是圍繞這個模板進行實現了,有的人用yaml,csv,x...