Jmeter手動編寫指令碼詳解(Jmeter 5.3 & jdk1.8.0_201)
思路
壓測時需要傳送大量請求到伺服器,從而對伺服器造成壓力,以進行效能測試。Jmeter的作用就是幫助我們模擬大量請求。
所以需要我們回答的問題僅僅是:如何正確模擬請求?
答案只有兩步:
- 找到正確的請求;
- 照抄。
繼續分析。
-
那麼什麼是正確的請求?
我的理解是:伺服器想要的請求,才是正確的請求,除此之外的說了都不算。而伺服器作為計算機,它想要還是不想要,可太好判斷了。(沒有藉機嘲諷人類的意思)
根據 伺服器返回給我們的響應資訊 判斷即可。 -
怎麼照抄?
略。
至此,我們要怎麼做,已經比較明朗了:
根據正確的響應資訊確定正確的請求——然後抄。
執行步驟
以【進入B站搜尋“saber”】為例。
步驟一:判斷正確的響應資訊
- 怎麼判斷web請求的響應是否正確呢?
怎麼看呢怎麼看呢?
——當然是能看到saber就是正確的啦~咳咳此處請忽略查詢結果
這就夠了嗎?好像哪裡不對。
請求呢?我們要找的那麼大一個請求呢?
顯然,這裡需要能捕捉到 我們在web頁面操作時所發出的請求 的工具,也就是抓包工具。常用的有: - F12開發者工具:以Chrome瀏覽器為例,依次 右鍵-檢查-Network,就能看到被抓到的請求了。而頁面上吾王熠熠生輝的臉無疑證實著這些請求是多麼正確,多麼值得信任。
- Fiddler:Windows系統常用的抓包工具
這裡帶鎖是因為這個請求是https請求。 - Charles:Mac系統常用的抓包工具,介面比較美觀,收費。
當然,實際上判斷請求是否正確,最終還是看響應回來的資訊本身。畢竟我們雖然看到了saber,但是並不能確定是哪條請求返回了這個saber。只有找到那條返回了saber的請求,才能確定是我們要找的請求。
小常識:這裡點選【搜尋】前先清空請求,可以保證 執行了搜尋操作 的請求肯定包含在了新捕捉到的請求裡面,從而有效縮小了我們的搜查範圍。
步驟二:開啟寫輪眼模式
最終確定了這條是我們要找的請求,是標準答案。
現在我們要做的,就是在Jmeter中傳送出和它完全相同的請求。
首先在Jmeter中進行一些準備工作,就像我們搜尋saber時需要我們操作一樣,Jmeter傳送請求也需要準備好虛擬的人:
在【測試計劃】新增執行緒組
虛擬使用者是用來發請求的,我們把傳送請求的模板加上:
在【執行緒組】新增HTTP請求
接下來的思路很簡單,傳送請求需要什麼,我們就從標準答案裡找什麼,然後拿過來填上。
- 請求需要url:
安排上:
- 請求需要請求頭:
找到Request Headers,全部複製
在Jmeter中找到專門儲存請求頭的元件,【HTTP 請求】—【新增】—【配置元件】—【HTTP 資訊頭管理器】,點選下方的 【從剪貼簿新增】,一鍵貼上:
- 請求需要請求體:
get請求沒有請求體。
除錯
場景設定
結果監測
相關文章
- 如何用 JMeter 編寫效能測試指令碼?JMeter指令碼
- JMeter指令碼JMeter指令碼
- 如何編寫測試團隊通用的Jmeter指令碼JMeter指令碼
- [求教] jmeter5.3 原始碼編譯報 autostyleKotlinCheck 錯誤JMeter原始碼編譯Kotlin
- 用Jmeter編寫一個較複雜的測試指令碼JMeter指令碼
- Jmeter —— 錄製指令碼JMeter指令碼
- JMeter錄製指令碼JMeter指令碼
- Jmeter系列(40)- 詳解 Jmeter CLI 模式JMeter模式
- Jmeter(二十七) - 從入門到精通 - Jmeter Http協議錄製指令碼(詳解教程)JMeterHTTP協議指令碼
- 『動善時』JMeter基礎 — 46、使用Badboy工具錄製JMeter指令碼JMeter指令碼
- 『動善時』JMeter基礎 — 54、JMeter聚合報告詳解JMeter
- 『動善時』JMeter基礎 — 28、JMeter函式助手詳解JMeter函式
- 『動善時』JMeter基礎 — 57、Linux系統中執行JMeter指令碼JMeterLinux指令碼
- 『動善時』JMeter基礎 — 29、JMeter響應斷言詳解JMeter
- 『動善時』JMeter基礎 — 30、JMeter中JSON斷言詳解JMeterJSON
- 『動善時』JMeter基礎 — 31、JMeter中BeanShell斷言詳解JMeterBean
- 『動善時』JMeter基礎 — 12、JMeter取樣器詳解:samplerJMeter
- Jmeter(三十) - 從入門到精通 - Jmeter Http協議錄製指令碼工具-Badboy3(詳解教程)JMeterHTTP協議指令碼
- 『動善時』JMeter基礎 — 48、使用JMeter自身代理錄製測試指令碼JMeter指令碼
- Jmeter關聯詳解JMeter
- 『動善時』JMeter基礎 — 39、JMeter中如果(If)控制器詳解JMeter
- 『動善時』JMeter基礎 — 40、JMeter中ForEach控制器詳解JMeter
- 『動善時』JMeter基礎 — 32、JMeter察看結果樹元件詳解JMeter元件
- Jmeter(三十三) - 從入門到精通 - Jmeter Http協議錄製指令碼工具-Badboy6(詳解教程)JMeterHTTP協議指令碼
- Jmeter(三十二) - 從入門到精通 - Jmeter Http協議錄製指令碼工具-Badboy5(詳解教程)JMeterHTTP協議指令碼
- 使用jmeter錄製web指令碼JMeterWeb指令碼
- Jmeter的指令碼引數化JMeter指令碼
- 『動善時』JMeter基礎 — 49、使用JMeter自身代理錄製APP測試指令碼JMeterAPP指令碼
- 『動善時』JMeter基礎 — 35、JMeter介面關聯【JSON提取器】詳解JMeterJSON
- (Jmeter新玩法)Python 調 Jmeter執行引數化jmx指令碼JMeterPython指令碼
- Jmeter JDBC Request 使用詳解JMeterJDBC
- jmeter學習指南之詳解jmeter執行緒組JMeter執行緒
- jmeter利用自身代理錄製指令碼JMeter指令碼
- Jmeter(五十四) - 從入門到精通高階篇 - 如何在linux系統下執行jmeter指令碼 - 上篇(詳解教程)JMeterLinux指令碼
- Jmeter(八) - 從入門到精通 - JMeter配置元件(詳解教程)JMeter元件
- 『動善時』JMeter基礎 — 33、JMeter察看結果樹的顯示模式詳解JMeter模式
- 使用 IntelliJ IDEA 編譯 Jmeter5.3 原始碼-基於 Gradle,解決上傳附件中文名稱亂碼與錄製指令碼中文亂碼問題IntelliJIdea編譯JMeter原始碼Gradle指令碼
- JMeter 介面自動化測試(手工轉自動化指令碼)JMeter指令碼