軟件測試中OPENAPI的測試用例編寫方法
接口測試用例的編寫方式實際上和普通測試用例即有相似的地方也有自身的特點。首先編寫測試用例都有用例編號,用例說明,前置條件,測試步驟和檢驗點五個要素。而前置條件的準備是區別最大的,通常前置條件的準備都是指測試環境(如host配置文件的準備)和測試數據的準備。由于配置文件在每個項目都是相同的。所以一般整個項目只寫一次,即在所有TestCase開始的部分進行聲明。
接口測試的數據準備通常是通過直接往數據庫里邊插入數據來實現的。為了保證測試用例之間相互不會干擾,通常需要為每個測試用例單獨準備測試數據。這點是和功能自動化測試用例有相似之處,因為他們都是自動化測試。
至于測試步驟和校驗點的描述由于接口測試本身也是開發人員,所以可以借鑒程序開發的一些優良習慣,如使用變量來取代具體的描述,這樣可以讓用例顯得簡潔。
如@T1=傳入參數起始時間
@T2=傳入參數結束時間
這樣在實際用例編寫過程中可以用@T1來表示傳入參數起始時間了。
而在用例說明中,實際上有些API用例涉及的流程非常復雜,而需求文檔又是條條框框的文字說明。非常難以幫助測試人員理解需求。而且在測試用例評審的時候也很難描述清楚問題,這時候測試人員有必要借助流程圖。下面是兩個例子
一個例子的圖用于描述程序流程
一個例子的圖用例描述和時間軸關聯比較強烈的用例。之所以涉及時間軸的用例我用圖形來表示,是因為我覺得比較直觀。所以建議寫測試用例的同行在寫測試用例的時候不要拘泥于形式,只要能清晰的描述問題,不管黑貓白貓能抓老鼠就是好貓。
如下例:
Case1 | app_subsc_ctrl的記錄行中Statues=1 |
測試方法 | TestgetAppSubscCtrlByAppAndInstanceId1 |
輸入參數 | Appid=”getSubscCtrlApp01” InstanceId= “ getSubscCtrlInstance01” |
期望輸出,檢查點 | return null |
測試數據 | 準備Isv_User_Profile表數據,準備APP表數據,準備app_subsc_ctrl記錄 |
Case2 | 應用不存在 |
測試方法 | TestgetAppSubscCtrlByAppAndInstanceId2 |
輸入參數 | Appid=”getSubscCtrlApp01” InstanceId= “ getSubscCtrlInstance02” |
期望輸出,檢查點 | return null |
測試數據 | 準備Isv_User_Profile表數據,準備app_subsc_ctrl記錄 |
Case3 | ISV不存在 |
測試方法 | TestgetAppSubscCtrlByAppAndInstanceId3 |
輸入參數 | Appid=”getSubscCtrlApp01” InstanceId= “ getSubscCtrlInstance03” |
期望輸出,檢查點 | return null |
測試數據 | 準備Isv_User_Profile表數據,準備APP表數據,準備app_subsc_ctrl記錄 |
例二:
續訂:如圖CaseA | 前置條件: 1.準備合法的應用(uu插件) 2.準備合法的isv(國際站) 3.準備合法的用戶 4.數據庫中存在正在使用的訂購 測試步驟 1.設置合法的參數 2.拼裝url 3.根據url調用接口 |
其他檢查同上,再檢查app_subsc_ctrl.begindate=tb1 app_subsc_ctrl.enddate=te2 |
續訂:如圖CaseB | … | 其他檢查同上,再檢查app_subsc_ctrl.begindate=tb1 app_subsc_ctrl.enddate=te2 |
續訂:如圖CaseC | … | 其他檢查同上,再檢查app_subsc_ctrl.begindate=今天 app_subsc_ctrl.enddate=te2 |
續訂:如圖CaseD | … | 其他檢查同上,再檢查app_subsc_ctrl.begindate=today app_subsc_ctrl.enddate=te1 |
續訂:如圖CaseE | … | 其他檢查同上,再檢查app_subsc_ctrl.begindate=tb1 app_subsc_ctrl.enddate=te1 |
續訂:如圖CaseF | … | 其他檢查同上,再檢查app_subsc_ctrl.begindate=today app_subsc_ctrl.enddate=te1 |
文章來源于領測軟件測試網 http://www.k11sc111.com/