1康聂、打開jmeter,添加線程組
2胞四、測試計劃下添加http代理服務(wù)器
目標控制器選擇:測試計劃->線程組恬汁,因為我們是錄制到線程組中,所以選擇測試計劃->線程組
設(shè)置瀏覽器代理辜伟,以谷歌瀏覽器為例氓侧。打開瀏覽器->設(shè)置->高級,往下翻到系統(tǒng)导狡,點擊打開代理設(shè)置
出現(xiàn)internet屬性窗口甘苍,點擊局域網(wǎng)設(shè)置。
設(shè)置如下圖:端口要保持一致
設(shè)置完成之后烘豌,點擊啟動按鈕载庭,jmeter將會記錄我們在谷歌瀏覽器中所有的操作(類似抓包)。注意:操作完瀏覽器后,要及時關(guān)閉錄制囚聚。否則jmeter會記錄很多我們不需要的后續(xù)請求靖榕,并且將瀏覽器的代理服務(wù)關(guān)閉,否則瀏覽器將無法訪問外網(wǎng)顽铸。
實例:登錄論壇茁计,并發(fā)帖。
點擊啟動后谓松,通過谷歌瀏覽器訪問論壇星压,登錄并發(fā)帖,完成發(fā)帖后鬼譬,打開jmeter工具娜膘,點擊http代理服務(wù)器上的停止按鈕,并將瀏覽器代理服務(wù)器關(guān)閉优质。此時竣贪,查看我們的線程組,發(fā)現(xiàn)下面已經(jīng)記錄了一大推的請求巩螃。
只是簡單的一個登錄和發(fā)帖演怎,我們看到j(luò)meter中記錄了很多請求,其中有很多是css的請求避乏,我們真正需要的是signin和topiccreate爷耀。jmeter不支持批量刪除http請求,一個一個刪除又很麻煩拍皮,所以我們可以選擇新建一個線程組畏纲,將我們需要用到的請求復(fù)制到后面的新建的線程組下,如下圖:
接下來可以運行我們的線程組了春缕,點擊運行盗胀,發(fā)現(xiàn)報錯,禁止訪問锄贼。票灰。。不要慌宅荤,這是因為沒有cookie的原因屑迂,雖然登錄成功了,但是因為沒有cookie冯键,導(dǎo)致沒有權(quán)限進行發(fā)帖的操作惹盼。(還記得我們一開始用jmeter做的post接口請求么?發(fā)帖需要四個必須字段惫确,token手报,title蚯舱,tab,conten掩蛤,其中token就是用戶的登錄信息)
首先正常頁面操作發(fā)帖的時候查看cookie
但當我們把網(wǎng)頁中的cookie刪除掉枉昏,再刷新該頁面,發(fā)現(xiàn)與jmeter中的報錯一致都是forbidden!
既然知道原因了揍鸟,就知道怎么對癥下藥了兄裂。在線程組下分別添加http cookie管理器和httpcache manager。這兩個一個是cookie一個緩存阳藻。加上這兩個之后再運行我們的線程組晰奖。
再次運行后查看結(jié)果樹,已經(jīng)運行成功了
3.壓測(登錄和發(fā)帖)
在上述基礎(chǔ)上我們對服務(wù)器進行壓測腥泥。方案匾南,采用csv數(shù)據(jù)驅(qū)動實現(xiàn)。
線程組下添加csv數(shù)據(jù)文件
新建data.csv文件道川,如下圖:兩列數(shù)據(jù)分別為用戶名和密碼
注意午衰,如果文檔中含有中文立宜,則用記事本方式打開該csv文件冒萄,另存為,選擇UTF-8編號格式保存
此時在csv數(shù)據(jù)驅(qū)動文件中設(shè)置如下
再將線程組中的線程數(shù)改為10橙数,再次運行該線程尊流,查看結(jié)果樹:
根據(jù)響應(yīng)數(shù)據(jù)或者請求我們可以得出報錯原因,no cookie灯帮,可能該用戶不存在崖技,此時我們在瀏覽器中用該用戶名密碼登錄,發(fā)現(xiàn)確實登錄不了
修改data.csv文件钟哥,將錯誤的用戶名密碼修改為正確的用戶名密碼后迎献,再次運行,
查看論壇首頁腻贰,批量發(fā)帖十個已經(jīng)成功
既然添加成功吁恍,接下來我們可以開始使用斷言來驗證結(jié)果是否正確。因為登錄成功后會跳轉(zhuǎn)到首頁播演,并且首頁展示登錄名冀瓦,所以我們在登錄請求下添加響應(yīng)斷言
因為在csv驅(qū)動設(shè)置中我們已經(jīng)將用戶名參數(shù)化為${user},所以我們在響應(yīng)斷言中設(shè)置如下:
同時写烤,為方便查看請求參數(shù)翼闽,我們在線程組下添加debug postprocessor
設(shè)置完成后再次運行,查看結(jié)果樹及debug postprocessor的響應(yīng)數(shù)據(jù)