第一部分-第2章:如何美麗的對(duì)接接口(基于移動(dòng)端測(cè)試系列知識(shí)沉淀)

這幾年的移動(dòng)端測(cè)試,不單純?cè)谧鲆苿?dòng)app的測(cè)試承耿,也導(dǎo)致了更多測(cè)試觀念比較籠統(tǒng)冠骄。對(duì)移動(dòng)端測(cè)試技術(shù)不夠?qū)>?/p>

真正開(kāi)始移動(dòng)端分層的想法也是在最近幾個(gè)月,因此本章只是留下最近一些所知所得加袋。用來(lái)以后回顧與擴(kuò)展使用凛辣。

分層的概念看了一些文章,大部分都是放在整體系統(tǒng)層面進(jìn)行分層锁荔。類似服務(wù)端-接口-客戶端之類的。然后再對(duì)后端做具體的分層蝙砌。但是到app這邊阳堕,就寫一個(gè)app。

以目前小組的水平對(duì)移動(dòng)端分層主要分為:

對(duì)接接口择克,既然服務(wù)端要做接口測(cè)試恬总,那我們的也要來(lái)個(gè)對(duì)接接口的測(cè)試吧,主要是驗(yàn)證接口使用的美不美麗肚邢,這個(gè)也后面細(xì)說(shuō)壹堰。

接著是UI功能測(cè)試拭卿,現(xiàn)在大多數(shù)同學(xué)都在這一層。雖然都說(shuō)小白沒(méi)有技術(shù)含量贱纠。但是還是有一點(diǎn)料的峻厚。

接著是組件測(cè)試,目前的app是由很多組件配置谆焊、拼接起來(lái)的惠桃。目前這個(gè)層面主要還是使用功能進(jìn)行覆蓋。這個(gè)部分主要講一些配置辖试、資源辜王、組件依賴的測(cè)試技巧。

然后是sdk測(cè)試罐孝,這個(gè)部分主要是我們組的測(cè)試開(kāi)發(fā)再做呐馆。主要說(shuō)明我們?nèi)绾螠y(cè)試底層提供給別人的sdk測(cè)試。我僅知一點(diǎn)皮毛莲兢。正在學(xué)習(xí)中就被項(xiàng)目變更掐斷了汹来。希望回來(lái)的時(shí)候還能跟上移動(dòng)互聯(lián)網(wǎng)的節(jié)奏。寫的時(shí)候估計(jì)要找外援怒见。

第三方依賴測(cè)試俗慈,這個(gè)其實(shí)現(xiàn)在基本沒(méi)做。是最近開(kāi)發(fā)優(yōu)化了一個(gè)第三方依賴庫(kù)折騰了所有QA一圈后遣耍,讓我想起來(lái)這個(gè)測(cè)試的必要性闺阱。

在這樣 的分層體系下,還是半黑盒舵变。如果大家想要看一些更加深入的分層理念酣溃,目前我們?cè)谶@塊還是有所局限〖拖叮可以關(guān)注下騰訊測(cè)試的公眾號(hào)TMQ赊豌。


第一部分:對(duì)接接口

很多人可能比較了解服務(wù)端的接口測(cè)試,所以會(huì)有疑問(wèn)绵咱,接口設(shè)計(jì)的美不美麗需要評(píng)判碘饼。為什么要去評(píng)判接口使用的美不美麗。

正確合理的使用服務(wù)端提供的接口不僅可以為服務(wù)端減少許多不必要的壓力悲伶,也可以側(cè)面看出系統(tǒng)設(shè)計(jì)的是否合理艾恼,更有甚者,有時(shí)前后端開(kāi)發(fā)溝通之間出現(xiàn)問(wèn)題麸锉,可能還會(huì)出現(xiàn)接口錯(cuò)誤使用導(dǎo)致功能問(wèn)題钠绍。下面舉一個(gè)簡(jiǎn)單的栗子:

假設(shè)服務(wù)端給客戶端提供了一個(gè)抽取紅包的接口』ǔ粒客戶端在對(duì)接接口時(shí)的處理邏輯是柳爽,用戶每次點(diǎn)擊紅包媳握。都連續(xù)發(fā)送五次抽取請(qǐng)求(一般開(kāi)發(fā)不會(huì)這么干,這里只是夸張)那么不僅給服務(wù)端接口造成了壓力磷脯,還浪費(fèi)流量蛾找。

如何評(píng)判接口使用的是否美麗呢。筆者總結(jié)了以下幾個(gè)點(diǎn):

1争拐、設(shè)計(jì)層面

? ? ? ? 設(shè)計(jì)層面主要是通過(guò)了解客戶端具體如何對(duì)接接口輸出出整個(gè)功能實(shí)現(xiàn)的骨架腋粥。這部分可以通過(guò)后端開(kāi)發(fā)提供的wiki〖懿埽或者開(kāi)發(fā)實(shí)現(xiàn)的app抓包來(lái)獲取隘冲。

如果是通過(guò)wiki來(lái)輸出實(shí)現(xiàn)骨架,后續(xù)也要注意驗(yàn)證前端開(kāi)發(fā)確實(shí)是按照這個(gè)骨架去設(shè)計(jì)的绑雄,這部分在功能層面會(huì)介紹展辞。

如何通過(guò)具體接口對(duì)接輸出業(yè)務(wù)骨架呢。這里還是舉個(gè)栗子万牺。

某個(gè)群文件功能罗珍,開(kāi)發(fā)提供了接口如下:

【獲取文件目錄接口】【刪除文件接口】【增加文件接口】【修改文件接口】

有經(jīng)驗(yàn)的測(cè)試只需要看到這幾個(gè)接口名稱接口yy出一套功能。抽象出這個(gè)功能模塊主要包含功能獲取文件列表脚粟、刪除文件覆旱、增加文件、修改文件信息核无。

那么在使用app抓包的過(guò)程中扣唱。則將這些功能具象化。

(1)用戶點(diǎn)擊入口按鈕--觸發(fā)請(qǐng)求【獲取文件目錄接口】

(2)用戶點(diǎn)擊右上角增加文件按鈕后選擇文件--觸發(fā)請(qǐng)求【獲取文件目錄接口】

(3)用選中文件并選擇刪除按鈕--觸發(fā)請(qǐng)求【刪除文件接口】

(4)用戶選中文件并選擇重命名按鈕--觸發(fā)請(qǐng)求【修改文件接口】

結(jié)合每個(gè)接口的請(qǐng)求后团南,則有了更深的噪沙,每次請(qǐng)求之前客戶端做什么數(shù)據(jù)準(zhǔn)備,請(qǐng)求后客戶端做什么展示準(zhǔn)備的了解吐根。

通過(guò)以上的方法了解到開(kāi)發(fā)的設(shè)計(jì)后去評(píng)估這套設(shè)計(jì)是否合理正歼。當(dāng)然,我們更加推薦在開(kāi)發(fā)設(shè)計(jì)接口時(shí)就去了解設(shè)計(jì)并提出建議來(lái)減少返工拷橘。

2局义、性能層面

? ? ? ? 性能層面指接口是否得到合理的利用,例如一開(kāi)始舉的那個(gè)栗子就是存在流量的冗余損耗冗疮。且短時(shí)間多次請(qǐng)求萄唇,對(duì)服務(wù)端也會(huì)有壓力。


3赌厅、功能層面(正確使用)

? ? ? ? 功能層面主要是指開(kāi)發(fā)是否按照約定的那樣合理使用接口穷绵,舉一個(gè)項(xiàng)目中的栗子:

某個(gè)群文件功能轿塔,后端開(kāi)發(fā)a提供了接口如下:【獲取文件目錄接口】特愿,并說(shuō)明了接口支持分頁(yè)加載仲墨。例如

url:xxxx/file/groupid?offset =n &limit= m 。其中offset表示開(kāi)始條數(shù)揍障。limit表示每次取的個(gè)數(shù)目养。建議每次取50條

正確的獲取方法為:

xxxx/file/groupid?offset =0 &limit= 50? 第一頁(yè)

xxxx/file/groupid?offset =51 &limit= 50 第二頁(yè)?

那么移動(dòng)開(kāi)發(fā)b在對(duì)接的使用覺(jué)得麻煩。那我一次取1000條好了毒嫡。于是就癌蚁。。兜畸。

xxxx/file/groupid?offset =0 &limit= 1000

好了努释。后端根本不支持1000條一次性取。xxxx/file/groupid?offset =0 &limit= 1000 的現(xiàn)象為只給返回200條咬摇。

那么在這個(gè)場(chǎng)景下就很容易漏測(cè)伐蒂,因?yàn)槲覀兊臏y(cè)試場(chǎng)景比較少涉及文件超過(guò)200條的請(qǐng)求。


另外還有萬(wàn)一開(kāi)發(fā)這樣請(qǐng)求了呢肛鹏?

xxxx/file/groupid?offset =0 &limit= 50? 第一頁(yè)

xxxx/file/groupid?offset =52 &limit= 50 第二頁(yè)? 這樣中間遺漏掉一條也是不容易被發(fā)現(xiàn)的逸邦。


本部分結(jié)束,以上都是血和淚的教訓(xùn)在扰,后面又想起來(lái)別的案例再做補(bǔ)充缕减。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市芒珠,隨后出現(xiàn)的幾起案子桥狡,更是在濱河造成了極大的恐慌,老刑警劉巖妓局,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件总放,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡好爬,警方通過(guò)查閱死者的電腦和手機(jī)局雄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)存炮,“玉大人炬搭,你說(shuō)我怎么就攤上這事∧鹿穑” “怎么了宫盔?”我有些...
    開(kāi)封第一講書人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)享完。 經(jīng)常有香客問(wèn)我灼芭,道長(zhǎng),這世上最難降的妖魔是什么般又? 我笑而不...
    開(kāi)封第一講書人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任彼绷,我火速辦了婚禮巍佑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘寄悯。我一直安慰自己萤衰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布猜旬。 她就那樣靜靜地躺著脆栋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪洒擦。 梳的紋絲不亂的頭發(fā)上椿争,一...
    開(kāi)封第一講書人閱讀 51,727評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音熟嫩,去河邊找鬼丘薛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛邦危,可吹牛的內(nèi)容都是我干的洋侨。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼倦蚪,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼希坚!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起陵且,我...
    開(kāi)封第一講書人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤裁僧,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后慕购,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體聊疲,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年沪悲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了获洲。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡殿如,死狀恐怖贡珊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情涉馁,我是刑警寧澤门岔,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站烤送,受9級(jí)特大地震影響寒随,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一妻往、第九天 我趴在偏房一處隱蔽的房頂上張望逢防。 院中可真熱鬧,春花似錦蒲讯、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至溉箕,卻和暖如春晦墙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肴茄。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工晌畅, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人寡痰。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓抗楔,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親拦坠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子连躏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容