介面自動化測試(用例優化)

2021-10-06 06:39:50 字數 3300 閱讀 3893

之前文章實現了乙個簡單的介面自動化測試用例,下面的文章將講解如何將測試用例進行優化,並用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...