Jmeter腳本錄制功能依賴第三方工具Badboy,所以在安裝了Jmeter之后,還需要再安裝一個工具。
Badboy本身自帶瀏覽器,相關操作只能在Badboy上進行操作,偶爾可能會遇到瀏覽器兼容的問題導致錄制失敗。
有沒有不需要安裝第三方工具,不限制瀏覽器兼容的方法呢?
HTTP代理服務器
Jmeter自帶的組件-HTTP代理服務器來進行腳本的錄制,此功能可以錄制Web/APP端的腳本。
一、錄制Web端的腳本
本次使用的是Jmeter 5.0版本,chrome瀏覽器
1.瀏覽器設置
設置-高級設置-打開代理設置-局域網設置-代理服務器
地址可以是localhost或127.0.0.1,端口與HTTP代理服務器端設置的端口號一致
2.Jmeter添加-線程組
用於指定腳本錄制路徑
3.Jmeter添加-HTTP代理服務器
測試計划>右鍵>添加>非測試原件>HTTP代理服務器
端口:
默認為8888,可修改。但要注意,端口不能被其它程序占用,端口信息要與瀏覽器設置保持一致。
cmd.exe中使用如下命令檢查端口使用情況:
1)netstat -an --列出本機所有使用端口信息
2)netstat -aon|findstr "8888" --查詢端口是否被占用
3)tasklist|findstr "8888" --查詢對應端口被什么程序占用
目標控制器:
錄制腳本存放路徑,可指向第2步創建的線程組(測試計划>線程組)
分組:
錄制腳本時會增加很多節點,為了便於查看與管理,可以對這些節點進行分組
可選值有:不對樣本分組、在組間添加分隔、每個組放入一個新的控制器、只存儲每個組的第一個樣本、將每個組放入新的事務控制器中
記錄HTTP信息頭:將Header頭信息錄制下來
添加斷言:錄制時加入空的斷言,后需需要手工增加斷言內容
Regex Matching:是否使用正則表達式匹配斷言。應用時需要增加一個正則表達式提取器。
HTTP Sampler settings:
Prefix-為錄制腳本增加前綴,配置為登錄,腳本展示為,參見圖中登錄5、登錄9;
Tracnsaction name-為錄制腳本命名,配置為首頁加載,腳本展示為,參考圖中11 首頁加載。
通過此配置,可以手工將腳本進行分組,便於后需查看和編輯。
Type:生成那種類型的取樣器,可選值有HTTPclient4、java和空。
歷史版本默認為JAVA,不知什么時候改為默認空了。
從HTML文件獲取所有內含的資源:是否從HTML文件獲取所有內含的資源。
自動重定向:當遇到重定向,自動跳轉,不記錄重定向過程請求。
跟隨重定向:默認勾選,當遇到重定向時,記錄重定向過程請求。
使用KeepAlive:默認勾選,對應Http響應頭中的Connection:Kepp-Alive
Requests Filtering請求篩選
通過此功能篩選掉不必要的請求,Jmeter會把js、png、swf及動態請求全部錄制下來,會有很多冗余腳本。
Content -type filtert:通過Content-type進行篩選。常見的包含application/x-www-form-urlencoded、text/xml、application/json、multipart/form-data等。
排除模式:可以添加URL、路徑等信息作為排除項
Notify Child Listeners of filtered samplers:通知篩選的采樣器的子偵聽器,匹配一個或多個排除模式的任何響應都不會傳遞給子偵聽器。
4.啟動代理服務器
點擊“啟動”,(首次加載較慢)會提示Root CA certificate Apache Jmeter TemporaryRootCA Created in Jmeter bin directory:
此消息只是讓用戶信任JMeter proxy的身份,有兩種方法都可以解決
1)直接在瀏覽器錄制時選擇信任發來的證書;
2)提前將JMeter Proxy的Root CA證書導入瀏覽器,完成信任,再開始錄制動作。
不過忽略也可以,在瀏覽器中進行相關操即會被記錄下來。
5.應用
本地可以訪問系統並錄制腳本,外網訪問會受限制,瀏覽器去除代碼設置后返回正常。
日常接口測試,如果不想手工錄制信息到Jmeter,也可以通過此方式進行錄制。
二、錄制APP端腳本
其實在電腦端的設置和Web錄制中的設置都是一樣的,只不過在APP端需要設置代理。
通過無線網絡設置代理,計算機開啟wifi,手機連接,保證手機連接的網絡與電腦網絡在同一局域網內。
無線設置》WLAN》鏈接對應的無線網絡》點擊鏈接的無線網絡》配置代理
與Web端配置類似,服務器IP配置為電腦IP,端口與HTTP代理服務器中的設置的一致
配置完成后,就可以進行相關錄制操作。