前言
這是一個給測試小白用的“自動化用例”的工具跟代碼,大神們看了別見笑。純屬學習用的。
為啥叫接口自動化用例工具
當然就是導入我們常規(guī)寫的用例excel,然后他就會咻咻咻~~~的把所有的用例接口跑一遍,然后我們就坐著等,完成后他就會打印出文本,我們就可以在文本查看各種請求狀態(tài) 如:“接口成功或失敗”,“斷言結果”,“異常狀態(tài)”,“各個接口的返回結果”
我們先來看下這個工具使用結果,不然大家一臉懵逼的不知道我在說啥,也不知道干啥用的。
我們先來看下用例表:
如上圖,我們把接口一行行的寫上去,然后打開我們的工具如下圖:

我們看到就是點擊開始執(zhí)行,結束后自動生成文件,從gif上我們可以看到,我們對登陸接口進行壓測,對測試接口進行普通測試,他就會分別打印對應的文本,也可以直接從抓包工具直接可以看具體信息。
看到這如果你有感興趣的話,我們就來開始講解如何使用
使用說明:
1、運行程序

2、界面說明:

???從這張圖片里,我們唯一看不懂的就是那個 “是否啟動關聯順序請求” 是吧。
???什么是關聯順序,就是我們有時候第一個接口請求完成后,第二個接口要拿第一個接口里的參數,比如:我第一個接口為登陸接口,登陸完成后,要把Token值給第二個接口使用。這時候我們就要勾選“是否啟動關聯請求”。
3、我們先來說下3種模式、普通模式、壓測模式、關聯順序模式。
??????普通模式:
????????就是不要去勾選那個關聯順序請求,然后設置下并發(fā)數量,也不要設置太多,盡量選擇合適的值來設置。
????????缺點就是我們的所有值都是寫死的。如果要動態(tài)取值,那么就用“關聯順序”
??????壓測模式:
????????有人就疑問,壓測哪里開啟,其實就是在用例表開啟,我們先來看下用例表,從下圖我們可以看到有個“壓測”,輸入值,他就會對這個接口進行壓測,里面有備注就不在說明了
??????關聯順序模式:
????????關聯順序模就是勾選那個框框,然后并發(fā)數量就會失效,因為我們是取指定接口的值,所以只能按順序從第一個接口慢慢請求完成,如果哪個接口取值失敗,就會中斷,在文本會打印出哪個序號下的接口發(fā)生中斷,檢測用例表填寫規(guī)則跟接口返回參數是否符合你的要求,如何取哪接口的值,我們會叫用例表使用里面說明。
4、三大模式講完了,我們就來講解下最重要的部分,那就是用例表的使用
這個會比較復雜點,但是如果你了解了使用方法,其實很簡單的。無非就是復制粘貼,改改字段值,特別是公司接口模式都是差不多的。首先我們來看下完整的用例表:

??????先從表名開始
???????我們左下角有個2個表,一個是“測試”,一個“順序”,這名字是隨便取的,但不要有重復的,避免錯誤。我們每次執(zhí)行只會執(zhí)行一個表的接口,不能執(zhí)行全部的表。
??????然后我們來看各個列的值,其實里面一些特殊用法都有備注
????????(1) 序號:最好按順序來,用于標志是哪個接口
????????(2) 接口說明:這個就不說了
????????(3) Url:這個也不說了
????????(4) Header:這個也不說了,如果Hearder有用到動態(tài)值,那么就參考【關聯順序】的使用,后面會統(tǒng)一講解
????????(5) Http:這個目前只支持get跟post(包含表單,跟json模式)暫不支持上傳文件跟圖片之類的,后續(xù)補充,謝謝。
??????????????傳值就固定3種 : get、post_form和post_json
??????????????post_form就是post的表單模式,post_json就是post提交json模式
????????(6) json:就是Http要設置post_json模式,然后在json列直接把整串json復制進去就可以了。
????????(7) 字段:就是Http設置get或者post_form才能使用,post_json模式就不用填寫這一列了。當然咯get或者post_form就不用填寫json那一列了。我們先來看圖片如何設置的:

????????這一看我們就懂了吧,哪個字段等于哪個值。很明顯【注意:】2個字段直接要用換行來處理,不然會出現問題,至于怎么換行自己百度excel怎么換行,windows是Alt+Enter ,Mac我就不知道了。至于我們要動態(tài)取值,還是那句話跟Header一樣,我們后面會統(tǒng)一在參【關聯順序】的使用,后面會統(tǒng)一講解
????????(7) 壓測:寫法就是 1000,10 第一個為要壓測的總數量,第二個為并發(fā)數量
????????(8) 斷言:
?????????????這個就比較復雜了點,跟后面的【關聯順序】有的類似、
????????????這里的斷言有2種,1種是指定返回的字段等于某個值,第2種就是指定返回的字段等于數據庫的哪個值,我們先來看下圖片

我們可以看到多個斷言條件就是跟字段的一樣,用換行來處理。
我們先假設返回的json為
{
"mobile": "15000000000",
"User": {
"name ": "張三",
"info ": "xxxxxxx"
},
"sites": [{
"pageIndex": 2,
"pageSize": 6
}, {
"pageIndex": 1,
"pageSize": 6
}]
}
我沒一條條條件來說明:
首先:
1、mobile = 15000000000 ????????看下就知道就是一層的mobile等于啥值
2、User,name = 張三??????????????????????????????我們通過“,”來代表下一層數據,,就是User里面的name值
3、sites[1],pageIndex = 1 /4、??????????????????????就sites是數組,取出第一層的sites的第2個數組值里的pageIndex值
4、還有一種情況就是最外層是一個數組,我們備注里面也說了用 [0],User,name這樣的方式,第一個數組里面的User里面的name值
5、最后一個:sites[1],pageIndex = 數據庫(特步,shujuku[5],user,name)
前面的取字段我們就不管了,已經說了,來說等號后面 ??“ 數據庫(特步,shujuku[5],user,name) ”??可能一臉懵逼,我們先來看下數據表的excel

意思是:工作簿表為“特步”(可以理解為,當前項目是特步)
序號為“1”,數據庫名字為“shujuku”,表名“user”,字段“name”
這樣是不是就能理解了。
到里面可以先嘗試下怎么操作,可以試下普通測試,跟壓力測,我都一份測試數據,你們可以在那份測試數據進行修改就可以了。
5、接下來我們來講“關聯順序請求”
其實用法都一樣,唯一區(qū)別就是界面要勾選“是否關聯順序請求”
其二就是Header、json、字段 會存在動態(tài)獲取值。所以我們加了一個標識符,,那就是【】,有【】就會代表需要動態(tài)取值,然后括號里面的內容寫法就是跟斷言的寫法一樣,只是第一個要序號。
假如:我們要取接口10的返回json串的User下的name值:
則用【10,User,name】,如果含有數組,則,【10,User[0],name】如果最外層就是個數組則使用【10,[0],User,name】
如果需要時間戳:則使用【時間戳】,就會獲取當前的時間戳,單位為秒。
比如Heard
Content-Type:application/json; charset=utf-8;time=【時間戳】
比如Json
{
"password": "e10adc3949ba59abbe56e057f20f883e",
"mobile": 【1,user,_id】
}
比如字段:
appId = 【1,user,_id】
timestamp = 【時間戳】
sign = 44f443aa92f30f03ae0fff00eaa80a24