一、錄製腳本的基本概念
Jmeter是一款免費、開源的性能測試工具,可用於測試靜態或動態資源的請求,包括靜態文件、動態頁面、Web服務、FTP服務等。其中錄製腳本是Jmeter的重要特性之一。
Jmeter的錄製腳本是將HTTP請求轉換為Jmeter測試腳本的一種方式,它可以記錄用戶與Web應用程序之間交互的HTTP請求和響應,以便實現在後續測試中模擬這些請求和響應。錄製腳本包括3部分:HTTP代理服務器、瀏覽器和Web應用程序。
具體來說,HTTP代理服務器收集和轉發瀏覽器通過Jmeter進行的HTTP請求。Jmeter使用代理服務器截獲HTTP請求,瀏覽器從代理服務器接收響應,然後Jmeter通過代理服務器記錄HTTP請求和響應,從而生成測試腳本。
二、錄製腳本的使用方法
使用Jmeter錄製腳本的步驟如下:
1. 配置HTTP代理服務器
在Jmeter的“Workbench”下找到“HTTP(S)代理服務器”,右鍵選擇“添加”並設置端口號和Target Controller。Target Controller可以設置成根節點或者是任意一個現有節點下面的子節點。配置完成後,在“Test Plan”中保存HTTP代理服務器的設置。
<HTTPProxyControl> <stringProp name="port">8080</stringProp> <stringProp name="domain"></stringProp> <stringProp name="target">/</stringProp> <boolProp name="captureHttpHeaders">true</boolProp> <boolProp name="addAssertions">false</boolProp> <boolProp name="useRegexForSamplerName">false</boolProp> <boolProp name="responseBasedActionNaming">false</boolProp> <boolProp name="assumeHttpVersion">true</boolProp> <boolProp name="embeddedUrlRE"></boolProp> <boolProp name="includeScope">false</boolProp> <elementProp name="agreements"> <collectionProp> <stringProp name="-1">on</stringProp> <stringProp name="-241414560">on</stringProp> </collectionProp> </elementProp> <elementProp name="exclude_list"> <stringProp name="-1"></stringProp> </elementProp> <stringProp name="filename"></stringProp> <boolProp name="auto_redirects">true</boolProp> <boolProp name="follow_redirects">true</boolProp> <stringProp name="proxyChain"></stringProp> </HTTPProxyControl>
2. 配置瀏覽器
在瀏覽器中設置代理服務器。這裡以Chrome為例,進入“設置”-“高級”-“系統”-“打開代理設置”,在“代理服務器”中輸入“localhost:8080”,保存後關閉設置。
註:在配置完成後,要確保代理服務器已啟動,可通過Jmeter工具中的“Start”按鈕來開啟,或者通過命令行“jmeter -n -t /path/to/script.jmx”來啟動。
3. 錄製腳本
打開瀏覽器,訪問需要測試的Web應用程序。Jmeter將記錄所有的HTTP請求和響應。在錄製測試期間,請注意避免瀏覽其它網站,因為這些請求也會被記錄下來,與當前所需的腳本無關。
4. 查看並編輯腳本
打開Jmeter的“Recording Controller”,可看到已經錄製到的請求和相關信息。可以對請求進行編輯,例如添加斷言、修改請求頭等。編輯完成後,可保存測試腳本,以備後續使用。
<RecordingController guiclass="RecordController" testclass="RecordingController" testname="Test" enabled="true"> <boolProp name="gui.recording&controller.disabled">false</boolProp> <stringProp name="TestPlan.comments"></stringProp> <boolProp name="TestPlan.functional_mode">false</boolProp> <boolProp name="TestPlan.serialize_threadgroups">false</boolProp> <elementProp name="HTTPsampler.HTTPsampler-Proxy" elementType="HTTPSamplerProxy" guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" enabled="true"> <boolProp name="HTTPSampler.postBodyRaw">false</boolProp> <elementProp name="HTTPArgument.paramstyle" elementType="HTTPArgument"></elementProp> <elementProp name="HTTPSampler.method"> <stringProp name="HTTPSampler.method">POST</stringProp> </elementProp> <elementProp name="HTTPSampler.follow_redirects">true</elementProp> <elementProp name="HTTPSampler.auto_redirects">false</elementProp> <elementProp name="HTTPSampler.use_keepalive">true</elementProp> <elementProp name="HTTPSampler.DO_MULTIPART_POST">false</elementProp> <elementProp name="HTTPSampler.monitor">false</elementProp> <elementProp name="HTTPSampler.embedded_url_re"></elementProp> <elementProp name="HTTPSampler.ignore_failed_embedded_resources">false</elementProp> <elementProp name="HTTPSampler.useMultipartForPost">false</elementProp> <elementProp name="HTTPSampler.connect_timeout"></elementProp> <elementProp name="HTTPSampler.response_timeout"></elementProp> <elementProp name="HTTPSampler.protocol"> <stringProp name="http.protocol.version">HTTP/1.1</stringProp> </elementProp> <>... </elementProp> </RecordingController>
三、錄製腳本的注意事項
在使用Jmeter錄製腳本時,需要注意以下事項:
1. 避免瀏覽其它網站
在錄製測試期間,要避免在瀏覽器中訪問其它網站。因為這些請求也會被記錄下來,與當前所需的腳本無關。
2. 檢查測試腳本的正確性
錄製測試腳本後,要對其進行檢查,確保沒有錯誤和缺陷。可以使用Jmeter內置的調試工具,查看腳本中每個請求和響應之間的關係是否正確。
3. 添加斷言和驗證器
測試腳本中加入斷言和驗證器,可用於檢查是否所有請求和響應都正確,包括HTTP代碼、響應時間、響應內容等。這是測試腳本的基本要求,以便達到準確測試的目的。
4. 盡量避免不必要的處理
Jmeter的錄製腳本會記錄所有的HTTP請求和響應,包括一些不必要的請求,例如廣告請求、跟蹤請求等。這些請求需要在後續的編輯中刪除,以避免影響測試結果。
5. 適時保存測試腳本
在錄製過程中適時保存測試腳本,避免遺失重要的測試數據。同時也避免了在一次錄製中測試腳本過於臃腫,難以管理的問題。
四、總結
本文詳細介紹了使用Jmeter錄製腳本的基本概念、使用方法以及注意事項。通過錄製腳本,可以快速生成測試用例並進行性能測試。同時也需要注意腳本的準確性和可讀性,在後續的測試中可以快速定位問題和改進。
原創文章,作者:EPHU,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/134520.html