接口自動化面試題

1.能夠大致講一下你們接口自動化框架是怎么搭建的嗎?

好的,我們采用unittest和ddt數(shù)據(jù)驅(qū)動思想搭建測試框架,(對數(shù)據(jù)excel讀取、yaml配置、Requests接口請求、Re參數(shù)化、Pymysql數(shù)據(jù)庫效驗、日志等模塊實現(xiàn)封裝),其中,用

1.Openpyxl來處理excel,存儲測試數(shù)據(jù)(用例數(shù)據(jù))

2.pyyaml來配置文件(configparse,pyyaml)

3. Pymysql來連接mysql數(shù)據(jù)庫,執(zhí)行sql數(shù)據(jù),進行數(shù)據(jù)效驗

4.Requests請求庫,來向接口發(fā)起請求

5.使用logging模塊來創(chuàng)建日志器,記錄項目中的日志信息

6.使用HttpTestRunner來生成HTML測試報告

7.使用re模塊來實現(xiàn)參數(shù)化(正則匹配)

8.使用動態(tài)創(chuàng)建屬性(類屬性)的機制來實現(xiàn)接口之間的依賴? (setattr getattr)

比如:我們項目中客服指派訂單的時候,需要上一個接口訂單ID,首先要對上一個接口發(fā)送請求,獲取訂單id,通過實例化對象,創(chuàng)建屬性名,獲取屬性值,從而實現(xiàn)指派訂單接口的成功請求。


分層設(shè)計

為了提升接口自動化測試框架的拓展性、穩(wěn)定性、完整性,進而提升測試效率,往往會將測試框架工程化,

整個流程會分為不同的層級,每個層級之間保持相對獨立

cases

? ? 測試執(zhí)行邏輯層,用于存放所有的測試用例類

configs

? ? 配置層,用于存放當前框架中的所有配置信息(使用不頻繁,修改不頻繁的數(shù)據(jù))

datas

? ? 測試數(shù)據(jù)層,用于存放所有的測試數(shù)據(jù),測試參數(shù)(可以使用excel,json,yaml,數(shù)據(jù)庫來存儲)

libs

? ? 自定義庫文件層,用于存放自定義或者二次開發(fā)的庫文件

logs

? ? 日志層,用于保存運行框架過程中產(chǎn)生的所有有效日志信息

reports

? ? 報告層,用于保存所有的測試報告文件(一般為html報告)

scripts

? ? 腳本封裝層,用于保存所有的操作封裝模塊(yaml,excel,log.mysql,requests,參數(shù)化等)

run.py

? ? 用例啟動文件,使用套件加載用例,批量執(zhí)行并生成報告


9.使用Jenkins來實現(xiàn)持續(xù)集成

a.Jenkins如何配置定時任務(wù)?

1.首先構(gòu)建觸發(fā)器

2.勾選Build peroidically

3.輸入框中配置觸發(fā)時間

00 12 ** 3? 每周三 12點

比如 我們周三中午的時候運行自動化腳本,發(fā)送測試報告


2.接口自動化的流程?

a.需求? ?--需求文檔、接口文檔

b.評審

c.用例

d.編寫自動化腳本

e.jenkins持續(xù)集成--定時執(zhí)行腳本,生成報告

f.報告

g.發(fā)送郵件

h.提bug


3.你的項目中接口用例有多少?每次大概執(zhí)行多長時間?

我們項目有65個接口;大概1200條用例,執(zhí)行時間大概半個小時


4.Get和post區(qū)別?

1. get是不安全的,因為在傳輸過程,數(shù)據(jù)被放在請求的URL中,

post的所有操作對用戶來說都是不可見的?? (安全性)

2.Get傳送的數(shù)據(jù)量較小,這主要是因為受URL長度限制

Post傳送的數(shù)據(jù)量較大,一般被默認認為不收限制?(傳輸量)

2. get執(zhí)行效率卻比post方法好,get是form提交默認方法 (效率性)


5.cookie與session的區(qū)別

1. cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上

2. cookie不是很安全,別人可以分析存放在本地的cookie并進行cookie欺騙考慮到安全應(yīng)當使用session

3. session會在一定時間內(nèi)保存在服務(wù)器上,當訪問增多,會比較占用你服務(wù)器的性能考慮到輕服務(wù)器性能方面,應(yīng)當使用cookie

4. 單個cookie保存的數(shù)據(jù)不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie

5. 所以個人建議:

將登陸信息等重要信息存放為session

其他信息如果需要保留,可以放在cookie中


6.Http和https區(qū)別?

https協(xié)議需要到CA申請證書,一般免費證書較少,因而需要一定費用。http是超文本傳輸協(xié)議,信息是明文傳輸,https則是具有安全性的ssl/tls加密傳輸協(xié)議。




7.在接口自動化中,如何讓token不失效?

1.調(diào)用登錄接口,拿到獲取的token

2.將拿到的token放在header中,調(diào)用確認登錄接口

3.確認登錄接口調(diào)用成功,接口返回信息正常


8.下個接口請求參數(shù)依賴上個接口的返回數(shù)據(jù)?

不同的接口封裝不同的函數(shù)或方法,需要的數(shù)據(jù)return出來,用一個中間變量a去接收,

后面的接口傳a就可以了


9.接口測試中依賴登錄狀態(tài)下的接口如何測試?

本質(zhì)是:在每次發(fā)送請求時需要帶上session或cookie才能發(fā)送成功,在構(gòu)建post

請求時添加必要的session或者cookie


10.依賴于登錄的接口如何處理?

登錄接口依賴token的,可以先登錄后,token存到一個yaml或者json或者ini的配置文件里面

后面所有的請求去拿這個數(shù)據(jù)就可以全局使用了

如果是cookies的參數(shù),可以用session自動關(guān)聯(lián)


11.依賴第三方的接口如何處理?

這個需要自己去搭建一個Mock服務(wù)、模擬接口返回數(shù)據(jù)

mock可以用在單元測試過程中,還有一個用途,當前端開發(fā)在開發(fā)頁面的時候,需要服務(wù)端提供API接口,此時服務(wù)端還沒開發(fā)完成,或者說沒搭建測試環(huán)境,這時候前端開發(fā)會自己mock一個api服務(wù)端,自己給自己提供調(diào)用接口的返回數(shù)據(jù)。


12.接口產(chǎn)生的垃圾數(shù)據(jù)如何清理?

造數(shù)據(jù)的數(shù)據(jù)清理,需要python連接數(shù)據(jù)庫,做增刪改查操作

測試用例前置,setUp做數(shù)據(jù)準備

后置操作,tearDown做數(shù)據(jù)清理



14.不可逆操作,如何處理,比如刪除一個訂單這種接口如何測試?

主要靠手工測試造數(shù)據(jù),直接在數(shù)據(jù)庫改字段狀態(tài)。自動化也一樣,造數(shù)據(jù)可以用python連接數(shù)據(jù)庫,做增刪改查的操作

? ? ?測試用例前置,setUp做數(shù)據(jù)準備

? ? ?后置操作,tearDown做數(shù)據(jù)清理


15.你的項目中接口用例有多少?每次大概執(zhí)行多長時間?

我們項目有65個接口,大概1200條用例,執(zhí)行時間大概半小時左右。


16.接口自動化的參數(shù)你是如何實現(xiàn)的?說說你的想法?

我會用python中Re模塊中的sub方法去替換


17.如何使你的接口自動化測試用例直接跳過前面幾條,直接執(zhí)行第 7 條?

可以在 Excel 創(chuàng)建一列,指定是否跳過,然后在用例時,過濾掉這些用例

使用條件判斷,通過 case_id==7 來決定是否執(zhí)行


18.如何使你的接口自動化腳本,對于同一個請求讓同一個用戶請求多次?

在 Excel 中設(shè)置相關(guān)執(zhí)行次數(shù)的字段,在 ddt 數(shù)據(jù)驅(qū)動時,使用代碼來控

制執(zhí)行次數(shù)。


params和data區(qū)別

 由于get請求無請求體,post請求有請求體

  使用params參數(shù)時,默認會把參數(shù)附加到url后面,所以發(fā)送get請求時應(yīng)使用params參數(shù)

  使用data參數(shù)時,參數(shù)會存放到請求體中,所以發(fā)送post請求時不能使用params,應(yīng)使用data,除非接口及支持get又支持post,同樣get請求也不能使用data參數(shù)


為什么要對requests進行封裝?

1.通過封裝,我可以直接把所有的請求參數(shù)統(tǒng)一使用字典來傳遞

比如,我們接口需要的數(shù)據(jù)也就是測試數(shù)據(jù)往往會保存在excel表里面,那么我們?nèi)〉胶笫亲址愋停址愋褪菬o法作為請求參數(shù)傳遞的,所有我每次都要做數(shù)據(jù)轉(zhuǎn)換,再傳遞給接口,為了節(jié)省這個過程,我只需要把這個過程封裝到我的requests里即可,每次取數(shù)據(jù)后會自動給我處理

第二,當我想保持某個狀態(tài)時,不想每次都初始化一個session對象,那么我可以把它封裝到我的reuqests里面,以后直接調(diào)用即可


如何使用Seesion解決接口保持狀態(tài)?

  初始化Session實例,通過這個實例調(diào)用request()方法發(fā)送請求


說說接口測試的流程,介紹一下request有哪些內(nèi)容?

1.流程:獲取接口文檔,依據(jù)文檔設(shè)計接口參數(shù),獲取響應(yīng),解析響應(yīng),校驗結(jié)果,判斷測試是否通過

2.request內(nèi)容:

封裝了各種請求類型,get,post等;

以關(guān)鍵字參數(shù)的方式,封裝了各種請求參數(shù),params,data,headers,token等

封裝了響應(yīng)內(nèi)容,status_code,json(),cookies,url

session會話對象,可以跨請求

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,283評論 6 530
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 97,947評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,094評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,485評論 1 308
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,268評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,817評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,906評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,039評論 0 285
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,551評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,502評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,662評論 1 366
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,188評論 5 356
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 43,907評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,304評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,563評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,255評論 3 389
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,637評論 2 370

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

  • 1、session和cookie的區(qū)別和聯(lián)系 cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上...
    hhttss999閱讀 915評論 0 1
  • 阿秀突然跑來,說鎮(zhèn)長約她晚上吃飯。 “有什么事呢?” “我也不知道。” “你去?”我不好說去,或者不去。 鎮(zhèn)長我們...
    徐長順閱讀 766評論 1 6
  • 第一次逛宜家在2011年的4月份,接近夏天,但是仍然殘留涼意,記得在路上買了身上穿的這件小開衫,這次巧合,又穿……...
    Jeny_Her閱讀 302評論 0 0
  • 概述 如果想在Spring中使用任務(wù)調(diào)度功能,除了集成調(diào)度框架Quartz這種方式,也可以使用Spring自己的調(diào)...
    靜默虛空閱讀 1,199評論 0 1
  • 春風(fēng)送暖菜花香的時節(jié),我接到參加《興化日報》第十三屆筆會的通知。這是我第一次參加筆會,誠惶誠恐,卻又激動“有”名。...
    紫草茵茵閱讀 305評論 0 1