利用Jmeter做介面測試怎麼做呢?過程真的是超級簡單。

明白了原理以後,把零碎的知識點填充進去就可以了。所以在學習的過程中,不管學什麼,我一直都強調的是要循序漸進,和明白原理和邏輯。這篇文章就來介紹一下如何利用Jmeter做介面測試的流程,主要針對的是功能測試。暫不涉及到自動化測試和效能測試的內容。

一把來說,主要的步驟都大差不差。

第一步:透過分析API文件和需求文件提取介面清單

也就是說,介面測試工作人員工作的開始就是從API文件和需求文件開始的。所以進入公司的第一件事情就是要拿到API文件和需求文件來了解,來看,來分析。從其中提取介面清單的話,主要是因為API文件中有很多冗餘,不必要的資訊。這些資訊可能對於開發人員是有用的,但是對於我們測試人員是沒有用的,所以要去除冗餘,提取關鍵資訊。

那麼怎麼提取呢?方法也很簡單,從功能模組和方法模組對API文件中的內容進行提煉,提煉的關鍵是介面三要素:url+方法+引數+返回值。我的建議是可以先將所有的url提取出來,基本上一個url就是對應一個介面的,這樣一條線把整體拎起來,就感覺混亂的局面清晰多了。

當然工作中,有的時候我們是可以直接拿到介面清單的,因為清單這個事情一個團隊做一份就好了,並不是說要每個人都做一份。但是我們自己得會,得有這個能力。之前看到過一個面試題,問的是,如果沒有API文件,怎麼做介面測試?

其實問的就是如果沒有API文件,應該怎麼提取介面清單的問題。很簡單,根據需求文件和原型圖來提取。有的公司不正規,確實是沒有API文件的。或者有的公司API文件寫的不規範,那提取的時候,就很考驗測試人員的經驗和能力了。所以如果能找到遵循restful風格寫的優秀API文件,那就好了,提取的時候很方便。

第二步:針對介面清單,做單介面測試和關聯介面測試。

在實際測試過程中,單介面測試和關聯介面測試的時間是不一樣的,這涉及到業務邏輯測試和功能點測試等。但是在測試的時候,他們的邏輯和方法是類似的。

當然這裡主要介紹的是單介面測試,因為單介面測試時會考慮各種可能的情況,而關聯介面測試一般是建立在單介面沒有問題的前提下的。換個角度來說,就相當於是兩個層次,單介面測試是基礎,而關聯介面測試是拔高。

那麼具體應該怎麼做呢?比如我們這裡已經選定而來某一個介面來測試。

首先,根據選定的介面來搭建測試框架

介面不是什麼大不了的事情,無非就是url、方法、引數、返回資料這四塊。這樣就意味著,一個介面的框架是固定的,只不過每次傳輸的資料和返回的資料可能會不一樣而已。所以我們要做的第一步就是搭建測試框架。

那麼怎麼搭建呢?這裡就要用到從API文件中整理出來的介面清單和Jmeter了。從介面清單裡,可以拿到當下介面的url+方法+引數+預期返回資料。這就是我們搭建測試框架的依據。接下來用Jmeter搭建。

首先需要開啟Jmeter,然後基於測試計劃,建立執行緒組,基於執行緒組建立HTTP請求。考慮到單介面測試,一個框架,要測試N多個數據,而且後面的介面可能也要用到同樣的ip地址、同樣的content-type,所以一般會先建立一個HTTP請求預設值,將一些可能會重複用到的資訊填進去,比如說埠號、協議之類的。如有必要還需要新增HTTP資訊頭管理器,放一些user-agent、content-type等內容。

好的,有了這兩個基礎就可以來建立HTTP請求。在新的請求裡,已經填寫的埠號呀、ip地址呀之類的就無需填寫了,只需要填寫方法之類的即可。那麼搭建框架在哪裡搭建呢?一般會考慮para或者body裡。比如說,要提交一段json格式的資料,那麼就要用body(訊息體)來提交,如下圖所示。

利用Jmeter做介面測試(功能測試)全流程分析

將從介面清單裡拿到的json資料填寫到訊息體資料裡,然後將需要不斷傳入的資料進行引數化設定,那搭建測試框架就算是完成了。接下來只需要把資料一條一條傳入進行測試即可。

那麼如何把資料進行傳入呢?

其實我們在下面的這篇文章裡已經介紹了,傳入資料的方法有四種,但主要使用的還是csv data set config 和函式。做功能介面測試,用csv就足夠了。那麼具體怎麼用呢?

基於當前的執行緒組或者請求建立CSV資料檔案配置元件。如果這份資料只有這一個請求會用,那麼就基於請求建立即可。如果這份資料會被這個執行緒組裡的多個請求使用,那麼就基於執行緒組建立。

建立了以後就需要填入檔案了呢?可是檔案在哪裡呢?這個時候就要稍微停一下jmeter的操作,先去針對當前介面設計測試用例並形成有關文件了。有關於功能介面測試的用例設計,我們之後會專門用一篇文章來介紹,這裡先帶過。這是因為設計測試用例是做測試過程中最核心的一步。

在測試用例設計完之後,可以將其儲存在一個txt文件裡,採用utf-8編碼,儲存到Jmeter指令碼的同一父目錄下。然後按照上面那篇文章裡的設定方法進行設定即可,注意路徑可以採用相對路徑,便於資料檔案的複製和使用。

csv元件設定好以後,資料來源有了,變數名有了,變數名的賦值也有了,接下來就只剩引用引數就可以了。在測試框架裡需要引用引數的地方引用,引用的格式是${引數名}。到這裡,針對於某一個介面的測試工作就準備完成了。

然後在Jmeter裡面新增檢視結果樹元件,執行請求,依次檢視結果

。看一看返回的資料和我們的預期結果是否一致,不一致,那可能就是一個bug。

做一個小小的總結吧,用jmeter做功能介面測試,其實很簡單的。邏輯和原理都是類似的,如果遇到新的專案,可能說會用一些新的元件而已,那百度一下幾分鐘的事情。在學習軟體測試的時候,最重要的就是不要慫,不要看起來說怎麼要學的東子這麼雜這麼多,只要能夠拎出其中的線索和主幹,然後把一些零碎的點給組裝上去,就會感覺,哇,忽然之間,好有條理。