Jmeter介面測試例項-牛刀小試
本次測試的是基於HTTP協議的介面,主要是通過Jmeter來完成介面測試,藉此熟悉Jmeter的基本操作。
本次實戰,我是從網上找的介面測試專案,該專案提供了詳細的介面文件,我們可以通過學習介面文件來設計測試用例,最後再使用Jmeter進行實戰。總的來說,這個專案很適合用來練手,專案網址:http://doc.nnzhp.cn/index.php?s=/6&page_id=8
所有設定如下:
1.獲取學生資訊(GET請求)
從介面文件中,我們可以看到獲取學生資訊用到的是GET方式的請求,入參中 stu_name 為必填項,返回引數太多,在此就不詳細說明了。我們先建立一個執行緒組,線上程組下新增一個HTTP請求和察看結果樹,如下:
上面的是請求正確的結果,如果請求錯誤,比如填寫一個系統資料庫中 stu_name 沒有的值,那麼返回結果如下:
2.登入(POST)
在登入介面中,介面文件中提供了一個測試使用者,我們可以利用該使用者來模擬測試。
登入介面用到的是POST請求方式,入參 username 和 passwd 為必填項,我們再建立1個執行緒組,線上程組下新增一個HTTP請求和察看結果樹,如下:
當我們填寫的是錯誤的入參時,返回結果如下:
3.新增學生資訊(POST請求,JSON型別)
在新增學生資訊的介面中,用到的也是POST請求方式,但與登入介面不同的是,它的入參是JSON型別的,介面文件中有1個JSON請求示例,我們可以直接複製過來,簡單修改一下即可。在這裡,我們再建立1個執行緒組,線上程組下新增一個HTTP請求和察看結果樹,如下:
在這裡,由於這個學生資訊已存在系統中了,因此返回新增失敗的結果。所以,我需要新增1個新的學生資訊,另外,這裡需要調整下編碼格式為utf-8,否則新增的學生資訊會出現中文亂碼。
在這裡,大家可以設計不同的測試用例來進行測試,但操作方式都是一樣的,只是返回結果不同而已。
4.學生充值金幣(POST請求,新增cookie)
這個介面有許可權驗證,需要admin使用者登入成功後才可以進行充值,另外,在入參 stu_id 和 gold 中,我們發現 stu_id 指的是學生ID,這裡其實就是最開始 獲取學生資訊 介面返回結果中的id欄位,如下:
因此,我們建立一個執行緒組,線上程組下依次新增登入請求、學生充值金幣請求、察看結果樹,在登入請求下新增JSON提取器,用於提取cookie,在學生充值金幣請求下新增HTTP Cookie管理器,如下:
在JSON提取器中,我們通過 $.login_info.sign 來提取登入的cookie,並在HTTP Cookie管理器中進行引用,如果沒有關聯cookie,那麼將充值失敗,提示未登入。
5.獲取所有學生資訊(GET請求,新增header)
從介面文件中,我們瞭解到,要獲取所有學生資訊,需要新增請求資訊頭,因此,我們建立一個執行緒組,線上程組下依次新增HTTP資訊頭管理器、HTTP請求、察看結果樹,如下:
這裡需要說一下,我們在返回的結果中看到,有些學生資訊中有很多“???”,這是因為在新增學生資訊的時候,我們傳入中文資料導致亂碼,因此在新增學生資訊介面中,我特意說明讓大家設定utf-8編碼,這樣新增的學生資訊就不會出現亂碼了。
6.檔案上傳(POST請求)
在上傳檔案介面中,需要注意的是這裡的入參是file型別的,因此,我們需要準備一個待上傳的檔案。
最後,我們建立一個執行緒組,線上程組下依次新增檔案上傳請求、察看結果樹,如下:
OK,以上就是通過Jmeter對這個介面專案進行介面測試的過程,比較基礎,適合新手用來練習操作Jmeter,另外,我發現還有另外一個介面專案:抽獎專案api(http://doc.nnzhp.cn/index.php?s=/5&page_id=7),感覺和本次測試專案差不多,大家有興趣的可以嘗試下,後續有時間的話,將考慮通過Python對本專案進行介面測試。
最後,通過本專案,可以看到,Jmeter上手起來挺快的,即使不懂程式碼的同學學會Jmeter的基本操作後,也可以很快進行介面測試實踐。