如何作好接口測試?【轉載】

sgbtmy:基於selenium的自動化框架開發,我主要是想問一下,你的框架除了前臺的自動化,後臺的數據的測試是否集成在你的測試框架中?html

  小刀:你好,我的理解的你所說的後臺的數據的測試是指的是對數據的校驗,不知理解的是否正確,那麼根據這個理解,個人解釋是,在咱們框架中,增長了不少的功能方法用來幫助進行自動化腳本的編寫和結果校驗,其中就包括後臺數據校驗方法,當咱們的測試用例須要在後臺進行數據校驗的時候,調用這些數據校驗方法便可。至關因而,前臺頁面操做的自動化是封裝selenium的方法去操做頁面,而對後臺數據的校驗是經過增長功能方法來實現的,能夠理解爲不一樣的兩部分,可是在編寫測試腳本的彷佛,根據測試用例的設計,這兩部分均可以拿過來使用。java

  不知道是否解答了你的疑問,若是沒有,請你指出,謝謝你。spring

tjy688:大家作接口測試的流程通常是怎麼樣的?數據庫

  小刀:接口測試的流程其實和功能測試的流程相似,由於接口測試依賴的主要對象也是需求說明書,因此,最初的流程就是參與需求討論,評審需求。編程

  需求肯定之後,開發會根據需求進行接口設計,會產出接口定義,在開發設計過程當中,有能力的話,能夠給出一些針對設計的建議,提升可測性,針對需求及設計,進行測試計劃,測試設計,而後還須要和配管肯定測試環境相關的事情。api

  在開發完成接口定義以後,就根據需求文檔及接口定義進行測試用例設計,測試用例設計主要從業務場景,功能,以及異常測試幾個方面考慮。框架

  測試用例設計完成後,針對測試用例進行評審,而後,若是開發代碼部分可測時,便可進入測試了,由於是部分可測,可能會使用到mock方法。eclipse

  已有測試代碼時,就要進行測試代碼的持續集成了,咱們是使用hudson來進行持續集成的maven

  在項目結束後,會對每一個項目進行總結。編程語言

  若是有問題,請指出,咱們一塊兒討論。

xinhuayw:我想了解一下大家如今是怎樣保證項目測試用例的重複運行的。

  小刀:對於接口測試來講,項目測試用例的重複運行首先是表如今單個測試用例的獨立性方面的,也就是說,每個測試用例的運行除了依賴被測對象和對應的數據庫環境外,是不依賴於其餘任何測試用例的,而且這個測試用例執行完畢後,對系統來講,也是沒有任何痕跡的,這樣就保證了每一個測試用例運行時,都在一個乾淨的環境中運行。要實現測試用例的獨立性,就必須對被測系統的設計有詳細的瞭解,這樣,不會出現測試用例執行後遺漏數據,環境未改變,另外,還須要對測試用例進行詳細的設計。另外,要保證測試用例的重複使用,還須要作到測試用例的及時更新,在這個方面,咱們是作接口測試的人會維護對應的系統的接口測試用例,要保證,代碼每次更新,測試用例都必須所有執行經過。

csun888:什麼是接口測試,基礎知識什麼的講講吧!

  小刀:你好,接口能夠分下面幾種

  一、系統與系統之間的調用,好比銀行會提供接口供電子商務網站調用,或者說,支付寶會提供接口給淘寶調用

  二、上層服務對下層服務的調用,好比service層會調用DAO層的接口,而應用層又會調用服務層提供的接口,通常會經過

  三、服務之間的調用,好比註冊用戶時,會先調用用戶查詢的服務,查看該用戶是否已經註冊。

  而咱們所要作的接口測試,先要了解是基於哪種類型的接口測試,不一樣類型的接口測試方法多是不一致的,整體來講,無論是那種類型,咱們只要把被測接口當作是服務方,而把咱們的測試手段當作是客戶方,咱們的目的就是,經過咱們的測試手段,去驗證服務端知足了他聲明提供的功能。

  至於說到具體的測試方法,http協議的接口測試,通常會用jmeter去測試,jmeter的好處是不用寫測試代碼,直接使用jmeter提供的http請求去測試,也可使用HTTPClient去測試,好處是能夠方便集成和自動化。java接口的測試,則須要編寫測試代碼去測試,有點相似於單元測試,可是須要更多的考慮業務場景。

gulun:接口測試的數據準備,應該怎麼作呢?

  小刀:接口測試的數據準備,能夠從下面幾個方面去考慮:

  一、若是是隻測試一次的接口,可使用硬編碼的方式準備測試數據,在寫測試代碼的時候,使用到什麼數據就寫什麼數據,爲了不數據重複,可能比較多的會用到隨機字符或隨機數

  二、能夠直接經過調用其餘API的方式準備測試數據,這種狀況在測試最上層服務的時候比較有用,好比測試團購購買服務,就須要準備要購買的團購數據,購買團購的用戶數據,這個時候,能夠直接調用生產團購的api和生成用戶的api直接生成測試數據

三、使用excel或xml準備測試數據,這種準備測試數據的方式,主要針對對象數據的準備,好比能夠將一條團購數據對應excel中的一條數據,由於通常開發都會使用pojo映射,而在準備測試數據的時候,這些pojo對象屬性的設置每每是重複和大工做量的,用excel或XML方式準備,則能夠減小在代碼當中重複去準備這些數據。

  四、也可使用工具方法的形式去準備測試數據,經過在代碼中寫工具方法去實現數據生成,而在測試代碼中調用工具方法去獲得所需數據。

水生哥哥:你好,我想問一下:接口測試怎麼設計測試用例呢?

  小刀:你好,我以爲接口測試用例的設計方法其實和功能測試用例的設計方法是相似的,由於接口是須要知足需求的,而接口測試所依賴的也是需求說明書,可是,由於接口測試畢竟是經過代碼去測試代碼,因此,爲了保證覆蓋率,可能會使用到單元測試的方法,具體的測試用例設計,我考慮的以下,請參考,若是有錯誤,一塊兒討論。

  輸入參數測試:針對輸入的參數進行測試,也能夠說是假定接口參數的不正確性進行的測試,確保接口對任意類型的輸入都作了相應的處理:輸入參數合法,輸入參數不合法,輸入參數爲空,輸入參數爲null,輸入參數超長;

  功能測試:接口是否知足了所提供的功能,至關因而正常狀況測試,若是一個接口功能複雜時推薦對接口用例進行結構劃分,這樣子用例具備更好的可讀性和維護性。

  邏輯測試:邏輯測試嚴格講應爲單元測試,單元測試應保持內部邏輯的正確性,可單元測試和接口測試界限並非那麼清楚,因此咱們也能夠從給出的設計文檔中考慮內部邏輯錯誤的分支狀況和異常;

  異常狀況測試:接口實現是否對異常狀況都進行了處理,接口輸入參數雖然合法,可是在接口實現中,也會出現異常,由於內部的異常不必定是輸入的數據形成的,而有多是其餘邏輯形成的,程序須要對任何的異常都進行處理。

永遠的測試者:纔開始測試,對接口測試感興趣,但是,當前的能力又沒法進行接口測試,怎麼樣才能進入接口測試呢?

  小刀:你好,若是要作接口測試,是須要必定的編程能力的,須要學習相對應的開發語言的,而後還須要學習開發所使用的一些框架,好比ibatis,spring等,對數據庫的操做也須要了解一些,還有eclipse操做,這些內容並不須要瞭解的多麼深刻,若是隻是通常的作作接口測試,這些可以使用就能夠了,固然,要作好接口測試,就另當別論了。

  我不知道你當前是什麼樣的能力,因此,個人建議就是,

  一、學習編程語言,基礎的語法,循環,條件等

  二、學習項目工程管理及開發框架:eclipse,maven,svn,ibatis,spring等

  三、學習Xunit

  四、本身嘗試去寫測試代碼

  其實,上面的過程除了第一步是必須具有的意外,其餘的均可以一邊寫測試代碼,一邊學習,最好的辦法就是看開發寫的代碼,而且,請開發寫一個正常的測試代碼,而後照着開發的測試代碼去模仿。

iTest99:你認爲接口測試由開發團隊作好仍是測試團隊好?各有什麼優點和弱點?

  小刀:我以爲,仍是要區分一下單元測試和接口測試,單元測試通常來講,是針對具體的代碼邏輯進行測試,儘可能減小這些功能單元集成起來出錯的可能性,通常是由開發人員來完成,而接口測試,更注重從用戶的角度設計用例,更偏向於功能測試,單元測試設計測試用例的時候,可能更多的考慮是代碼覆,而接口測試,則須要更多的考慮業務覆蓋。單元測試由開發人員來作,能夠保證從代碼角度來看是沒有問題的,但服務保證業務角度來看也是沒有問題的,而接口測試,則經過業務的角度去設計測試用例,其實,也能夠說是從更早的時候,以功能測試的方法,先保證項目的流程及功能是正常的,而不至於在頁面開發完成後,又修改主要功能代碼,致使項目趕工及一系列的重寫。

  因此,我以爲,單元測試由開發人員來作,接口測試由測試人員來作。

  至於你說的學習接口的成本,我以爲這個成本並不高,緣由是:

  一、接口測試的用例也是依賴需求文檔的,並非根據開發代碼去設計

  二、接口測試的用例能夠在功能測試中複用。

  三、接口測試看似增長測試時間,實則否則,由於,接口測試會更早的發現bug,而使得修改bug的成本更低,接口測試會減小功能測試的時間,應該接口測試會確保主要流程功能的正確性,接口測試更容易實現持續集成,從而減小回歸測試的次數。

txTester11:我想請問:接口測試盒單元測試有什麼區別?接口測試和白盒測試又有什麼區別?

  小刀:單元測試是針對具體的代碼邏輯進行測試,主要測試被測代碼的一個很小的、很明確的功能是否正確。一般而言,一個單元測試是用於判斷某個特定條件(或者場景)下某個特定函數的行爲。例如,你可能把一個很大的值放入一個有序list 中去,而後確認該值出如今list 的尾部。或者,你可能會從字符串中刪除匹配某種模式的字符,而後確認字符串確實再也不包含這些字符了。儘可能減小這些功能單元集成起來出錯的可能性,單元測試通常是由開發人員本身去完成,單元測試可能不會考慮業務是如何的,會更多的考慮,我這個單元模塊邏輯是否正確。

  接口測試指的是針對程序內部的或者外部的接口進行的測試,一個接口方法可能會包含多個單元模塊,並且,一個接口會有本身特定的業務定義,因此,作接口測試的時候,更多的須要從業務的角度去考慮如何測試這個接口。

  無論是接口測試仍是單元測試,其實都屬於白盒測試的一個階段,白盒測試具體的方法有不少種,好比代碼審查,好比代碼覆蓋。

 

轉自:http://haoshenqi.blogchina.com/1522989.html

相關文章
相關標籤/搜索