最近遇到了一個需求,需要對一個識別圖片的服務進行準確度測試,本來打想用python實現進行批量測試的。但由於還需要進行壓測,所以打算一起用Jmeter實現了。在這裏簡單記錄下jmeter實現思路。
首先簡單化下測試對象的條件
request需要以form-data攜帶參數與圖片
response返回對圖片識別的目標,有多個時返回多個,目標種類可不同;
未識別出任何目標或無目標時,返回[]
測試策略爲,對ABCD四種情況分別建立不同的Thread Group,每個Thread Group實現一個http請求圖像智能識別服務,每個Thread Group建立一個Random Variable以實現隨機抽取圖庫圖片進行驗證(要求線程獨立),通過BeanShell PreProcessor將隨機圖片的序號轉換成文件存儲路徑並存放到四個全局變量中,並在HTTP Request中引用它。並增加BeanShell PreProcessor Assertion對請求結果進行斷言驗證。並記錄對應執行日誌信息。
首先創建測試計劃
並建立四個全局變量(可以不設置默認值)
這裏有一個前置線程組需要進行獲取祕鑰,以及一些加密工作的,不是本次介紹重點,就暫時不涉及了,主要是思路。
設置HTTP Request,將form-data格式的參數分成Parameters與Files Upload兩類,注意勾選Use multipart/form-data
add->config ELement->Random Variable,增加一個隨機變量元件,用來隨機抽查圖庫中的照片
add->Pre Processor->BeanShell PreProcessor,增加一個BeanShell的前置處理元件,將隨機變量randInt轉換成圖片路徑並存儲到全局變量中
add->Assertions->Bean Shell Assertion,增加一個斷言元件,通過腳本對http response解析從而判斷是否正確識別圖庫中的圖片
這裏需要我們預先將圖庫分類好,也就是準備圖片數據,再對圖庫進行隨機抽取