目錄
1.http協(xié)議和https的區(qū)別?
? ? 2. 常見的post提交數(shù)據(jù)的方式有哪些?
?3. 常見的請求頭以及它們的作用是什么?
?4. get請求和post的區(qū)別?
5. 接口請求中常用的返回狀態(tài)碼
?6. cookie,session,token有什么相同點(diǎn),不同點(diǎn)?
? ?7. 你們公司是如何做接口測試的?(包括︰接口測試流程,方案以及用例設(shè)計(jì))?
? 8. 如果沒有接口文檔怎么做接口測試? ?
? 9. 接口測試中,依賴登錄狀態(tài)的接口如何測試??
? 10. 你平常做接口測試的過程中發(fā)現(xiàn)過哪些bug?
? 11. 你在接口測試中是怎么校驗(yàn)結(jié)果是否正確?
? 12. 如何分析一個(gè)bug是前端還是后端的?
? 13. 依賴于第三方數(shù)據(jù)的接口如何進(jìn)行測試?
14. 對于加密接口,簽名接口如何進(jìn)行測試? ? ?
15、請?jiān)敿?xì)闡述接口測試和UI測試在測試活動中是如何協(xié)同測試的?
16、接口測試中上下游接口有數(shù)據(jù)依賴如何處理?
17、webService接口測試是什么?
18、如何獲取接口的參數(shù)?
19、為什么要做接口測試?
20、HTTP接口傳遞數(shù)據(jù)最常用的方式?
21、什么是接口測試?
22、我們測試的接口屬于哪一類?
23、接口測試用例編寫的要點(diǎn)都包含哪些?
24、接口測試的基本步驟?
25、HTTP協(xié)議的特點(diǎn)是什么?
26、HTTP客戶端請求消息包含哪幾部分?
27、HTTP服務(wù)器響應(yīng)消息包含哪些信息?
28、一個(gè)接口用例中有多個(gè)API接口,前后兩個(gè) API 之間如何進(jìn)行參數(shù)傳遞的?
29、你在實(shí)施接口自動化測試的過程中,如果某些接口第一次調(diào)用長時(shí)間沒有返回,如何保證流程順利進(jìn)行又可以記錄錯誤信息?
30、接口測試如何設(shè)計(jì)測試用例?
31、jmeter參數(shù)化的方式有哪些?
32、你平常做接口測試的過程中發(fā)現(xiàn)過哪些bug?
1.http協(xié)議和https的區(qū)別?
? ? ? ? http協(xié)議:超文本傳輸協(xié)議,信息是明文傳輸;
? ? ? ? https協(xié)議:是由SSL+ http協(xié)議構(gòu)建的加密傳輸協(xié)議。。
? ? ? ? 兩者使用的端口不一樣,http:80,https:443
? ? 2. 常見的post提交數(shù)據(jù)的方式有哪些?
? ? ? ? ? 四種:取決于Content-Type請求頭
Content-Type:application/x-www-form-urlencoded
? ? ? ? 特點(diǎn):數(shù)據(jù)類型是字典,相當(dāng)于通過表單方式去提交數(shù)據(jù),數(shù)據(jù)的格式:a=1&b=2
Content-Type:multipart/form-data
? ? ? ? 特點(diǎn):報(bào)文包含有文件上傳。
Content-Type:application/json
? ? ? ? 特點(diǎn):報(bào)文都是字符串類型
Content-Type:binary
? ? ? ? 特點(diǎn):報(bào)文類型是以二進(jìn)制的方式上傳文件。
?3. 常見的請求頭以及它們的作用是什么?
? ? ? ? Accept:客戶端接收的數(shù)據(jù)格式。
? ? ? ? X-Requested-With:異步請求。Ajax異步請求。無刷新。
? ? ? ? User-Agent:發(fā)送請求的客戶端的類型。
? ? ? ? Content-Type:請求的內(nèi)容的報(bào)文格式。
? ? ? ? Cookie:Cookie信息。
?4. get請求和post的區(qū)別?
? ? ? ? 都可以向服務(wù)器提交數(shù)據(jù),并且會從服務(wù)器獲取數(shù)據(jù)。
? ? ? ? 區(qū)別:
? ? ? ? ?① 傳參方式不同:get通過地址欄的方式傳參,post通過表單報(bào)文方式傳參。
? ? ? ? ② 傳參長度不同:get的參數(shù)有長度限制,post沒有。
? ? ? ? ③ 一般情況下,get是獲取數(shù)據(jù),比如查詢,post提交數(shù)據(jù),比如:增刪改。
? ? ? ? ④ Get只發(fā)送一個(gè)tcp數(shù)據(jù)報(bào)文(包含請求頭和data),post發(fā)送兩個(gè)報(bào)文(1.請求頭,返回·100,2.data,返回200)
5. 接口請求中常用的返回狀態(tài)碼
? ? ? ? 1XX:信息提示。
? ? ? ? 2XX:成功。
? ? ? ? 3XX:重定向。(發(fā)送一個(gè)請求時(shí),這個(gè)請求多次請求了服務(wù)器的多個(gè)資源)
? ? ? ? 4XX:客戶端錯誤。
? ? ? ? 5XX:服務(wù)器錯誤。
?6. cookie,session,token有什么相同點(diǎn),不同點(diǎn)?
? ? ? ? 相同點(diǎn):都是用于鑒權(quán)并且都是服務(wù)器生成的。
? ? ? ? 不同點(diǎn):
? ? ? ? ? ? ? ? ① cookie保存在客戶端的瀏覽器上,cookie不安全,可以去分析存在在本地的cookie進(jìn)行cookie欺騙。
? ? ? ? ? ? ? ? ② ?session保存在服務(wù)器的內(nèi)存,默認(rèn)保存30分鐘,比cookie安全,缺點(diǎn)就是當(dāng)?shù)卿浀挠脩粼蕉?,比較占用服務(wù)器的資源。session一般會生成一個(gè)sesionid(名稱自定義),sessionid可以通過cookie傳輸。
? ? ? ? ? ? ? ?③ ?token存儲在服務(wù)器的數(shù)據(jù)庫里面,通過一個(gè)接口或通過登錄獲取,然后后續(xù)所有的接口都必須要傳token才可以請求成功。token也可以通過cookie傳輸。?
? ?7. 你們公司是如何做接口測試的?(包括︰接口測試流程,方案以及用例設(shè)計(jì))?
? ? ? ? ① 獲取接口文檔,熟悉單接口以及鏈路接口(接口業(yè)務(wù)流程)的業(yè)務(wù),包括接口地址,鑒權(quán)方式,入?yún)ⅲ鰠?,錯誤碼等。
? ? ? ? ② 編寫接口測試用例并評審
? ? ? ? 正例(1-2個(gè))︰單接口返回成功場景,鏈路接口業(yè)務(wù)流程實(shí)現(xiàn)。(功能業(yè)務(wù)流程);
? ? ? ? 反例:
? ? ? ? ? ? ? 鑒權(quán)異?!每?,錯誤,過期......
? ? ? ? ? ? ? 參數(shù)異常:空,類型異常,長度異常
? ? ? ? ? ? ? 錯誤碼異常:
? ? ? ?其它異?!媒涌诤诿麊?,接口調(diào)用次數(shù)限制。分頁(少于0,0,中間頁,最大頁,超過最大頁);
? ? ? ? ③ 使用接口測試工具或代碼的方式執(zhí)行接口測試;
? ? ? ? ? ? ? ? 重要考慮以下情況:
? ? ? ? ? ? ? ? ? ? ? ? 接口關(guān)聯(lián),接口參數(shù)加密,是否動態(tài)參數(shù),接口參數(shù)是否簽名,是否需要帶請求頭。
? ? ? ? ④ 實(shí)現(xiàn)持續(xù)集成并輸出接口測試報(bào)告,有Bug提bug。
? 8. 如果沒有接口文檔怎么做接口測試? ?
? ? ? ? 方式①:可以使用Fiddler 抓包工具抓取接口數(shù)據(jù)之后整理成接口文檔,如果有不清楚的字段,找時(shí)間集中找開發(fā)驗(yàn)證,然后在進(jìn)行接口測試。
? ? ? ? 方式②∶可以通過Jmeter的代理錄制功能,先把接口請求錄制下來形成接口文檔,然后再逐一的進(jìn)行接口測試。
? 9. 接口測試中,依賴登錄狀態(tài)的接口如何測試??
? ? ? ? 依賴登錄的接口本質(zhì)上是每次發(fā)送請求的時(shí)候需要帶上cookie和session才能夠發(fā)送成功。在請求時(shí)需要添加上cookle和sessionid。
? ? ? ? ?① 如果是通過Postman來測試,Postman會自動去管理
? ? ? ? ?② 如果是通過Jmeter來測試,需要增加Cookie管理器組件。
? ? ? ? ?③ 如果是通過代碼來實(shí)現(xiàn)接口測試,那么需要生成sesion對象,然后通過sesion對象來發(fā)送請求。|
? 10. 你平常做接口測試的過程中發(fā)現(xiàn)過哪些bug?
? ? ? ? ① 常規(guī)Bug ∶接口沒實(shí)現(xiàn),沒有按接口文檔返回結(jié)果,輸入異常值(空值,特殊字符),接口報(bào)錯,沒有返回合理的錯誤提示。
? ? ? ? ? ? ? ? 如:購買商品接口,其中有價(jià)格參數(shù),我去測試時(shí)把商品的價(jià)格改成-3,購買成功。
? ? ? ? ② 權(quán)限Bug :
? ? ? ? ? ? ? ? 如∶測試修改商品信息接口,接口文檔要求只有商家和超級管理員才有權(quán)限修改,我傳入一個(gè)普通用戶的ID或者是傳入其他商家的ID,修改成功。
? ? ? ? 注意:接口測試就是為了避免繞過前端驗(yàn)證,直接訪問后端接口的BUG。
? 11. 你在接口測試中是怎么校驗(yàn)結(jié)果是否正確?
? ? ? ? ① 狀態(tài)碼檢驗(yàn),驗(yàn)證返回的狀態(tài)碼為200.
? ? ? ? ② 業(yè)務(wù)校驗(yàn):
? ? ? ? ? ? ? ? a. 錯誤碼為0
? ? ? ? ? ? ? ? b. 當(dāng)接口響應(yīng)報(bào)文比較短,比較固定的情況下,校驗(yàn)完全一致。
? ? ? ? ? ? ? ? c. 當(dāng)接口響應(yīng)報(bào)文比較長,比較多的情況下,校驗(yàn)最核心的業(yè)務(wù)信息。
? ? ? ? ? ? ? ?d. 當(dāng)接口響應(yīng)報(bào)文為非常復(fù)雜的多層級XML格式或JSON格式,通過Xpath,JSONpath,正則表達(dá)式的匹配方式獲取到最關(guān)鍵字的業(yè)務(wù)節(jié)點(diǎn),然后再校驗(yàn)。
? ? ? ? ? ? ? ? e. 查詢數(shù)據(jù)庫校驗(yàn)或者是通過其他接口校驗(yàn)。
? 12. 如何分析一個(gè)bug是前端還是后端的?
? ? ? ? 通過抓包工具抓包,然后查看請求報(bào)文,如果請求報(bào)文對比接口文檔有問題,那么就是前端的問題,如果請求報(bào)文沒有問題,那就看返回報(bào)文,返回的數(shù)據(jù)不對,那就是后端開發(fā)的問題。
? 13. 依賴于第三方數(shù)據(jù)的接口如何進(jìn)行測試?
? ? ? ? 接口關(guān)聯(lián)〔依賴)是項(xiàng)目中的接口依賴于本項(xiàng)目的接口。
? ? ? ? 可以通過Postman搭建Mock服務(wù),但是Postman的Mock服務(wù)有訪問次數(shù)限制,一天只能訪問1000次。也可以通過Servlet ,Flask等技術(shù)來實(shí)現(xiàn)接口Mock服務(wù)。
14. 對于加密接口,簽名接口如何進(jìn)行測試? ? ?
? ? ? ? 加密接口:在調(diào)用接口的時(shí)候,首先要弄清楚接口的加密方式什么什么?
? ? ? ? ? ? ? 如∶
? ? ? ? ? ? ? ? ① 對稱式的加密方式(私鑰加密)∶不常用的有DESAES,常用是Base64加密方式。
? ? ? ? ? ? ? ? ② 非對稱的加密方式(雙鑰加密): RSA加密方式。
? ? ? ? ? ? ? ? ③ 只加密不解密(MD5加密)
? ? ? ? ? ? ? ? ④ 自定義加密規(guī)則?;旌霞用芊绞?。
了解加密規(guī)則(簽名規(guī)則)之后,在請求接口之前先要對參數(shù)做對應(yīng)的加密(簽合)之后在發(fā)送請求。單一加密方式,postman和Jmeter有些是支持的,postman使用javascript腳本實(shí)現(xiàn),Jmeter使用beansheI中的java代碼實(shí)現(xiàn)。
15、請?jiān)敿?xì)闡述接口測試和UI測試在測試活動中是如何協(xié)同測試的?
UI與接口測試的協(xié)同可以從下面的方向考慮:
- UI的操作實(shí)際上就是用另一種方式調(diào)用接口,那么接口有多少種參數(shù)組合就要求UI用例要構(gòu)造多少種操作進(jìn)行調(diào)用
- UI操作所需要的數(shù)據(jù)可以用接口來生成
- 接口測試可以保證數(shù)據(jù)和邏輯的準(zhǔn)確性,UI測試需要考慮交互和界面展示的邏輯正確性
- UI測試需要重視接口調(diào)用不成功或者接口異常情況下UI的呈現(xiàn)方式和用戶體驗(yàn)
- UI中可能會有一些狀態(tài)的緩存信息(這樣就不需要每次頻繁調(diào)用接口去獲取了),比如鑒權(quán)信息等,需要重點(diǎn)關(guān)注這些緩存的更新策略
16、接口測試中上下游接口有數(shù)據(jù)依賴如何處理?
假如一個(gè)事務(wù)需要順序調(diào)用2個(gè)接口:A和B接口, B依賴A接口的響應(yīng)數(shù)據(jù),這時(shí)候在執(zhí)行B接口之前必須完成A接口,并通過某些手段獲得A接口的特定數(shù)據(jù)給B接口使用。
上下游接口的數(shù)據(jù)依賴無非就是準(zhǔn)備測試數(shù)據(jù),數(shù)據(jù)一般有三種方式獲得:
- 獨(dú)立統(tǒng)一的測試數(shù)據(jù)庫, A、B需要的數(shù)據(jù)都可以從庫里拿到
- 假如B依賴A創(chuàng)造的數(shù)據(jù),那么每次執(zhí)行B之前必須執(zhí)行A去做數(shù)據(jù)創(chuàng)建
- 通過正則表達(dá)式動態(tài)獲得A的返回?cái)?shù)據(jù),并保存到變量中,通過參數(shù)化的方式傳遞給B接口
17、webService接口測試是什么?
webService接口有一套完整的協(xié)議標(biāo)準(zhǔn),主要為soap協(xié)議,用來進(jìn)行消息的傳遞,返回結(jié)果需要包裝在一個(gè)soap協(xié)議指定的語法格式中。即使你只需要簡單的返回字符1,也需要包裝在協(xié)議種返回,協(xié)議描述了成功失敗否,結(jié)果值等,可以通過soapUI測試工具去進(jìn)行接口的模擬及測試。
web service接口的特點(diǎn):
- 接口中實(shí)現(xiàn)的方法和要求參數(shù)一目了然。
- 不用擔(dān)心大小寫問題。
- 不用擔(dān)心中文 urlencode 問題。
- 代碼中不用多次聲明認(rèn)證(賬號,密碼)參數(shù)。
- 傳遞參數(shù)可以為數(shù)組,對象等。
18、如何獲取接口的參數(shù)?
設(shè)計(jì)接口測試用例時(shí),涉及的是電商系統(tǒng),其中包括很多修改,如商品、商家、店鋪等等,針對這些數(shù)據(jù)的修改,會涉及到很多參數(shù)。如商品的名稱,商品的尺碼,商品的顏色等等。
那在設(shè)計(jì)實(shí)現(xiàn)“修改”接?口時(shí),如何確定要傳哪些參數(shù)?是只需要傳我要修改的參數(shù),還是全部參數(shù)都要傳?
方式一、關(guān)鍵還是看后臺邏輯實(shí)現(xiàn)
舉例:User有兩個(gè)屬性username,password
后臺邏輯實(shí)現(xiàn):update User set username=? where id=xxx;
那么,如果你只想更新username的時(shí)候,可以不傳password,其值是保持不變的。
后臺邏輯實(shí)現(xiàn):udpate User set username=?,password=? where id=xxx;
這種情況下,即使你只想更新username,也需要傳password的值給后臺,不然password就會被更新為空。
此外,還有一些數(shù)據(jù)如id等,如果sql中沒有寫,那即使傳遞了本字段的參數(shù),數(shù)據(jù)庫也不會更新。因此,在寫關(guān)于“修改”的接口時(shí),需要考慮一下,后臺的邏輯是怎么實(shí)現(xiàn)的,然后確認(rèn)要傳遞哪些參數(shù)。
方式二、抓包工具直接抓取接口情況分析
如果系統(tǒng)已經(jīng)實(shí)現(xiàn)了,并且已經(jīng)確定了接口邏輯,那么我們通過Fiddler等抓包工具,抓取到對應(yīng)業(yè)務(wù)的請求報(bào)文,分析其中傳遞參數(shù)信息即可。
19、為什么要做接口測試?
接口是獲取和操作資源的方式,而大部分系統(tǒng)和產(chǎn)品中,資源一般都是產(chǎn)品的核心,比如微信核心資源就是通訊錄關(guān)系鏈和聊天記錄等,因此資源是必測的。
另外接口中大部分的內(nèi)容是數(shù)據(jù),通過數(shù)據(jù)的對比我們能推測到系統(tǒng)和產(chǎn)品的邏輯,測接口就是測邏輯。
最后接口中的返回相對單純,不像web頁面,html代碼中有太多ui的東西,ui最不穩(wěn)定,變化太快,接口相對穩(wěn)定一點(diǎn)點(diǎn),但是里面的干擾信息更少,斷言相對容易很多。
20、HTTP接口傳遞數(shù)據(jù)最常用的方式?
Get方式是從服務(wù)器上獲取數(shù)據(jù);在做數(shù)據(jù)查詢時(shí),建議用Get方式;如:商品信息接口、搜索接口、博客訪客接口等。
Post方式是向服務(wù)器傳送數(shù)據(jù) ;在做數(shù)據(jù)添加、修改或刪除時(shí),建議用Post方式 ;如:微博圖片上傳圖片接口、登錄注冊接口等。
21、什么是接口測試?
接口測試是測試系統(tǒng)組件間接口的一種測試。
接口測試的重點(diǎn)是檢查數(shù)據(jù)的交換,傳遞的正確性,以及接口間邏輯依賴關(guān)系。
提交接口測試的重要意義:實(shí)現(xiàn)開發(fā)期并行測試,減少頁面層測試的深度,縮短整個(gè)項(xiàng)目的測試周期。
22、我們測試的接口屬于哪一類?
大多數(shù)的接口指的是HTTP接口,通常是指 B/S架構(gòu),由客戶端(瀏覽器)調(diào)用,或模擬客戶端(瀏覽器)調(diào)用服務(wù)器提供的API接口,由接口完成處理并返回一個(gè)應(yīng)答的過程。
常見接口類型還有:Webservice接口,http接口,jms接口,hessian接口、REST接口。
23、接口測試用例編寫的要點(diǎn)都包含哪些?
- 測試每個(gè)參數(shù)類型不合法的情況(等價(jià)類)
- 測試每個(gè)參數(shù)取值范圍不合法的情況(等價(jià)類)
- 測試參數(shù)為空的情況(等價(jià)類)
- 測試參數(shù)前后臺定義的一致性
- 測試每個(gè)參數(shù)的上下限(邊界值)
- 如果兩個(gè)請求有嚴(yán)格的先后順序,需要測試調(diào)轉(zhuǎn)順序的情況(參數(shù)組合和順序)
- 接口參數(shù)有可選和必選情況的參數(shù)組合測試(參數(shù)組合和順序)
24、接口測試的基本步驟?
1)獲取請求報(bào)文數(shù)據(jù)
通過fiddler工具或者API接口文檔獲得請求報(bào)文參數(shù),其中就包括請求方式(get、post、put等)、URL地址、請求的query string parameter以及請求的body數(shù)據(jù)。
2)借助工具模擬請求報(bào)文并發(fā)送
把第一步中獲得的參數(shù),整理到j(luò)meter、postman、soapui等接口參數(shù)工具中,模擬接口請求并發(fā)送該請求。
3)獲得響應(yīng)結(jié)果
使用接口測試工具發(fā)送請求后,會返回響應(yīng)報(bào)文,分析響應(yīng)報(bào)文中的數(shù)據(jù)是否是符合要求的。
4)斷言:判斷實(shí)際結(jié)果是否與預(yù)期相同
在工具中也可以添加預(yù)設(shè)的斷言,在運(yùn)行接口測試后,會自動返回接口是否實(shí)現(xiàn)正確。我們可以使用響應(yīng)報(bào)文的響應(yīng)狀態(tài)碼、響應(yīng)的headers頭部或者響應(yīng)的正文數(shù)據(jù)(html、json格式等)進(jìn)行斷言。
25、HTTP協(xié)議的特點(diǎn)是什么?
1)HTTP是無連接
無連接的含義是限制每次連接只處理一個(gè)請求。服務(wù)器處理完客戶的請求,并收到客戶的應(yīng)答后,即斷開連接。采用這種方式可以節(jié)省傳輸時(shí)間。
2)HTTP是媒體獨(dú)立的
這意味著,只要客戶端和服務(wù)器知道如何處理的數(shù)據(jù)內(nèi)容,任何類型的數(shù)據(jù)都可以通過HTTP發(fā)送。客戶端以及服務(wù)器指定使用適合的MIME-type內(nèi)容類型。
3)HTTP是無狀態(tài)
HTTP協(xié)議是無狀態(tài)協(xié)議。無狀態(tài)是指協(xié)議對于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方面,在服務(wù)器不需要先前信息時(shí)它的應(yīng)答就較快。
26、HTTP客戶端請求消息包含哪幾部分?
客戶端發(fā)送一個(gè)HTTP請求到服務(wù)器的請求消息包括以下格式:
- 請求行(request line)
- 請求頭部(header)
- 空行
- 請求數(shù)據(jù)
27、HTTP服務(wù)器響應(yīng)消息包含哪些信息?
HTTP響應(yīng)由四個(gè)部分組成,分別是:
- 狀態(tài)行
- 消息報(bào)頭
- 空行
- 響應(yīng)正文
28、一個(gè)接口用例中有多個(gè)API接口,前后兩個(gè) API 之間如何進(jìn)行參數(shù)傳遞的?
也就是上下游接口的依賴,A接口的響應(yīng)結(jié)果a,是B接口的請求入?yún)ⅰ?/p>
一種方法是:動態(tài)獲取a的值。
另一種方法:比如在接口測試工具Postman、Jmeter中設(shè)置參數(shù)變量。也就是說A接口運(yùn)行完畢后,將結(jié)果提取出來放在全局變量中。這樣一來,其余接口就可以獲取到這個(gè)值了。如果這個(gè)變量不想放在全局中共享,也可以只提供給當(dāng)前測試套件使用。
29、你在實(shí)施接口自動化測試的過程中,如果某些接口第一次調(diào)用長時(shí)間沒有返回,如何保證流程順利進(jìn)行又可以記錄錯誤信息?
如果一個(gè)接口長時(shí)間沒有返回,會影響整體測試的執(zhí)行時(shí)間以及執(zhí)行結(jié)果。
所以我們要為每個(gè)接口設(shè)置一個(gè)超時(shí)時(shí)間,比如3秒。一個(gè)接口超過3秒還沒有返回,就可以定位為異常。
當(dāng)然也不是一個(gè)接口一次調(diào)用超時(shí)了,就一定是異常了,要設(shè)置失敗重試(一般為3次),如果執(zhí)行了3次還是超時(shí),就可以認(rèn)為是一個(gè)異常。在Python中很多單元測試框架都可以添加用例失敗重跑機(jī)質(zhì)。另外也可以使用while循環(huán)實(shí)現(xiàn)用例的重復(fù)執(zhí)行。
當(dāng)一個(gè)接口用例,最終重試了三次依然失敗或超時(shí),我們就需要將該問題記錄到系統(tǒng)日志中并最終顯示在測試報(bào)告中。但是該用例執(zhí)行完畢后,還要保證剩下的用例繼續(xù)執(zhí)行。如果在不使用單元測試框架的情況下,我們就需要捕獲接口調(diào)用超時(shí)或錯誤的異常,以保證測試任務(wù)不會中斷。
總結(jié)一下,要保證每個(gè)接口用例執(zhí)行不會時(shí)間過長,不會單次失敗就誤報(bào),又能成功記錄錯誤信息,保證測試任務(wù)不中斷。我們需要做到三點(diǎn):設(shè)置超時(shí)、添加失敗重跑機(jī)質(zhì)、記錄錯誤日志,有必要時(shí)要捕獲異常對象。
在自動化實(shí)施過程中,除了要保證正常流程之外,還要對異常場景做合理的處置。
30、接口測試如何設(shè)計(jì)測試用例?
接口測試一般考慮入?yún)⑿问降淖兓徒涌诘臉I(yè)務(wù)邏輯,一般設(shè)計(jì)接口測試用例采用等價(jià)類、邊界值、場景法居多。
接口測試設(shè)計(jì)測試用例的思路如下:
1.正常用例,驗(yàn)證接口邏輯是否正確。根據(jù)業(yè)務(wù)邏輯、輸入?yún)?shù)、輸出值的描述,對正常輸入情況下所得的輸出值
2.異常用例,為了保證數(shù)據(jù)的安全及程序在異常情況下的邏輯的正確性而進(jìn)行的測試。
模塊接口測試的主要包括以下幾個(gè)方面:
1)鑒權(quán)碼token異常(鑒權(quán)碼為空<沒有鑒權(quán)碼>,錯誤的鑒權(quán)碼,過期的鑒權(quán)碼)。
2)請求參數(shù)正常/異常。
3)返回結(jié)果校驗(yàn),數(shù)據(jù)庫比對
31、jmeter參數(shù)化的方式有哪些?
1)配置元件---用戶定義的變量元件可以設(shè)置全局變量。
2)函數(shù)助手對話框中可以選擇比如隨機(jī)字符串、隨機(jī)日期、隨機(jī)數(shù)字作為參數(shù)化。
3)可以使用 csv 文件作為參數(shù)化,通過配置元件中的 csv data set config 元件進(jìn)行設(shè)置即可。
32、你平常做接口測試的過程中發(fā)現(xiàn)過哪些bug?
可以發(fā)現(xiàn)很多在頁面上操作發(fā)現(xiàn)不了的bug??梢孕薷恼埱髤?shù),突破前端頁面輸入限制。
舉例說明:
1、比如一個(gè)訂單支付時(shí),我們頁面上是無法改變訂單金額的,但我們可以通過抓包工具捕獲訂單支付請求,然后修改訂單金額后提交,然后出現(xiàn)了一個(gè)原價(jià)100元的訂單我們用1分錢完成了支付。文章來源:http://www.zghlxwxcb.cn/news/detail-641675.html
2、比如一個(gè)轉(zhuǎn)賬的頁面,前端做了限制導(dǎo)致我們無法在轉(zhuǎn)賬金額的輸入框輸入負(fù)數(shù),但我們可以通過抓包工具修改,然后出現(xiàn)了一個(gè)轉(zhuǎn)賬金額為負(fù)數(shù)的bug。文章來源地址http://www.zghlxwxcb.cn/news/detail-641675.html
到了這里,關(guān)于接口測試常見面試題(含答案)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!