版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
一、接口測試問題1、 接口測試用例的設計要點有哪些?對于這個問題我們可以從接口的組成來進行分析,一個接口主要有請求地址、請求方法、請求參數(shù),其中請求地址和方法都是固定的,所以我們主要應該從請求參數(shù)入手,主要可以從以下幾個方面考慮:1、 參數(shù)字段個數(shù):必填字段和可選填2、 參數(shù)合法性:輸入輸出合法、非法參數(shù)3、 邊界:請求參數(shù)邊界值等4、 容錯能力:大容量數(shù)據(jù)、頻繁請求、重復請求(如:訂單)、異常網(wǎng)絡等的處理5、 響應數(shù)據(jù)校驗:斷言、數(shù)據(jù)提取傳遞到下一級接口6、 邏輯校驗:如兩個請求的接口有嚴格的先后順序,需要測試調(diào)轉(zhuǎn)順序的情況7、 性能:對接口模擬并發(fā)測試,逐步加壓,分析瓶頸點,即響應時間,吞吐量,并發(fā)數(shù),cpu,內(nèi)存,io的占用情況。8、 安全性:構(gòu)造惡意的字符請求,如:SQL注入、XSS、敏感信息、業(yè)務邏輯(如:跳過某些關(guān)鍵步驟;未經(jīng)驗證操縱敏感數(shù)據(jù))2、 post和get有什么區(qū)別?這個問題應該是每一個做接口測試人員都能回答的問題,但是要注意說到重點::1、 get方法的參數(shù)是在URL中,post的參數(shù)是在body中(本質(zhì)區(qū)別)2、 get方法的安全性沒post的高3、 get方法能被緩存而post不可以4、 GET請求在URL中傳送的參數(shù)是有長度限制的,而POST沒有。當然還有其他的很多區(qū)別,但是回答這幾個主要的就差不多了。3、 你會使用哪些抓包工具?抓包工具有很多種,但是我們技術(shù)人員最常用的不外乎就是Fiddler、F12這幾種,所以選一個你自己最常用的就可以了。當然面試官接下來的問題多半會問你為什么會用抓包工具?公司不是有接口文檔嗎?4、 使用抓包工具做什么?對于中大型公司里面的開發(fā)人員都會編寫好有完整的接口文檔,那我們做接口測試的時候?qū)φ战涌谖臋n不就可以了嗎?所以對于還沒有真正接口項目經(jīng)驗的小伙伴就不知所措了。那么我們測試人員抓包其實一般都是為了驗證我們測試的數(shù)據(jù)在接口傳遞過程中是否正?;蛘邽榱伺袛嗄硞€問題是前端問題還是后端問題。5、 怎么判斷一個bug是前端問題還是后端問題?我們可以先抓包看請求報文,對著接口文檔,看請求報文有沒問題,有問題就是前端發(fā)的數(shù)據(jù)不對,請求報文沒問題,那就看返回報文,返回的數(shù)據(jù)不對,那就是后端開發(fā)的問題,這樣我們測試人員才能有自己的判斷,而不是任由開發(fā)相互扯皮。6、 你們公司是用什么做接口測試的?每個公司做接口測試所使用的工具都是不一樣的,有的會使用postman來做一些簡單的單接口測試,但是對于一定數(shù)量的接口測試postman就很難勝任了,所以這時候不少公司就會選擇開源的jmeter來做,因為腳本也相對比較好管理維護也方便。但是對于不少公司來說jmeter也滿足不了自己的要求,這時候就會有測試人員自己編寫測試框架(也就是測試開發(fā)),然后通過編碼自己設計完成自己公司需要的功能。7、 接口測試框架你會嗎?會使用unittest,我們的框架是在unittest框架之上進行二次封裝集成了郵件系統(tǒng)和測試報告以及日志、重跑等功能,然后再說這樣設計的優(yōu)勢,這樣就會讓人覺得這人是懂具體的框架實現(xiàn)過程的。8、 你們接口測試用例是在哪里?這要看你們公司是用的什么工具來做接口測試的了,假如是postman和jmeter那么用例就是直接在它們的請求文件里面,但是假如是有自己的框架那么用例一般都在表格或者表里面的。9、什么是API?API是(ApplicationProgrammingInterface)首字母縮略詞,即應用程序編程接口。API是一組用于構(gòu)建軟件應用程序的規(guī)程,協(xié)議和工具。API充當軟件應用程序之間的接口,并允許兩個軟件應用程序相互通信。API是一組軟件功能,可以由其他軟件執(zhí)行。10、 什么是API測試?API測試是一種軟件測試,涉及直接測試API,也是集成測試的一部分,用于檢查API是否滿足應用程序的功能,可靠性,性能和安全性方面的期望。在API測試中,我們主要關(guān)注軟件架構(gòu)的業(yè)務邏輯層??梢栽诎鄠€API的任何軟件系統(tǒng)上執(zhí)行API測試。11、 常見的API測試類型有哪些?API測試通常涉及以下實踐:單元測試功能測試負載測試運行時/錯誤檢測安全測試UI測試互操作性和WS一致性測試滲透測試模糊測試12、 你們公司的接口測試流程是怎樣的?(有沒有感覺熟悉,貌似在哪里聽過)答:接口測試實際跟一般測試不同就是測試用例的設計部分。獲取接口規(guī)范。設計接口測試功能用例(主要從用戶角度出發(fā)看接口能否實現(xiàn)業(yè)務需求,用例設計就是黑盒用例那一套)。各種入?yún)Ⅱ炞C(正常情況,異常情況包括輸入?yún)?shù)個數(shù)不對,類型不對,可選/必選,還有考慮參數(shù)有互斥或關(guān)聯(lián)的情況)。接口返回值各種驗證(符合接口文檔需求)了解接口實現(xiàn)邏輯,實現(xiàn)邏輯覆蓋(語句/條件/分支/判定/…)接口能并發(fā)執(zhí)行嗎、安全嗎,性能滿足要求嗎?采用工具或者自寫代碼來驗證。發(fā)現(xiàn)問題跟功能測試一樣,該報bug報bug,該跟蹤狀態(tài)的跟蹤狀態(tài)。13、 請簡述一下cookie、session以及token的區(qū)別(萬年不變的面試題)(1) cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務器上。而token是接口測試時的鑒權(quán)碼,一般情況下登陸后才可以獲取到token,然后在每次請求接口時需要帶上token參數(shù)。(2) cookie不是很安全,別人可以分析存放在本地的cookie并進行cookie欺騙,考慮到安全應當使用session,session會在一定時間內(nèi)保存在服務器上。當訪問增多,會比較占用你服務器的性能,考慮到減輕服務器性能方面應當使用cookie(3) 可以將登陸信息等重要信息存放為session;其他信息需要保存,可以放在cookie14、 接口測試如何設計測試用例?(必問,有沒有感覺答得整個人都不好了?)接口測試設計測試用例的思路如下:接口業(yè)務邏輯測試?(正例)接口邏輯測試是指根據(jù)業(yè)務邏輯、輸入?yún)?shù)、輸出值的描述,對正常輸入情況下所得的輸出值是否正確的測試,也就是測試對外提供的接口服務是否正常工作。模塊接口測試?(反例)模塊接口測試是為了保證數(shù)據(jù)的安全及程序在異常情況下的邏輯的正確性而進行的測試。模塊接口測試的主要包括以下幾個方面:1)鑒權(quán)碼token異常(鑒權(quán)碼為空〈沒有鑒權(quán)碼〉錯誤的鑒權(quán)碼,過期的鑒權(quán)碼)。2) 其他參數(shù)異常。1、 必填項檢查2、 參數(shù)的長度、類型、格式異常:常規(guī)參數(shù):(數(shù)字、字符串、日期)參數(shù)長度:6-18位?;蛏矸葑C、電話的長度。參數(shù)類型:數(shù)字(精度),字母,中文,帶空格的參數(shù),特殊字符。日期格式:日期:年月日,年月日時分秒,日期格式(包括/-,等)。3) 錯誤碼異常覆蓋。4) 接口測試其他的關(guān)注點接口有翻頁時,頁碼與頁數(shù)的異常值測試數(shù)據(jù)庫的增刪改查,比如一個post接口操作完成后,通過列表頁接口看下新的數(shù)據(jù)是否和剛才的post一致接口返回的圖片地址能否打開,圖片尺寸是否符合需求當輸出參數(shù)有聯(lián)動性時,需要校驗返回兩參數(shù)的實際結(jié)果是否都符合需求。所有列表頁接口必須考慮排序值所有功能都要考慮兼容舊版15、 接口測試執(zhí)行中比對數(shù)據(jù)庫嗎?肯定啊,因為接口返回值的數(shù)據(jù)來源于數(shù)據(jù)庫,接口對數(shù)據(jù)的操作還要進行深層次的數(shù)據(jù)庫檢查!16、 談談你對HTTP協(xié)議的了解?超文本傳輸協(xié)議,端口為80,特點(無記憶功能、快速)是由請求和響應兩部分組成請求由請求頭、請求行、請求正文組成;響應是由響應頭、響應行、響應正文組成,之前我們公司的接口是采用https協(xié)議的。httpshttp+ssl協(xié)議端口443面向安全的超文本傳輸協(xié)議17、 get和post請求有什么區(qū)別?get和post請求都是客戶端向服務器提交的一種請求方式get是明文傳輸參數(shù)、傾向于請求服務器資源。比如打開網(wǎng)站post傳輸數(shù)據(jù)不可見,安全性高,傾向于向服務器提交數(shù)據(jù),比如注冊等18、 響應狀態(tài)碼有哪些?1xx:指示信息一一表示請求已接受,繼續(xù)處理2xx:成功一一表示請求已被成功接收、理解、接受3xx:重定向一一要完成請求必須進行更進一步的操作4xx:客戶端錯誤 請求有語法錯誤或請求無法實現(xiàn)5xx:服務器端錯誤一一服務器未能實現(xiàn)合法的請求19、 接口測試中有哪些要注意的測試點?1) 接口中返回了圖片地址,要手工去進行圖片的測試(大小、內(nèi)容)2) 接口完成查詢功能的時候,數(shù)據(jù)返回的排序顯示3) 接口測試的時候,關(guān)注參數(shù)的默認值、必填項20、 接口執(zhí)行測試后返回結(jié)果做對比,一般比對哪部分內(nèi)容?之前必須要對比的就是返回狀態(tài)碼,其次再去對比返回其它關(guān)鍵內(nèi)容21、 為什么開展接口測試?1) 接口測試屬于集成測試、測試介入越早、就越能在項目早期發(fā)現(xiàn)問題,其修復問題的成本越低2) 接口測試非常快速、UI自動化執(zhí)行一個測試用例10S左右、接口測試用例執(zhí)行的話,3) 需要的時間是毫秒級的4) 系統(tǒng)數(shù)量多、復雜度增高,同時保持各自獨立性。5) 系統(tǒng)間調(diào)用存在數(shù)據(jù)交互,發(fā)現(xiàn)頁面操作發(fā)現(xiàn)不了的Bug。6) 接口之間訪問時,對接口數(shù)據(jù)的準確性要求很高。7) 檢查系統(tǒng)的異常處理8) 檢查系統(tǒng)的安全性,穩(wěn)定性9) 前端變了,接口測好了,后端不要變22、 之前在接口測試過程中,使用的工具是什么?postman或jmeter23、 之前用過抓包工具沒有?如何使用的?之前在項目中用過fiddler抓包工具進行HTTP協(xié)議請求的抓取打開fiddler之后,默認瀏覽器配置了8888端口的代理,在fiddler設置好過濾策略后,打開需要進行抓包的網(wǎng)站進行操作,就可以進行抓包24、 json數(shù)據(jù)是什么,你平時如何解析json數(shù)據(jù)?一種開發(fā)常用的數(shù)據(jù)報文格式,由鍵值對和數(shù)組兩種格式構(gòu)成??梢酝ㄟ^工具bejson網(wǎng)站等25、 postman你在工作中使用流程是什么樣的?1) 編寫好用例2) 在postman先建好url環(huán)境變量3) 根據(jù)接口用例所屬的模塊新建集合管理4) 在集合中不同模塊下錄入測試用例5) 錄入測試用例的時候根據(jù)預期結(jié)果在tests頁簽中增加斷言6) 導出通過Newman去運行26、 postman中設置環(huán)境變量有什么用?在之前項目中,接口測試測試的環(huán)境有開發(fā)環(huán)境,測試環(huán)境等,為了測試的時候方便,就在postman設置環(huán)境變量,到時所有接口都引用該環(huán)境變量,這樣就不用為了切換環(huán)境導致每次都去修改被測系統(tǒng)接口的主機地址;點擊右上角環(huán)境變量管理按鈕一新建環(huán)境變量,在腳本中使用{{變量名}}去調(diào)用27、 在接口測試中關(guān)聯(lián)是什么含義?如何用postman設置關(guān)聯(lián)?關(guān)聯(lián)就是把上一個接口返回值的部分截取出來,作為下一個接口的參數(shù),能讓接口串聯(lián)運行在postman中設置關(guān)聯(lián)的步驟如下:1)先通過正則表達式提取的方式或json取值的方式把下一個接口需要的信息從上一個接口截取出來2) 使用設置全局變量的代碼把取出來的值保存到全局變量3) 在下一個接口中,使用{{全局變量}}代替要替換的靜態(tài)值28、 postman支持什么類型的協(xié)議測試?http和https協(xié)議的29、 postman參數(shù)化有哪幾種方式?內(nèi)建變量、pre-scripts編寫js腳本、批量運行時導入csv或json格式的文件30、 Newman如何執(zhí)行postman腳本?Newmanrun腳本名稱也可以添加參數(shù)生成html報表等31、 jmeter之前用的是什么版本?如何安裝的?jmeter用的是5.0版本,安裝如下:先在電腦上安裝jdk1.8或以上的版本,然后從官網(wǎng)下載最新的安裝包,解壓后,進行環(huán)境變量的配置,配置好后即安裝完成32、 在項目中如何用jmeter進行接口測試?1) 把線程組數(shù)量設置為1,循環(huán)次數(shù)設置為12) 配置好全局變量URL通過配置元件——用戶自定義的變量添加3) 增加配置元件http請求默認值,放置在用戶定義的變量之后4) 添加事務控制器管理和組織測試用例5) 在事務控制中添加http請求添加測試用例中的接口請求信息6) 添加對應的斷言元件進行斷言33、 jmeter中如何設置斷言?右擊請求一-一斷言——響應斷言一-一響應斷言界面輸入要檢查比對的項,設置好斷言后,執(zhí)行接口測試如果是通過的,查看結(jié)果樹不會有任何提示,如果斷言失敗,就會有紅色報錯。如果接口返回的數(shù)據(jù)是json數(shù)據(jù),也可以添加json斷言34、 jmeter中如何實現(xiàn)關(guān)聯(lián)?先從上一個接口中通過正則表達式提取器或jsonpath解析器截取下一個接口需要的參數(shù)值保存到變量,然后在寫一個接口中通過${變量名}去獲取35、 jmeter添加http請求默認值元件有什么作用?添加并設置好后,相當于給所有的http請求取樣器都設置了默認值,既不用填寫取樣器中的比如主機地址、端口、代理等,都可以使用http請求默認值設置的36、 jmeter參數(shù)化的方式有哪幾種可以實現(xiàn)?1) 配置元件——用戶定義的變量元件可以設置全局變量2) 函數(shù)助手對話框中可以選擇比如隨機字符串、隨機日期、隨機數(shù)字作為參數(shù)化3) 可以使用csv文件作為參數(shù)化,通過配置元件中的csvdatasetconfig元件進行設置即可37、 沒有接口文檔,如何做接口測試答:1.沒有接口文檔,那就需要先跟開發(fā)溝通,然后整理接口文檔沒有接口文檔,可以抓包看接口請求參數(shù),然后不懂的跟開發(fā)溝通38、 當一個接口出現(xiàn)異常時候,你是如何分析異常的?答:抓包,查看后端日志按你的理解,軟件接口是什么?答:就是指程序中具體負責在不同模塊之間傳輸或接受數(shù)據(jù)的并做處理的類或者函數(shù)。39、 HTTP和HTTPS協(xié)議區(qū)別?答:https協(xié)議需要到CA(CertificateAuthority,證書頒發(fā)機構(gòu))申請證書,一般免費證書較少,因而需要一定費用;http是超文本傳輸協(xié)議,信息是明文傳輸,Https協(xié)議是由SSL+Http協(xié)議構(gòu)建的可進行加密傳輸、身份認證的網(wǎng)絡協(xié)議,比http協(xié)議安全;http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443;40你會使用fiddler嗎?一般用來干什么?答:會使用,一般用作抓包。41、HTTPS在哪一層?答:HTTPS在應用層。⑦HTTP壬、徊MJ群密 *⑤<- >④心-UDP *—>網(wǎng)時② >①督理 AClkentServer常見的POST提交數(shù)據(jù)方式答:主要有四種方式:application/x-www-form-urlencoded、multipart/form-data、application/json、text/xml等。什么是Http協(xié)議無狀態(tài)協(xié)議?怎么解決HTTP協(xié)議無狀態(tài)協(xié)議答:無狀態(tài)是指協(xié)議對于事務處理沒有記憶能力,服務器不知道客戶端是什么狀態(tài)。即我們給服務器發(fā)送HTTP請求之后,服務器根據(jù)請求,會給我們發(fā)送數(shù)據(jù)過來,但是,發(fā)送完,不會記錄任何信息。HTTP是一個無狀態(tài)協(xié)議,這意味著每個請求都是獨立的,Keep-Alive沒能改變這個結(jié)果。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數(shù)據(jù)量增大。另一方面,在服務器不需要先前信息時它的應答就較快。HTTP協(xié)議這種特性有優(yōu)點也有缺點,優(yōu)點在于解放了服務器,每一次請求“點到為止”不會造成不必要連接占用,缺點在于每次請求會傳輸大量重復的內(nèi)容信息??蛻舳伺c服務器進行動態(tài)交互的Web應用程序出現(xiàn)之后,HTTP無狀態(tài)的特性嚴重阻礙了這些應用程序的實現(xiàn),畢竟交互是需要承前啟后的,簡單的購物車程序也要知道用戶到底在之前選擇了什么商品。于是,兩種用于保持HTTP連接狀態(tài)的技術(shù)就應運而生了,一個是Cookie,而另一個則是Session。44、 什么是DNS?答:DNS是域名系統(tǒng)(DomainNameSystem),DNS是用來做域名解析的,它會在你上網(wǎng)輸入網(wǎng)址后,把它轉(zhuǎn)換成IP,然后去訪問對方服務器;沒有它,你想上百度就要記住百度的IP,但有了DNS的處理,你只需要記住對應網(wǎng)站的域名,即網(wǎng)址就可以了。45、 接口性能測試怎么做的響應時間吞吐量并發(fā)數(shù)服務器資源使用率(CPU,內(nèi)存,io,network)46、 如何模擬弱網(wǎng)測試?兩臺機器鏈接同一WiFi,使用電腦對其限流47、 如何分析一個bug是前端的還是后端的?通過抓包查看報文,請求報文有誤即為前端的bug,返回報文有誤即為二、Web測試問題get請求和POSt的區(qū)別?get是從服務器上獲取的數(shù)據(jù),post則是向服務器傳送數(shù)據(jù)get的參數(shù)在URL中可以看到,post的參數(shù)用戶看不到get傳送的數(shù)據(jù)量較小,不能大于2KB,post傳送的數(shù)據(jù)量較大,一般被默認為不受限制get安全性比較低,post安全性較高/s和c/s架構(gòu)有什么區(qū)別和聯(lián)系?B/S最大的優(yōu)點就是可以在任何地方進行操作而不用安裝任何專門的軟件。只要有一臺能上網(wǎng)的電腦就能使用,客戶端零維護。系統(tǒng)的擴展非常容易C/S可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務合理分配到Client端和Server端來實現(xiàn)。C/S結(jié)構(gòu)的軟件需要針對不同的操作系統(tǒng)開發(fā)不同版本的軟件,加之產(chǎn)品的更新?lián)Q代十分快,更新的代價高,效率低。C/S和B/S并沒有本質(zhì)的區(qū)別:B/S是基于特定通信協(xié)議(HTTP)的C/S架構(gòu),也就是說B/S包含在C/S中,是特殊的C/S架構(gòu)session和cookie的區(qū)別有哪些?session存放在服務器端,cookie存放在客戶端cookie不是很安全,別人可以分析存放在本地的cookie,session會在一定時間內(nèi)保存在服務器上,當訪問增多,會比較占服務器性能單個cookie在客戶端的限制是3kweb功能測試的關(guān)注點有哪些?鏈接測試表單測試Cookie&Session測試文件上傳測試數(shù)據(jù)庫測試https和http的區(qū)別HTTP明文傳輸,數(shù)據(jù)都是未加密的,安全性較差,HTTPS(SSL+HTTP)數(shù)據(jù)傳輸過程是加密的,安全性較好。使用HTTPS協(xié)議需要到CA(CertificateAuthority,數(shù)字證書認證機構(gòu))申請證書,一般免費證書較少,因而需要一定費用。證書頒發(fā)機構(gòu)如:Symantec、Comodo、GoDaddy和GlobalSign等。HTTP頁面響應速度比HTTPS快,主要是因為HTTP使用TCP三次握手建立連接,客戶端和服務器需要交換3個包,而HTTPS除了TCP的三個包,還要加上ssl握手需要的9個包,所以一共是12個包。http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。HTTPS其實就是建構(gòu)在SSL/TLS之上的HTTP協(xié)議,所以,要比較HTTPS比HTTP要更耗費服務器資源。web測試中,如何判斷是前端的bug還是后端的bug呢?請求接口url是否正確,如果請求的接口url錯誤,為前端的bug傳參是否正確,如果傳參不正確,為前端的bug請求接口url和傳參都正確,查看響應是否正確,如果響應內(nèi)容不正確,為后端bug也可以在瀏覽器控制臺輸入js代碼調(diào)試進行分析.界面是怎么測試的?我們主要測試的是UI,功能,網(wǎng)絡,兼容性,易用性,安全性測試UI測試:一般檢查界面的布局展示是不是和需求說明一致。還有測試不同的屏幕大小,不同的分辨率對界面展示的影響。功能測試:和web的功能測試差不多,主要是考慮操作的權(quán)限,模塊功能,用戶場景等方面兼容性測試:主要考慮的是瀏覽器不同版本的兼容,屏幕大小跟分辨率網(wǎng)絡測試:一般是考慮在不同網(wǎng)絡情況下,h5界面能否正常運行,比如說網(wǎng)絡之間的切換,和網(wǎng)絡之間組合,外景和弱網(wǎng)環(huán)境下的使用情況osi的七層模型?應用層,表示層,會話層,傳輸層,網(wǎng)絡層,鏈路層,物理層http協(xié)議的響應碼是如何定義的?(1) 1xx屬于參考信息(2) 2xx指明狀態(tài)成功(3) 3xx用于重定向(4) 4xx指客戶端錯誤(5) 5xx則是服務器端錯誤TCP和UDP的區(qū)別相同點:都是傳輸層協(xié)議,負責承擔數(shù)據(jù)傳輸?shù)牡娜蝿?。不同點:TCP:傳輸控制協(xié)議,可靠的面向連接,面向字節(jié)流服務。安全性高,但是效率低。UDP:用戶數(shù)據(jù)報協(xié)議,不可靠、無連接的面向報文的傳輸服務,安全性低,效率高。應用層協(xié)議有哪些?域名系統(tǒng)(DNS):實現(xiàn)網(wǎng)絡設備名字到IP地址映射的網(wǎng)絡服務。文件傳輸協(xié)議(FTP):實現(xiàn)交互式文件傳輸功能。簡單郵件傳送協(xié)議(SMTP):實現(xiàn)電子郵箱傳送功能。超文本傳輸協(xié)議(HTTP):實現(xiàn)WWW服務。簡單網(wǎng)絡管理協(xié)議(SNMP):管理與監(jiān)視網(wǎng)絡設備。遠程登錄協(xié)議(Telnet):實現(xiàn)遠程登錄功能。TCP/IP協(xié)議是什么?有什么特點?TCP/IP協(xié)議是Internet上使用最為廣泛的通信協(xié)議。所謂TCP/IP協(xié)議,實際上是一個協(xié)議簇(組),是一組協(xié)議,其中TCP協(xié)議和IP協(xié)議是其中兩個最重要的協(xié)議°IP協(xié)議稱為網(wǎng)際協(xié)議,用來給各種不同的局域網(wǎng)和通信子網(wǎng)提供一個統(tǒng)一的互聯(lián)平臺。TCP協(xié)議稱為傳輸控制協(xié)議,用來為應用程序提供端到端的通信和控制功能⑴開放的協(xié)議標準:可以免費使用,并且獨立于特定的計算機硬件與操作系統(tǒng)。⑵獨立于特定的網(wǎng)絡硬件:可以運行在局域網(wǎng)、廣域網(wǎng),更適用于互聯(lián)網(wǎng)中。⑶統(tǒng)一的網(wǎng)絡地址分配方案:使得整個TCP/IP設備在網(wǎng)中都具有唯一的IP地址。⑷標準化的高層協(xié)議:可以提供多種可靠的用戶服務。Http協(xié)議報文結(jié)構(gòu)包含什么內(nèi)容?請求方式有哪些?一個HTTP請求報文由請求行(requestline)、請求頭部(header)、空行和請求數(shù)據(jù)4個部分組成。HTTP響應報文和請求報文的結(jié)構(gòu)差不多,也是由四個部分組成(狀態(tài)行+響應頭部+空行+響應體)序方齋1GET圜芋溫湖】由土值息,葬依回修傷主1于事,只枷0的函皿中次ia■響內(nèi)■,用于如業(yè)3POST向摑璉歸嫖!9立由第郵姓理閥承[冊度歸皿甘上利t POSTW^q?#fl”哥tn 的:于強[Q/m巳丹EMEZ弋*4柯JJ只具廠?;《周隅其規(guī)嶗送S1W.'哩取叱版世土勺5DELETE兩珂附兵Bi肝閔ntf繭函L6COMNLCTHTTP/Lt協(xié)議中事MN酬S收為Wg的fW9BR務..7OPTIONS尤許村戶僧吉首佛疝!帕.BTRACE國髭HM苔藤喧劇豹請下呸亨也于Mlu?lL;?Jr.Cookie和Session的關(guān)系區(qū)別?Cookie是服務器暫存放在用戶計算機上的一些資料,好讓服務器用來辨認用戶的計算機。Session:會話,客戶端和服務器之間的會話,通過在服務器端記錄信息確定用戶身份。cookie是一門客戶端緩存技術(shù),cookie數(shù)據(jù)由服務器生成,發(fā)送給瀏覽器保存在客戶端cookie數(shù)據(jù)的格式:鍵值對cookie數(shù)據(jù)過期機制:設置expire值Cookie保存在瀏覽器、易偽造、不安全session是一門服務端會話緩存技術(shù),session由服務器端的web容器創(chuàng)建,保存在服務器端session保存數(shù)據(jù):鍵值對形式session過期:一般默認30分鐘Session在服務器端,相對安全,過度使用會消耗服務器資源Web系統(tǒng)和App的測試有哪些不同?Web測試和App測試區(qū)別為:監(jiān)測不同、更新不同、回歸測試不同。一、 監(jiān)測不同1、Web測試:Web測試需監(jiān)測響應時間、CPU、Memory。2、App測試:App測試除了需監(jiān)測響應時間、CPU、Memory外,還需監(jiān)測流量、電量等。二、 更新不同1、Web測試:Web測試只要更新了服務器端,客戶端就會同步會更新。2、App測試:App測試更新需要手動更新客戶端。三、 回歸測試不同1、Web測試:Web測試不需要進行回歸測試。2、App測試:App測試所有核心版本都需要進行回歸測試。WebDriver原理webDriver是按照client/server模式設計,client就是我們的測試代碼,發(fā)送請求,server就是打開的瀏覽器來打開client發(fā)出的請求并做出響應。具體的工作流程:?webdriver打開瀏覽器并綁定到指定端口。啟動的瀏覽器作為remoteserver.?client通過commandExecuter發(fā)送httpRequest給remoteserver的的偵聽端n(thewebdriverwirecontrol通信協(xié)議)?Remoteserver根據(jù)原生的瀏覽器組件來轉(zhuǎn)化為瀏覽器的native調(diào)用。備注:啟動瀏覽器的時候,使用的是http:hypertesttransferprotocol三、App測試問題什么是activityActivity是Android的四大組件之一,也是平時我們用到最多的一個組件,可以用來顯示View。官方的說法是Activity一個應用程序的組件,它提供一個屏幕來與用戶交互,以便做一些諸如打電話、發(fā)郵件和看地圖之類的事情。Activity是一個Android的應用組件,它提供屏幕進行交互。每個Activity都會獲得一個用于繪制其用戶界面的窗口,窗口可以充滿哦屏幕也可以小于屏幕并浮動在其他窗口之上。一個應用通常是由多個彼此松散聯(lián)系的Activity組成,一般會指定應用中的某個Activity為主活動,也就是說首次啟動應用時給用戶呈現(xiàn)的Activity。將Activity設為主活動的方法當然Activity之間可以進行互相跳轉(zhuǎn),以便執(zhí)行不同的操作。每當新Activity啟動時,舊的Activity便會停止,但是系統(tǒng)會在堆棧也就是返回棧中保留該Activity。當新Activity啟動時,系統(tǒng)也會將其推送到返回棧上,并取得用戶的操作焦點。當用戶完成當前Activity并按返回按鈕是,系統(tǒng)就會從堆棧將其彈出銷毀,然后回復前一Activity當一個Activity因某個新Activity啟動而停止時,系統(tǒng)會通過該Activity的生命周期回調(diào)方法通知其這一狀態(tài)的變化。Activity因狀態(tài)變化每個變化可能有若干種,每一種回調(diào)都會提供執(zhí)行與該狀態(tài)相應的特定操作的機會Activity生命周期?周期即活動從開始到結(jié)束所經(jīng)歷的各種狀態(tài)。生命周期即活動從開始到結(jié)束所經(jīng)歷的各個狀態(tài)。從一個狀態(tài)到另一個狀態(tài)的轉(zhuǎn)變,從無到有再到無,這樣一個過程中所經(jīng)歷的狀態(tài)就叫做生命周期。Activity本質(zhì)上有四種狀態(tài):運行(Active/Running):Activity處于活動狀態(tài),此時Activity處于棧頂,是可見狀態(tài),可以與用戶進行交互暫停(Paused):當Activity失去焦點時,或被一個新的非全面屏的Activity,或被一個透明的Activity放置在棧頂時,Activity就轉(zhuǎn)化為Paused狀態(tài)。此刻并不會被銷毀,只是失去了與用戶交互的能力,其所有的狀態(tài)信息及其成員變量都還在,只有在系統(tǒng)內(nèi)存緊張的情況下,才有可能被系統(tǒng)回收掉停止(Stopped):當Activity被系統(tǒng)完全覆蓋時,被覆蓋的Activity就會進入Stopped狀態(tài),此時已不在可見,但是資源還是沒有被收回系統(tǒng)回收(Killed):當Activity被系統(tǒng)回收掉,Activity就處于Killed狀態(tài)如果一個活動在處于停止或者暫停的狀態(tài)下,系統(tǒng)內(nèi)存缺乏時會將其結(jié)束(finish)或者殺死(kill)。這種非正常情況下,系統(tǒng)在殺死或者結(jié)束之前會調(diào)用onSaveInstance()方法來保存信息,同時,當Activity被移動到前臺時,重新啟動該Activity并調(diào)用onRestoreInstance()方法加載保留的信息,以保持原有的狀態(tài)。在上面的四中常有的狀態(tài)之間,還有著其他的生命周期來作為不同狀態(tài)之間的過度,用于在不同的狀態(tài)之間進行轉(zhuǎn)換,生命周期的具體說明見下。Android四大組件Android四大基本組件:Activity、BroadcastReceiver廣播接收器、ContentProvider內(nèi)容提供者、Service服務。Activity:應用程序中,一個Activity就相當于手機屏幕,它是一種可以包含用戶界面的組件,主要用于和用戶進行交互。一個應用程序可以包含許多活動,比如事件的點擊,一般都會觸發(fā)一個新的Activity。BroadcastReceiver廣播接收器:應用可以使用它對外部事件進行過濾只對感興趣的外部事件(如當電話呼入時,或者數(shù)據(jù)網(wǎng)絡可用時)進行接收并做出響應。廣播接收器沒有用戶界面。然而,它們可以啟動一個activity或serice來響應它們收到的信息,或者用NotificationManager來通知用戶。通知可以用很多種方式來吸引用戶的注意力—閃動背燈、震動、播放聲音等。一般來說是在狀態(tài)欄上放一個持久的圖標,用戶可以打開它并獲取消息。ContentProvider內(nèi)容提供者:內(nèi)容提供者主要用于在不同應用程序之間實現(xiàn)數(shù)據(jù)共享的功能,它提供了一套完整的機制,允許一個程序訪問另一個程序中的數(shù)據(jù),同時還能保證被訪問數(shù)據(jù)的安全性。只有需要在多個應用程序間共享數(shù)據(jù)時才需要內(nèi)容提供者。例如:通訊錄數(shù)據(jù)被多個應用程序使用,且必須存儲在一個內(nèi)容提供者中。它的好處:統(tǒng)一數(shù)據(jù)訪問方式。Service月艮務:是Android中實現(xiàn)程序后臺運行的解決方案,它非常適合去執(zhí)行那些不需要和用戶交互而且還要長期運行的任務(一邊打電話,后臺掛著QQ)。服務的運行不依賴于任何用戶界面,即使程序被切換到后臺,或者用戶打開了另一個應用程序,服務扔然能夠保持正常運行,不過服務并不是運行在一個獨立的進程當中,而是依賴于創(chuàng)建服務時所在的應用程序進程。當某個應用程序進程被殺掉后,所有依賴于該進程的服務也會停止運行(正在聽音樂,然后把音樂程序退出)。4?app測試和web測試有什么區(qū)別?WEB測試和App測試從流程上來說,沒有區(qū)別。都需要經(jīng)歷測試計劃方案,用例設計,測試執(zhí)行,缺陷管理,測試報告等相關(guān)活動。從技術(shù)上來說,WEB測試和APP測試其測試類型也基本相似,都需要進行功能測試、性能測試、安全性測試、GUI測試等測試類型。他們的主要區(qū)別在于具體測試的細節(jié)和方法有區(qū)別,比如:性能測試,在WEB測試只需要測試響應時間這個要素,在App測試中還需要考慮流量測試和耗電量測試。兼容性測試:在WEB端是兼容瀏覽器,在App端兼容的是手機設備。而且相對應的兼容性測試工具也不相同,WEB因為是測試兼容瀏覽器,所以需要使用不同的瀏覽器進行兼容性測試(常見的是兼容IE6,IE8,chrome,firefox)如果是手機端,那么就需要兼容不同品牌,不同分辨率,不同android版本甚至不同操作系統(tǒng)的兼容。(常見的兼容方式是兼容市場占用率前N位的手機即可),有時候也可以使用到兼容性測試工具,但WEB兼容性工具多用IETester等工具,而App兼容性測試會使用Testin這樣的商業(yè)工具也可以做測試。安裝測試:WEB測試基本上沒有客戶端層面的安裝測試,但是App測試是存在客戶端層面的安裝測試,那么就具備相關(guān)的測試點。還有,App測試基于手機設備,還有一些手機設備的專項測試。如交叉事件測試,操作類型測試,網(wǎng)絡測試(弱網(wǎng)測試,網(wǎng)絡切換)交叉事件測試:就是在操作某個軟件的時候,來電話、來短信,電量不足提示等外部事件。操作類型測試:如橫屏測試,手勢測試網(wǎng)絡測試:包含弱網(wǎng)和網(wǎng)絡切換測試。需要測試弱網(wǎng)所造成的用戶體驗,重點要考慮回退和刷新是否會造成二次提交。弱網(wǎng)絡的模擬,據(jù)說可以用360wifi實現(xiàn)設置。從系統(tǒng)架構(gòu)的層面,WEB測試只要更新了服務器端,客戶端就會同步會更新。而且客戶端是可以保證每一個用戶的客戶端完全一致的。但是APP端是不能夠保證完全一致的,除非用戶更新客戶端。如果是APP下修改了服務器端,意味著客戶端用戶所使用的核心版本都需要進行回歸測試一遍。還有升級測試:升級測試的提醒機制,升級取消是否會影響原有功能的使用,升級后用戶數(shù)據(jù)是否被清除了。android和ios測試區(qū)別?App測試中ios和Android有哪些區(qū)別呢?Android長按home鍵呼出應用列表和切換應用,然后右滑則終止應用;多分辨率測試,Android端20多種,ios較少;手機操作系統(tǒng),Android較多,ios較少且不能降級,只能單向升級;新的ios系統(tǒng)中的資源庫不能完全兼容低版本中的ios系統(tǒng)中的應用,低版本ios系統(tǒng)中的應用調(diào)用了新的資源庫,會直接導致閃退(Crash);操作習慣:Android,Back鍵是否被重寫,測試點擊Back鍵后的反饋是否正確;應用數(shù)據(jù)從內(nèi)存移動到SD卡后能否正常運行等;push測試:Android:點擊home鍵,程序后臺運行時,此時接收到push,點擊后喚醒應用,此時是否可以正確跳轉(zhuǎn);ios,點擊home鍵關(guān)閉程序和屏幕鎖屏的情況(紅點的顯示);安裝卸載測試:Android的下載和安裝的平臺和工具和渠道比較多,ios主要有appstore,iTunes和testflight下載;升級測試:可以被升級的必要條件:新舊版本具有相同的簽名;新舊版本具有相同的包名;有一個標示符區(qū)分新舊版本(如版本號),對于Android若有內(nèi)置的應用需檢查升級之后內(nèi)置文件是否匹配(如內(nèi)置的輸入法)另外:對于測試還需要注意一下幾點:并發(fā)(中斷)測試:鬧鈴彈出框提示,另一個應用的啟動、視頻音頻的播放,來電、用戶正在輸入等,語音、錄音等的播放時強制其他正在播放的要暫停;數(shù)據(jù)來源的測試:輸入,選擇、復制、語音輸入,安裝不同輸入法輸入等;push(推送)測試:在開關(guān)機、待機狀態(tài)下執(zhí)行推送,消息先死及其推送跳轉(zhuǎn)的正確性;應用在開發(fā)、未打開狀態(tài)、應用啟動且在后臺運行的情況下是push顯示和跳轉(zhuǎn)否正確;推送消息閱讀前后數(shù)字的變化是否正確;多條推送的合集的顯示和跳轉(zhuǎn)是否正確;分享跳轉(zhuǎn):分享后的文案是否正確;分享后跳轉(zhuǎn)是否正確,顯示的消息來源是否正確;觸屏測試:同時觸摸不同的位置或者同時進行不同操作,查看客戶端的處理情況,是否會crash等app出現(xiàn)ANR,是什么原因?qū)е碌??那么導致ANR的根本原因是什么呢?簡單的總結(jié)有以下兩點:主線程執(zhí)行了耗時操作,比如數(shù)據(jù)庫操作或網(wǎng)絡編程其他進程(就是其他程序)占用CPU導致本進程得不到CPU時間片,比如其他進程的頻繁讀寫操作可能會導致這個問題。細分的話,導致ANR的原因有如下幾點:耗時的網(wǎng)絡訪問大量的數(shù)據(jù)讀寫數(shù)據(jù)庫操作硬件操作(比如camera)調(diào)用thread的join()方法、sleep()方法、wait()方法或者等待線程鎖的時候servicebinder的數(shù)量達到上限systemserver中發(fā)生WatchDogANRservice忙導致超時無響應其他線程持有鎖,導致主線程等待超時其它線程終止或崩潰導致主線程一直等待。app出現(xiàn)crash原因有哪些?為什么App會出現(xiàn)崩潰呢?百度了一下,查到和App崩潰相關(guān)的幾個因素:內(nèi)存管理錯誤,程序邏輯錯誤,設備兼容,網(wǎng)絡因素等,如下:內(nèi)存管理錯誤:可能是可用內(nèi)存過低,app所需的內(nèi)存超過設備的限制,app跑不起來導致Appcrasho或是內(nèi)存泄露,程序運行的時間越長,所占用的內(nèi)存越大,最終用盡全部內(nèi)存,導致整個系統(tǒng)崩潰。亦或非授權(quán)的內(nèi)存位置的使用也可能會導致Appcrasho程序邏輯錯誤:數(shù)組越界、堆棧溢出、并發(fā)操作、邏輯錯誤。e.g.app新添加一個未經(jīng)測試的新功能,調(diào)用了一個已釋放的指針,運行的時候就會crasho設備兼容:由于設備多樣性,app在不同的設備上可能會有不同的表現(xiàn)。網(wǎng)絡因素:可能是網(wǎng)速欠佳,無法達到app所需的快速響應時間,導致appcrash?;蛘呤遣煌W(wǎng)絡的切換也可能會影響app的穩(wěn)定性。app對于不穩(wěn)定偶然出現(xiàn)anr和crash時候你是怎么處理的?app偶然出現(xiàn)anr和crash是比較頭疼的問題,由于偶然出現(xiàn)無法復現(xiàn)步驟,這也是一個測試人員必備的技能,需要抓日志。查看日志主要有3個方法:方法一:app開發(fā)保存錯誤日志到本地一般app開發(fā)在debug版本,出現(xiàn)anr和crash的時候會自動把日志保存到本地實際的sd卡上,去對應的app目錄取出來就可以了方法二:實時抓取當出現(xiàn)偶然的crash時候,這時候可以把手機拉到你們app開發(fā)那,手機連上他的開發(fā)代碼的環(huán)境,有ddms會抓日志,這時候出現(xiàn)crash就會記錄下來日志。盡量重復操作讓bug復現(xiàn)就可以了也可以自己開著logcat,保存日志到電腦本地,參考這篇:adblogcat|find"com.sankuai.meituan">d:\hello.txt方法三:第三方sdk統(tǒng)計工具一般接入了第三方統(tǒng)計sdk,比如友盟統(tǒng)計,在友盟的后臺會抓到報錯的日志app的日志如何抓取?app本身的日志,可以用logcat抓取,參考這篇:/yoyoketang/pZ9
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026上海浦東發(fā)展銀行股份有限公司數(shù)字平臺部招聘考試備考試題及答案解析
- 2026年度和縣事業(yè)單位公開招聘工作人員56名考試備考題庫及答案解析
- 2026年福建莆田市秀嶼法院合同制編外人員招聘4人考試參考題庫及答案解析
- 2025年沙洋人民醫(yī)院事業(yè)編考試及答案
- 2026浙江溫州市中國聯(lián)通蒼南縣分公司招聘筆試模擬試題及答案解析
- 2025年第一次月考模擬筆試及答案
- 2025年會務接待筆試題目和答案
- 2025年安徽小學特崗體育筆試及答案
- 2025年統(tǒng)計學專業(yè)事業(yè)單位考試及答案
- 2026年房縣風雅演藝有限公司面向社會公開招聘工作36人考試參考題庫及答案解析
- 2026四川成都市金牛區(qū)城市管理局招聘編外聘用工作人員2人參考題庫必考題
- 輸血科質(zhì)控 年度總結(jié)匯報
- 2026年浙江高考語文考試真題
- 2025年貴州省公務員錄用考試《公安專業(yè)科目》真題
- 高壓注漿加固施工方案
- 道路運輸安全重大風險辨識分級管控清單
- 滲透現(xiàn)象課件
- 2025年國家電網(wǎng)內(nèi)蒙古東部電力高校畢業(yè)生招聘約226人(第二批)筆試參考題庫附帶答案詳解(3卷合一版)
- 收藏 各行業(yè)標準及其歸口的行業(yè)部門
- 基因組病相關(guān)妊娠并發(fā)癥的監(jiān)測方案
- MDT指導下IBD生物制劑的個體化給藥方案
評論
0/150
提交評論