大家好悲关,我是金魚座谎僻,一個(gè)走在測(cè)試領(lǐng)域這片藍(lán)海中, 蹉跎前行的技術(shù)渣渣寓辱,唯有一直走下去艘绍,也許能改變點(diǎn)什么,加油秫筏!
前面對(duì)小框架做了基本上介紹诱鞠,下面來說明下如何使用apitestforhttp來開展一個(gè)項(xiàng)目的接口測(cè)試呢挎挖?
項(xiàng)目目錄篇:
如上圖所示主要包含以下結(jié)構(gòu)和內(nèi)容
- project 項(xiàng)目根目錄
- InitConf.ini 項(xiàng)目配置文件
- test_xxxxx.json 實(shí)際的測(cè)試json文件
一般情況下,登錄成功的腳本case一般需要房子project的目錄下航夺,這樣可以優(yōu)先登錄成功并提取相關(guān)登錄信息給其他依賴權(quán)限的接口使用
初始化配置篇
- 如果存在多數(shù)據(jù)庫蕉朵,需要在配置文件中,如上圖所示按照DB1 DB2 DB3來進(jìn)行設(shè)置
json編寫篇
{
"name": "login_commuity_with_jack_中文",
"setup": {
"num1": 123,
"str1": "anc",
"fun1": "${__get_value(a=1, b=2)}",
"fun2": "${__get_value('success')}",
"str2": "jack2${str1}",
"fun3": "${__get_value(${num1}, '${str1}', '${str2}')}", # 注意1 方法參數(shù)化如果入?yún)⑹亲址羝枰觾蓚€(gè)單引號(hào)
"path": "E:\\jackstudy\\test\\test_params.py",
"dict": {"a":"${str1}"},
"dict-list": {
"c" : "-${num1}" , # 注意2 對(duì)于字典或者列表中某一個(gè)value需要獲取某一個(gè)int值轉(zhuǎn)為str類型顯示時(shí)始衅,在前面加“-” or “~”
"a": "${num1}", # 注意4 對(duì)于字段為非確定數(shù)據(jù)類型, a會(huì)獲取num1的自帶int類型锚烦,b會(huì)自動(dòng)獲取str1中的str類型
"b": "${str1}",
"c": "abc${num1}",
"areaCodes": ["${num1}","${str1}","abc${num1}"],
"street": {"aa": "${num1}","bb": "${str1}"}
},
"list": ["A${num1}", 2] # 注意3 對(duì)于字典或者列表中某一個(gè)value中部分需要獲取某一個(gè)int值轉(zhuǎn)為str類型顯示觅闽,框架會(huì)自動(dòng)判斷進(jìn)行合并
},
"requestor":{
"url": "${host}/mccemv/mgr/api/auth/login",
"method": "POST",
"headers": {"Content-Type": "application/json"},
"data": "${dict-list}",
"files":{"image":"${path}"}
},
"validator": {
"assertEqCode": 299,
"assertEqHeaders": {"Content-Type": "application/json;charset=UTF-8"},
"assertEqStr": ["100000"],
"assertEqJson":{"success":true}
},
"collector":{
"json": {"token": "response.data.token"},
"methods": {"deleteid": "${__sql_select('${sql}', '${confpath}')}"},
"values":{"deleteid2": "${num1}"}
},
"teardown":{
"clear_cookies": "clearcookies",
"clearsession": "clearsession",
"cleartoken": "cleartoken"
}
}
參數(shù)化原則:
1 對(duì)于參數(shù)化后非確定類型,必須進(jìn)行類型轉(zhuǎn)換時(shí)涮俄, 需要在參數(shù)化標(biāo)記$前增加一個(gè)“”-“” - 參考注意2
2 對(duì)于字典或者列表字段為str類型時(shí)蛉拙,不需要做類型轉(zhuǎn)換,框架會(huì)自動(dòng)完成 - 參考注意3
3 對(duì)于字典或者列表中字段值為非確定數(shù)據(jù)類型彻亲,參數(shù)會(huì)保留參數(shù)化字段的原有type進(jìn)行替換 - 參考注意4
4 對(duì)于方法類的str類型進(jìn)行參數(shù)化時(shí)孕锄,需要人工確定傳值是數(shù)值還是字符串,如果是字符串需要人工增加單引號(hào) - 參考注意1
框架執(zhí)行篇
命令行模式
執(zhí)行整個(gè)項(xiàng)目: python3 api_test.py -p E:\jackstudy\ApiTestForHttp\data\project
執(zhí)行單個(gè)文件:python3 api_test.py -p E:\test_.json -cf E:\data\conf
報(bào)告生成篇
通過命令行執(zhí)行報(bào)告后苞尝,查看執(zhí)行窗口報(bào)告生成情況畸肆,如下圖
框架report目錄下報(bào)告如下:
歡迎各位體驗(yàn),體驗(yàn)入口:https://github.com/jackyin2/ApiTestForHttp