本次測試的是基于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的基本操作后,也可以很快進行接口測試實踐。
如有錯誤,歡迎指出!
作者:wintest
簡書:http://www.lxweimin.com/u/9bf1825a10bb
博客園:https://www.cnblogs.com/wintest
文章為本人原創,歡迎轉載,但必須在文章頁面明顯位置給出原文鏈接,并保留此段聲明,否則保留追究法律責任的權利。