作為初學者,記錄下用jmeter實現抽獎項目的過程。項目網址http://doc.nnzhp.cn/index.php?s=/5&page_id=19。
設置如下:
1、注冊接口
創建線程組,線程組下添加http請求和結果樹,根據接口文檔填寫后,發送。
請求的結果,因為該賬號已經存在,所以提示“用戶已經存在”。如果時注冊的新賬號,會提示注冊成功。(ps:用戶名、密碼都有格式限制,如果注冊的格式不正確,會返回不同的提示)
2、登錄
用前面注冊的賬號,登錄
結果
3、添加獎品
這里涉及上圖片上傳,可以百度學習下。運行結果,不是管理員賬號密碼。
是管理員的賬號則顯示成功【管理員賬號從另一篇接口文檔獲知】
后續重復調用該接口時發現,管理員賬號的sign出現變化,導致添加不了,故優化該處腳本。
4、抽獎接口
抽獎接口的參數,可以看到是登錄以后才可以抽獎,因此在線程組下,添加一個http的登錄請求,在登錄請求下添加兩個正則表達式分別提取userid、sign,添加調試取樣器查看提取的數值(這個非常有用)。添加http抽獎請求,添加結果樹
在用正則表達式的時候,形成了一個定向思維,提取值一般都用(.+?)或者(.*?),但是用了以后發現抽獎結果中會一直提示該賬號不存在。就想到提取的時候應該出錯了,添加了調試取樣器查看。
發現userid的取值是4.而正確取值應該是47194,靈光一閃想到 ?表示:不要太貪婪,在找到第一個匹配項后停止匹配。而該 "userId": 47194右邊界是為空的。所以添加?后,提取到第一個值4以后,就停止匹配了。后把正則表達式修改為(.+),結果就正確了。
在查看結果
5、查看中獎記錄
同上條一樣,也需登錄。且參數也一致,所以從上條將登錄復制過來就行
查看結果
6、獲取所有獎品信息
查看結果
腳本優化:
配置元件-http請求默認值。
上述腳本中,請求的協議和服務器都是一樣的。將所有http請求中相同的部分提取出來,填入http請求默認值中。
實現簡化腳本,簡化工作量的目標。