一染坯、測試需求描述
? ?1、 本次測試的接口為http服務(wù)端接口
? ?2丘逸、 接口的主要分成兩類酒请,一類提供給查詢功能接口,一類提供保存數(shù)據(jù)功能接口鸣个,這里我們舉例2個保存數(shù)據(jù)的接口羞反,因?yàn)檫@兩個接口有關(guān)聯(lián)性,比較有代表性囤萤;
? ? 3昼窗、接口描述:
保存信用卡賬戶信息接口:
? ? 傳入?yún)?shù):? ?
? ? ? ? args={
? ? ? ? ? ? "clientNo":"434343556",
? ? ? ? ? ? "alias": "**信用卡2",
? ? ? ? ? ? "cardName": "長城*****卡2",
? ? ? ? ? ? ?"cardNo": "25622356788251",
? ? ? ? ? ? }
? ? 傳出參數(shù):
? ? ? ? ? ? 保存成功:{"returnCode":"0","returnMsg":"保存成功"}
? ? ? ? ? ? 保存失敗:{"returnCode":"1","returnMsg":"保存失敗"}
? ? 保存邏輯:數(shù)據(jù)傳入進(jìn)來涛舍,驗(yàn)證通過澄惊,保存到信用卡賬戶表中
保存信用卡賬單接口:
? ? 傳入?yún)?shù):
? ? ? ? args={
? ? ? ? ? ? "clientNo":"434343556",
? ? ? ? ? ? "accountName": "測試",
? ? ? ? ? ? "billDate": "08",
? ? ? ? ? ? "billMonth": "201509",
? ? ? ? ? ? ?"cardNo": "25622356788251",
? ? ? ? ? ? "currentPayment": "欠款459.80",
? ? ? ? ? ? "paymentDate": "2015-09-25 09:00:00",?
? ? ? ? ? ? }
? ? 傳出參數(shù):?
? ? ? ? ? ? 保存成功:{"returnCode":"0","returnMsg":"保存成功"}
? ? ? ? ? ? 保存失敗:{"returnCode":"1","returnMsg":"保存失敗"}
? ? ? ? ?????????????保存邏輯:保存時先去信用卡信息表查看clientNo對應(yīng)的表是否存在富雅,如存在則數(shù)據(jù)校驗(yàn)通過掸驱,
???????????????????????????????????????將數(shù)據(jù)保存進(jìn)入信用卡賬單表
注:這個保存邏輯在接口開發(fā)設(shè)計(jì)文檔中可能沒有寫或?qū)懙牟辉敿?xì),這時要與開發(fā)接口人員或產(chǎn)品人員多多溝通去熟悉接口邏輯
二没佑、測試分析
1毕贼、邏輯分析
? ? ? ? 1)、從保存邏輯上來看蛤奢,這兩個接口明顯是有依賴關(guān)系的鬼癣,所以我們先測試信用卡賬戶信息接口,再測試保存信用卡賬單接口
????????2)啤贩、接口傳入的數(shù)據(jù)待秃,最終是保存到數(shù)據(jù)庫中,所以當(dāng)接口返回保存成功的時候痹屹,我們也要去對應(yīng)的數(shù)據(jù)庫表中核對相應(yīng)的數(shù)據(jù)(這里可以用jmeter鏈接數(shù)據(jù)庫進(jìn)行操作代理手工)
? ? ? ? 3)阁猜、當(dāng)出現(xiàn)保存失敗的情況時仿畸,我們需要查看系統(tǒng)的日志允粤,所以我們也要準(zhǔn)備好查看日志的權(quán)限和地址
????2弊予、測試工具的準(zhǔn)備
? ? ? ? 1)、單個接口測試足画,我們使用火狐的插件poster
? ? ? ? 2)雄驹、多個接口測試佃牛,我們使用Jmeter進(jìn)行測試
三淹辞、使用工具測試
????1、Poster工具的使用方法見
http://note.youdao.com/share/?id=a3efa149d165258710ebf1bd04079f72&type=note
????2、使用Jmeter對接口測試
? ? ? ? ? ? 首先我們說一下為什么用Poster測試后我們還要用Jmeter做接口測試象缀,在用poster測試時候會發(fā)現(xiàn)的是一個接口一個接口的測試蔬将,我們每次測試成功后的數(shù)據(jù),在工具中是無法保存的央星,再次測試的時候我們還要重新輸入測試的數(shù)據(jù)霞怀,當(dāng)我們測試一個接口的時候可能感覺不明顯,但是當(dāng)你測試幾十個接口的時候莉给,你就會發(fā)現(xiàn)使用Jmeter的好處毙石,如果按測試階段來說冒煙測試我們用poster,集成測試我們用Jmeter
四颓遏、使用Jmeter接口測試
1徐矩、首先郵件添加一個線程組,這里我們重命名InterfaceTest
????????2叁幢、在線程組上添加一個Http默認(rèn)請求滤灯,并配置服務(wù)器的IP地址和傳輸編碼
3、在線程組中添加一個HTTP請求曼玩,這里我們重命名“增加信用卡賬戶信息接口”
4鳞骤、配置接口請求信息,這配置示例如下:
5黍判,在保存信用卡賬單接口請求豫尽,示例如下:
? ??
注:由于Jmeter請求線程組內(nèi)的請求時從第一個開始執(zhí)行,所以我們將需要最先執(zhí)行的請求放在前面
6顷帖、在線程組上添加監(jiān)聽器拂募,察看結(jié)果樹和聚合報(bào)告
????????7、點(diǎn)擊啟動窟她,運(yùn)行結(jié)束后查看陈症,結(jié)果樹和聚合報(bào)告
????????8、去數(shù)據(jù)庫中核對數(shù)據(jù)
????????9震糖、大批量數(shù)據(jù)制造
????????? ? 思路:
1)录肯、可參數(shù)化的參數(shù),保存信用卡賬戶信息接口(clientNo,cardNo)吊说,保存信用卡賬單接口(clientNo,cardNo,billMonth论咏,paymentDate)
2)、兩個接口的依賴關(guān)系颁井,保存信用卡賬單接口(clientNo,cardNo)要和信用卡賬戶信息接口(clientNo,cardNo)的兩個相同厅贪,也就是說這兩個要用一個參數(shù),且還不能重復(fù)
根據(jù)上面兩個特點(diǎn)雅宾,(clientNo,cardNo)我們選取使用計(jì)數(shù)器养涮,每循環(huán)一次計(jì)數(shù)器加1,那么我們將線程組設(shè)置循環(huán)執(zhí)行1萬次;billMonth贯吓,paymentDate懈凹,這兩個日期我們是使用隨機(jī)函數(shù)${__Random(1,9,)},將月份參數(shù)化悄谐;
3)介评、在線程組上創(chuàng)建計(jì)數(shù)器,配置如下:
????????4)爬舰、引用計(jì)數(shù)器和隨機(jī)函數(shù)
????????信用卡賬戶接口傳入?yún)?shù)
? ? ? ? args={
? ? ? ? ? ? "clientNo":"${add}434343556",
? ? ? ? ? ? "alias": "**信用卡2",
? ? ? ? ? ? "cardName": "長城*****卡2",
? ? ? ? ? ? ?"cardNo": "${add}25622356788251",
? ? ? ? ? ? }
????????賬單接口傳入?yún)?shù)
args={
? ? ? ? ? ? "clientNo":"${add}434343556",
? ? ? ? ? ? "accountName": "測試",
? ? ? ? ? ? "billDate": "08",
? ? ? ? ? ? "billMonth": "20150${__Random(1,9,)}",
? ? ? ? ? ? ?"cardNo": "${add}25622356788251",
? ? ? ? ? ? "currentPayment": "欠款459.80",
? ? ? ? ? ? "paymentDate": "2015-0${__Random(1,9,)}-25 09:00:00",?
? ? ? ? ? ? }
5)们陆、設(shè)置線程組循環(huán)測試,點(diǎn)擊運(yùn)行,查看運(yùn)行結(jié)果情屹,再去數(shù)據(jù)庫看看棒掠,大批量數(shù)據(jù)就這樣產(chǎn)生了