靈魂三問:什么是接口測(cè)試霜运,接口測(cè)試怎么玩脾歇,接口自動(dòng)化測(cè)試怎么玩?

前言

最近在找工作淘捡,因?yàn)槭亲黾兎?wù)端測(cè)試的藕各,所以面試過程中面試官難免會(huì)問,怎么設(shè)計(jì)接口測(cè)試用例焦除,怎么做接口自動(dòng)化測(cè)試激况?會(huì)象征性的考一下基本功。

下面就接口測(cè)試,或者說服務(wù)端測(cè)試乌逐,梳理一下我的思路吧~

一竭讳、什么是接口

Q:什么是接口?
A:舉個(gè)例子吧浙踢,渴了想喝水绢慢,旁邊剛好有個(gè)飲水機(jī),水龍頭就是一個(gè)接口

那么在程序中道理也是一樣的洛波,你在應(yīng)用程序上買衣服胰舆、訂餐、租房子蹬挤、訂機(jī)票這些衣食住行缚窿,其實(shí)都在訪問對(duì)應(yīng)程序的接口。

以我下面要舉的例子說明:

有個(gè)登錄頁面焰扳,你要登上網(wǎng)站倦零,就需要輸入你的賬號(hào)密碼,把賬號(hào)密碼作為請(qǐng)求參數(shù)打登錄接口吨悍,這時(shí)客戶端會(huì)給服務(wù)器發(fā)個(gè)登錄請(qǐng)求扫茅,服務(wù)器鑒權(quán)和校驗(yàn)通過之后,就登上去了畜份。

到這里就完成了一次接口的請(qǐng)求诞帐,或者說跑完了一條接口測(cè)試用例。

二爆雹、常見的接口請(qǐng)求類型有哪些停蕉?

常用的接口請(qǐng)求類型有:post get put delete

平常面試會(huì)問到get和post的區(qū)別,不懂百度一下

那么钙态,要設(shè)計(jì)接口測(cè)試用例慧起,首先需要接口契約,也就是接口文檔册倒。

接口文檔長(zhǎng)啥樣蚓挤,看下面~

三、接口文檔范例

測(cè)試功能為登錄頁面:https://xxx/account/signin(url我打碼了)
接口地址:https://xxx/account/signin(想了想接口也打碼吧驻子,畢竟是要收費(fèi)的)
請(qǐng)求方式:POST
接口描述:某網(wǎng)站登錄接口

【接口入?yún)ⅰ?/p>

image.png

【接口返回】


image.png

【接口請(qǐng)求示例】

 {
    "account": "1801367@qq.com",
    "password": "191004"
}

【接口返回示例】

  {
    "code": 0,
    "msg": "",
    "data": {
        "name": null,
        "avatar": null,
        "id": "7",
        "account": "18067@qq.com",
        "role": 3
    }
}

了解了接口契約灿意,怎么設(shè)計(jì)接口測(cè)試用例呢,請(qǐng)繼續(xù)往下看崇呵。

四缤剧、怎么設(shè)計(jì)接口測(cè)試用例

首先你得有個(gè)框架

測(cè)接口也測(cè)了好幾年了,梳理一份用例模板域慷,簡(jiǎn)單參考下荒辕,不全的歡迎補(bǔ)充~

用例模板.png

所以基于這套模板汗销,我們可以設(shè)計(jì)一下接口契約中的登錄接口的用例

五、基于登錄接口設(shè)計(jì)測(cè)試用例

1.參數(shù)校驗(yàn)

  • account

    • 必填:不填抵窒,空字符串弛针,傳null,不傳該字段
    • 字符串類型:傳int型或其他類型
    • 長(zhǎng)度校驗(yàn):假如范圍[1-20]李皇,小于1削茁、大于20,在1-20范圍內(nèi),傳超長(zhǎng)
    • 枚舉:無
  • password

    • 必填:不填,空字符串刨肃,傳null孽文,不傳該字段
    • 字符串類型:傳int型或其他類型
    • 長(zhǎng)度校驗(yàn):假如范圍[1-20],小于1璧帝、大于20捍岳,在1-20范圍內(nèi),傳超長(zhǎng)
    • 枚舉:無

2.參數(shù)組合

  • 賬號(hào)密碼正確睬隶,登錄成功锣夹,返回?cái)?shù)據(jù)拿到用戶角色及用戶信息
  • 賬號(hào)錯(cuò),密碼對(duì)苏潜,登錄失敗银萍,code1
  • 賬號(hào)對(duì),密碼錯(cuò)恤左,登錄失敗贴唇,code1
  • 賬號(hào)錯(cuò),密碼錯(cuò)飞袋,登錄失敗戳气,code1

3.業(yè)務(wù)邏輯

  • 數(shù)據(jù)流轉(zhuǎn):登錄賬號(hào)為數(shù)據(jù)庫(kù)成員,登上去后接口返回data為數(shù)據(jù)庫(kù)查到的數(shù)據(jù)
  • 權(quán)限:管理員賬號(hào)巧鸭、普通用戶賬號(hào)瓶您、運(yùn)營(yíng)賬號(hào)
  • 賬號(hào)類型:qq郵箱、企業(yè)郵箱或其他類型郵箱纲仍,正常登錄呀袱,手機(jī)號(hào)不支持
  • 多端登錄是否有邏輯處理,要不要限制有最多幾個(gè)用戶登錄

4.安全性

  • 密碼明文可見
  • 抓包不能抓到
  • 登錄鑒權(quán)郑叠,前端和服務(wù)端都要做
  • token時(shí)效性
  • sql注入

5.性能

  • 響應(yīng)時(shí)間200ms
  • 并發(fā)數(shù)(登錄我感覺沒必要考慮高并發(fā)夜赵,具體業(yè)務(wù)場(chǎng)景具體分析)

6.日志

  • 測(cè)接口時(shí),關(guān)注日志

7.監(jiān)控

  • 接口功能上線了锻拘,要關(guān)注下業(yè)務(wù)請(qǐng)求和各種異常監(jiān)控
六油吭、接口測(cè)試常用什么工具
  • postman
  • jmeter
  • linux命令 curl 發(fā)一個(gè)接口請(qǐng)求
  • python击蹲、java寫腳本

以上都可以,第四個(gè)用于做接口自動(dòng)化測(cè)試

七婉宰、接口自動(dòng)化測(cè)試思路

第一步:把手工case通過寫代碼的方式歌豺,轉(zhuǎn)成自動(dòng)化測(cè)試的case心包,設(shè)置case的斷言类咧,然后去跑這批case讓他自動(dòng)執(zhí)行,先讓代碼可以粗陋的跑起來

第二步:減少重復(fù)性代碼蟹腾,把測(cè)試數(shù)據(jù)整合做成參數(shù)化讀取痕惋,進(jìn)行數(shù)據(jù)驅(qū)動(dòng)

第三步:優(yōu)化代碼可讀性,抽離通用模塊

八娃殖、接口自動(dòng)化測(cè)試實(shí)戰(zhàn)演練

完成第一步值戳,很簡(jiǎn)單,寫出來一個(gè)炉爆,其他的復(fù)制粘貼堕虹,改斷言,改參數(shù)


image.png

那么問題是什么芬首?

  • 新增一條用例赴捞,我要在代碼里改一條,參數(shù)也放在代碼里郁稍,看起來累赦政,改起來也很累。

完成第二步耀怜,把用例放在excel中恢着,通過pytest自帶的裝飾器進(jìn)行參數(shù)化


image.png
image.png

這里解決了第一步改參數(shù)的問題,但是這里依然存在問題

  • 代碼重復(fù)量大封寞,后面再增加一條用例然评,那塊重復(fù)的要再寫一遍
  • 獲取excel數(shù)據(jù)的方法放在測(cè)試用例中,代碼可讀性差狈究,我們的測(cè)試用例最好不要包含前置條件碗淌。

完成第三步,提取讀excel數(shù)據(jù)部分抖锥,放在單獨(dú)的文件中亿眠,把參數(shù)轉(zhuǎn)換和發(fā)起請(qǐng)求這部分提起來。

同時(shí)優(yōu)化了一下獲取excel數(shù)據(jù)部分磅废,上一步我們是讀區(qū)域纳像,這樣可擴(kuò)展性差,如果后期我要在excel里加用例拯勉,就需要改這塊的區(qū)域竟趾,所以讓他直接讀這一列憔购,這樣后期隨便加不影響。

image.png
image.png

這樣看著就清爽多了岔帽,加用例玫鸟,只需要改excel,然后在testcase中加用例犀勒,而用例里基本上就實(shí)現(xiàn)斷言就行屎飘。

如果還想加一些日志,或者需要查庫(kù)做斷言等等贾费,可以再優(yōu)化下钦购。

碼字不易,轉(zhuǎn)載請(qǐng)注明出處褂萧,謝謝~
閱完可以留個(gè)小心心押桃,關(guān)注一下,還有公眾號(hào)导犹,謝謝~

說明一下文中用到的示例是「靈題庫(kù)」的接口怨规,有前端刷題需要的可以關(guān)注下

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市锡足,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌壳坪,老刑警劉巖舶得,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異爽蝴,居然都是意外死亡沐批,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門蝎亚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來九孩,“玉大人,你說我怎么就攤上這事发框√杀颍” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵梅惯,是天一觀的道長(zhǎng)宪拥。 經(jīng)常有香客問我,道長(zhǎng)铣减,這世上最難降的妖魔是什么她君? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮葫哗,結(jié)果婚禮上缔刹,老公的妹妹穿的比我還像新娘球涛。我一直安慰自己,他們只是感情好校镐,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布亿扁。 她就那樣靜靜地躺著,像睡著了一般灭翔。 火紅的嫁衣襯著肌膚如雪魏烫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天肝箱,我揣著相機(jī)與錄音哄褒,去河邊找鬼。 笑死煌张,一個(gè)胖子當(dāng)著我的面吹牛呐赡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播骏融,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼链嘀,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了档玻?” 一聲冷哼從身側(cè)響起怀泊,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎误趴,沒想到半個(gè)月后霹琼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凉当,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年枣申,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片看杭。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡忠藤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出楼雹,到底是詐尸還是另有隱情模孩,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布贮缅,位于F島的核電站瓜贾,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏携悯。R本人自食惡果不足惜祭芦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望憔鬼。 院中可真熱鬧龟劲,春花似錦胃夏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蚕愤,卻和暖如春答恶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背萍诱。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工悬嗓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人裕坊。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓包竹,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親籍凝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子周瞎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

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