免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
如何做好接口測試?發(fā)布時(shí)間: 2012-1-19 10:44 作者: 小刀 來源: 51Testing軟件測試論壇 字體: 小 中 大 | 上一篇 下一篇 | 打印 | 我要投稿 | 推薦標(biāo)簽: 軟件測試 接口測試 sgbtmy:基于selenium的自動(dòng)化框架開發(fā),我主要是想問一下,你的框架除了前臺的自動(dòng)化,后臺的數(shù)據(jù)的測試是否集成在你的測試框架中?小刀:你好,個(gè)人理解的你所說的后臺的數(shù)據(jù)的測試是指的是對數(shù)據(jù)的校驗(yàn),不知理解的是否正確,那么根據(jù)這個(gè)理解,我的解釋是,在我們框架中,增加了很多的功能方法用來幫助進(jìn)行自動(dòng)化腳本的編寫和結(jié)果校驗(yàn),其中就包括后臺數(shù)據(jù)校驗(yàn)方法,當(dāng)我們的測試用例需要在后臺進(jìn)行數(shù)據(jù)校驗(yàn)的時(shí)候,調(diào)用這些數(shù)據(jù)校驗(yàn)方法即可。相當(dāng)于是,前臺頁面操作的自動(dòng)化是封裝selenium的方法去操作頁面,而對后臺數(shù)據(jù)的校驗(yàn)是通過增加功能方法來實(shí)現(xiàn)的,可以理解為不同的兩部分,但是在編寫測試腳本的似乎,根據(jù)測試用例的設(shè)計(jì),這兩部分都可以拿過來使用。不知道是否解答了你的疑問,如果沒有,請你指出,謝謝你。tjy688:你們做接口測試的流程一般是怎么樣的?小刀:接口測試的流程其實(shí)和功能測試的流程類似,因?yàn)榻涌跍y試依賴的主要對象也是需求說明書,所以,最初的流程就是參與需求討論,評審需求。需求確定以后,開發(fā)會根據(jù)需求進(jìn)行接口設(shè)計(jì),會產(chǎn)出接口定義,在開發(fā)設(shè)計(jì)過程中,有能力的話,可以給出一些針對設(shè)計(jì)的建議,提高可測性,針對需求及設(shè)計(jì),進(jìn)行測試計(jì)劃,測試設(shè)計(jì),然后還需要和配管確定測試環(huán)境相關(guān)的事情。在開發(fā)完成接口定義之后,就根據(jù)需求文檔及接口定義進(jìn)行測試用例設(shè)計(jì),測試用例設(shè)計(jì)主要從業(yè)務(wù)場景,功能,以及異常測試幾個(gè)方面考慮。測試用例設(shè)計(jì)完成后,針對測試用例進(jìn)行評審,然后,如果開發(fā)代碼部分可測時(shí),即可進(jìn)入測試了,因?yàn)槭遣糠挚蓽y,可能會使用到mock方法。已有測試代碼時(shí),就要進(jìn)行測試代碼的持續(xù)集成了,我們是使用hudson來進(jìn)行持續(xù)集成的在項(xiàng)目結(jié)束后,會對每個(gè)項(xiàng)目進(jìn)行總結(jié)。如果有問題,請指出,我們一起討論。xinhuayw:我想了解一下你們現(xiàn)在是怎樣保證項(xiàng)目測試用例的重復(fù)運(yùn)行的。小刀:對于接口測試來說,項(xiàng)目測試用例的重復(fù)運(yùn)行首先是表現(xiàn)在單個(gè)測試用例的獨(dú)立性方面的,也就是說,每一個(gè)測試用例的運(yùn)行除了依賴被測對象和對應(yīng)的數(shù)據(jù)庫環(huán)境外,是不依賴于其他任何測試用例的,并且這個(gè)測試用例執(zhí)行完畢后,對系統(tǒng)來說,也是沒有任何痕跡的,這樣就保證了每個(gè)測試用例運(yùn)行時(shí),都在一個(gè)干凈的環(huán)境中運(yùn)行。要實(shí)現(xiàn)測試用例的獨(dú)立性,就必須對被測系統(tǒng)的設(shè)計(jì)有詳細(xì)的了解,這樣,不會出現(xiàn)測試用例執(zhí)行后遺漏數(shù)據(jù),環(huán)境未改變,另外,還需要對測試用例進(jìn)行詳細(xì)的設(shè)計(jì)。另外,要保證測試用例的重復(fù)使用,還需要做到測試用例的及時(shí)更新,在這個(gè)方面,我們是做接口測試的人會維護(hù)對應(yīng)的系統(tǒng)的接口測試用例,要保證,代碼每次更新,測試用例都必須全部執(zhí)行通過。csun888:什么是接口測試,基礎(chǔ)知識什么的講講吧!小刀:你好,接口可以分下面幾種1、系統(tǒng)與系統(tǒng)之間的調(diào)用,比如銀行會提供接口供電子商務(wù)網(wǎng)站調(diào)用,或者說,支付寶會提供接口給淘寶調(diào)用2、上層服務(wù)對下層服務(wù)的調(diào)用,比如service層會調(diào)用DAO層的接口,而應(yīng)用層又會調(diào)用服務(wù)層提供的接口,一般會通過3、服務(wù)之間的調(diào)用,比如注冊用戶時(shí),會先調(diào)用用戶查詢的服務(wù),查看該用戶是否已經(jīng)注冊。而我們所要做的接口測試,先要了解是基于哪一種類型的接口測試,不同類型的接口測試方法可能是不一致的,總體來說,不管是那種類型,我們只要把被測接口當(dāng)做是服務(wù)方,而把我們的測試手段當(dāng)做是客戶方,我們的目的就是,通過我們的測試手段,去驗(yàn)證服務(wù)端滿足了他聲明提供的功能。至于說到具體的測試方法,http協(xié)議的接口測試,一般會用jmeter去測試,jmeter的好處是不用寫測試代碼,直接使用jmeter提供的http請求去測試,也可以使用HTTPClient去測試,好處是可以方便集成和自動(dòng)化。java接口的測試,則需要編寫測試代碼去測試,有點(diǎn)類似于單元測試,但是需要更多的考慮業(yè)務(wù)場景。gulun:接口測試的數(shù)據(jù)準(zhǔn)備,應(yīng)該怎么做呢?小刀:接口測試的數(shù)據(jù)準(zhǔn)備,可以從下面幾個(gè)方面去考慮:1、如果是只測試一次的接口,可以使用硬編碼的方式準(zhǔn)備測試數(shù)據(jù),在寫測試代碼的時(shí)候,使用到什么數(shù)據(jù)就寫什么數(shù)據(jù),為了避免數(shù)據(jù)重復(fù),可能比較多的會用到隨機(jī)字符或隨機(jī)數(shù)2、可以直接通過調(diào)用其他API的方式準(zhǔn)備測試數(shù)據(jù),這種情況在測試最上層服務(wù)的時(shí)候比較有用,比如測試團(tuán)購購買服務(wù),就需要準(zhǔn)備要購買的團(tuán)購數(shù)據(jù),購買團(tuán)購的用戶數(shù)據(jù),這個(gè)時(shí)候,可以直接調(diào)用生產(chǎn)團(tuán)購的api和生成用戶的api直接生成測試數(shù)據(jù)3、使用excel或xml準(zhǔn)備測試數(shù)據(jù),這種準(zhǔn)備測試數(shù)據(jù)的方式,主要針對對象數(shù)據(jù)的準(zhǔn)備,比如可以將一條團(tuán)購數(shù)據(jù)對應(yīng)excel中的一條數(shù)據(jù),因?yàn)橐话汩_發(fā)都會使用pojo映射,而在準(zhǔn)備測試數(shù)據(jù)的時(shí)候,這些pojo對象屬性的設(shè)置往往是重復(fù)和大工作量的,用excel或XML方式準(zhǔn)備,則可以減少在代碼當(dāng)中重復(fù)去準(zhǔn)備這些數(shù)據(jù)。4、也可以使用工具方法的形式去準(zhǔn)備測試數(shù)據(jù),通過在代碼中寫工具方法去實(shí)現(xiàn)數(shù)據(jù)生成,而在測試代碼中調(diào)用工具方法去得到所需數(shù)據(jù)。水生哥哥:你好,我想問一下:接口測試怎么設(shè)計(jì)測試用例呢?小刀:你好,我覺得接口測試用例的設(shè)計(jì)方法其實(shí)和功能測試用例的設(shè)計(jì)方法是類似的,因?yàn)榻涌谑切枰獫M足需求的,而接口測試所依賴的也是需求說明書,但是,因?yàn)榻涌跍y試畢竟是通過代碼去測試代碼,所以,為了保證覆蓋率,可能會使用到單元測試的方法,具體的測試用例設(shè)計(jì),我考慮的如下,請參考,如果有錯(cuò)誤,一起討論。輸入?yún)?shù)測試:針對輸入的參數(shù)進(jìn)行測試,也可以說是假定接口參數(shù)的不正確性進(jìn)行的測試,確保接口對任意類型的輸入都做了相應(yīng)的處理:輸入?yún)?shù)合法,輸入?yún)?shù)不合法,輸入?yún)?shù)為空,輸入?yún)?shù)為null,輸入?yún)?shù)超長;功能測試:接口是否滿足了所提供的功能,相當(dāng)于是正常情況測試,如果一個(gè)接口功能復(fù)雜時(shí)推薦對接口用例進(jìn)行結(jié)構(gòu)劃分,這樣子用例具有更好的可讀性和維護(hù)性。邏輯測試:邏輯測試嚴(yán)格講應(yīng)為單元測試,單元測試應(yīng)保持內(nèi)部邏輯的正確性,可單元測試和接口測試界限并不是那么清楚,所以我們也可以從給出的設(shè)計(jì)文檔中考慮內(nèi)部邏輯錯(cuò)誤的分支情況和異常;異常情況測試:接口實(shí)現(xiàn)是否對異常情況都進(jìn)行了處理,接口輸入?yún)?shù)雖然合法,但是在接口實(shí)現(xiàn)中,也會出現(xiàn)異常,因?yàn)閮?nèi)部的異常不一定是輸入的數(shù)據(jù)造成的,而有可能是其他邏輯造成的,程序需要對任何的異常都進(jìn)行處理。永遠(yuǎn)的測試者:才開始測試,對接口測試感興趣,可是,當(dāng)前的能力又無法進(jìn)行接口測試,怎么樣才能進(jìn)入接口測試呢?小刀:你好,如果要做接口測試,是需要一定的編程能力的,需要學(xué)習(xí)相對應(yīng)的開發(fā)語言的,然后還需要學(xué)習(xí)開發(fā)所使用的一些框架,比如ibatis,spring等,對數(shù)據(jù)庫的操作也需要了解一些,還有eclipse操作,這些內(nèi)容并不需要了解的多么深入,如果只是一般的做做接口測試,這些能夠使用就可以了,當(dāng)然,要做好接口測試,就另當(dāng)別論了。我不知道你當(dāng)前是什么樣的能力,所以,我的建議就是,1、學(xué)習(xí)編程語言,基礎(chǔ)的語法,循環(huán),條件等2、學(xué)習(xí)項(xiàng)目工程管理及開發(fā)框架:eclipse,maven,svn,ibatis,spring等3、學(xué)習(xí)Xunit4、自己嘗試去寫測試代碼其實(shí),上面的過程除了第一步是必須具備的意外,其他的都可以一邊寫測試代碼,一邊學(xué)習(xí),最好的辦法就是看開發(fā)寫的代碼,并且,請開發(fā)寫一個(gè)正常的測試代碼,然后照著開發(fā)的測試代碼去模仿。iTest99:你認(rèn)為接口測試由開發(fā)團(tuán)隊(duì)做好還是測試團(tuán)隊(duì)好?各有什么優(yōu)勢和弱點(diǎn)?小刀:我覺得,還是要區(qū)分一下單元測試和接口測試,單元測試一般來說,是針對具體的代碼邏輯進(jìn)行測試,盡量減少這些功能單元集成起來出錯(cuò)的可能性,一般是由開發(fā)人員來完成,而接口測試,更注重從用戶的角度設(shè)計(jì)用例,更偏向于功能測試,單元測試設(shè)計(jì)測試用例的時(shí)候,可能更多的考慮是代碼覆,而接口測試,則需要更多的考慮業(yè)務(wù)覆蓋。單元測試由開發(fā)人員來做,可以保證從代碼角度來看是沒有問題的,但服務(wù)保證業(yè)務(wù)角度來看也是沒有問題的,而接口測試,則通過業(yè)務(wù)的角度去設(shè)計(jì)測試用例,其實(shí),也可以說是從更早的時(shí)候,以功能測試的方法,先保證項(xiàng)目的流程及功能是正常的,而不至于在頁面開發(fā)完成后,又修改主要功能代碼,導(dǎo)致項(xiàng)目趕工及一系列的重寫。所以,我覺得,單元測試由開發(fā)人員來做,接口測試由測試人員來做。至于你說的學(xué)習(xí)接口的成本,我覺得這個(gè)成本并不高,原因是:1、接口測試的用例也是依賴需求文檔的,并不是根據(jù)開發(fā)代碼去設(shè)計(jì)2、接口測試的用例可以在功能測試中復(fù)用。3、接口測試看似增加測試時(shí)間,實(shí)則不然,因?yàn)?,接口測試會更早的發(fā)現(xiàn)bug,而使得修改bug的成本更低,接口測試會減少功能測試的時(shí)間,應(yīng)該接口測試會確保主要流程功能的正確性,接口測試更容易實(shí)現(xiàn)持續(xù)集成,從而減少回歸測試的次數(shù)。txTester11:我想請問:接口測試盒單元測試有什么區(qū)別?接口測試和白盒測試又有什么區(qū)別?小刀:單元測試是針對具體的代碼邏輯進(jìn)行測試,主要測試被測代碼的一個(gè)很小的、很明確的功能是否正確。通常而言,一個(gè)單元測試是用于判斷某個(gè)特定條件(或者場景)下某個(gè)特定函數(shù)的行為。例如,你可能把一個(gè)很大的值放入一個(gè)有序list 中去,然后確認(rèn)該值出現(xiàn)在list 的尾部?;蛘撸憧赡軙淖址袆h除匹配某種模式的字符,然后確認(rèn)字符串確實(shí)不再包含這些字符了。盡量減少這些功能單元集成起來出錯(cuò)的可能性,單元測試一般
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度餐飲泔水回收與環(huán)保設(shè)施投資合同3篇
- 二零二五年礦山土地及資源使用權(quán)轉(zhuǎn)讓合同3篇
- 二零二五版白糖進(jìn)口許可證申請代理服務(wù)合同下載2篇
- 二零二五年度駕駛員押運(yùn)員安全責(zé)任及培訓(xùn)合同3篇
- 二零二五版企事業(yè)單位節(jié)能環(huán)保辦公電腦采購合同2篇
- 二零二五版電子商務(wù)平臺借款及庫存商品質(zhì)押合同3篇
- 二零二五年紡織原料市場調(diào)研與分析合同2篇
- 小區(qū)下水管網(wǎng)清理疏通承包合同(2篇)
- 二零二五版房產(chǎn)買賣合同含抵押權(quán)轉(zhuǎn)移及貸款利率協(xié)商協(xié)議0183篇
- 2025年度農(nóng)業(yè)科技推廣財(cái)產(chǎn)贈(zèng)與合同3篇
- 部編新改版語文一年級下冊《語文園地四》教學(xué)設(shè)計(jì)
- 2025年北京鐵路局集團(tuán)招聘筆試參考題庫含答案解析
- 《藥品招商營銷概論》課件
- 曙光磁盤陣列DS800-G10售前培訓(xùn)資料V1.0
- 寺廟祈福活動(dòng)方案(共6篇)
- 2025年病案編碼員資格證試題庫(含答案)
- 企業(yè)財(cái)務(wù)三年戰(zhàn)略規(guī)劃
- 2025新譯林版英語七年級下單詞表
- 提高膿毒性休克患者1h集束化措施落實(shí)率
- 山東省濟(jì)南市天橋區(qū)2024-2025學(xué)年八年級數(shù)學(xué)上學(xué)期期中考試試題
- 主播mcn合同模板
評論
0/150
提交評論