Jmeter手動編寫指令碼詳解(Jmeter 5.3 & jdk1.8.0_201)

water_vento發表於2020-10-09

思路

   壓測時需要傳送大量請求到伺服器,從而對伺服器造成壓力,以進行效能測試。Jmeter的作用就是幫助我們模擬大量請求。

   所以需要我們回答的問題僅僅是:如何正確模擬請求?

   答案只有兩步:

  1. 找到正確的請求;
  2. 照抄。

繼續分析。

  1. 那麼什麼是正確的請求?
    我的理解是:伺服器想要的請求,才是正確的請求,除此之外的說了都不算。而伺服器作為計算機,它想要還是不想要,可太好判斷了。(沒有藉機嘲諷人類的意思)
    根據 伺服器返回給我們的響應資訊 判斷即可。

  2. 怎麼照抄?
    略。

至此,我們要怎麼做,已經比較明朗了:

   根據正確的響應資訊確定正確的請求——然後抄。

執行步驟

以【進入B站搜尋“saber”】為例。

步驟一:判斷正確的響應資訊

  • 怎麼判斷web請求的響應是否正確呢?
    怎麼看呢怎麼看呢?
    ——當然是能看到saber就是正確的啦~咳咳此處請忽略查詢結果
    ![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20201009153021661.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhdGVyX3ZlbnRv,size_16,color_FFFFFF,t_70#pic_center
    這就夠了嗎?好像哪裡不對。
    請求呢?我們要找的那麼大一個請求呢?
    顯然,這裡需要能捕捉到 我們在web頁面操作時所發出的請求 的工具,也就是抓包工具。常用的有:
  • F12開發者工具:以Chrome瀏覽器為例,依次 右鍵-檢查-Network,就能看到被抓到的請求了。而頁面上吾王熠熠生輝的臉無疑證實著這些請求是多麼正確,多麼值得信任。
    在這裡插入圖片描述
  • Fiddler:Windows系統常用的抓包工具
    在這裡插入圖片描述
    這裡帶鎖是因為這個請求是https請求。
  • Charles:Mac系統常用的抓包工具,介面比較美觀,收費。
    在這裡插入圖片描述
    當然,實際上判斷請求是否正確,最終還是看響應回來的資訊本身。畢竟我們雖然看到了saber,但是並不能確定是哪條請求返回了這個saber。只有找到那條返回了saber的請求,才能確定是我們要找的請求。

   小常識:這裡點選【搜尋】前先清空請求,可以保證 執行了搜尋操作 的請求肯定包含在了新捕捉到的請求裡面,從而有效縮小了我們的搜查範圍。

步驟二:開啟寫輪眼模式

   最終確定了這條是我們要找的請求,是標準答案。
在這裡插入圖片描述
   現在我們要做的,就是在Jmeter中傳送出和它完全相同的請求。
   首先在Jmeter中進行一些準備工作,就像我們搜尋saber時需要我們操作一樣,Jmeter傳送請求也需要準備好虛擬的人:

   在【測試計劃】新增執行緒組
在這裡插入圖片描述
   虛擬使用者是用來發請求的,我們把傳送請求的模板加上:

   在【執行緒組】新增HTTP請求
在這裡插入圖片描述
   接下來的思路很簡單,傳送請求需要什麼,我們就從標準答案裡找什麼,然後拿過來填上。

  1. 請求需要url:
    在這裡插入圖片描述
    安排上:
    在這裡插入圖片描述
  2. 請求需要請求頭:
    找到Request Headers,全部複製
    在這裡插入圖片描述

在Jmeter中找到專門儲存請求頭的元件,【HTTP 請求】—【新增】—【配置元件】—【HTTP 資訊頭管理器】,點選下方的 【從剪貼簿新增】,一鍵貼上:
在這裡插入圖片描述

  1. 請求需要請求體:
    get請求沒有請求體。

除錯

場景設定

結果監測

相關文章