『動善時』JMeter基礎 — 49、使用JMeter自身代理錄製APP測試腳本
- 2021 年 6 月 26 日
- 筆記
- 測試基礎必會技能 - JMeter工具
錄製腳本只不過是我們日常工作中的一個小應用而已,只是為了能快速看到應用程式跑的邏輯及實現順序。並夠幫助測試人員,快速查出問題出現的節點。
而對於做有針對性的測試時,比如做某個介面的測試,建議大家還是自己去創建及組織腳本,不過錄製的腳本可以拿來做參考,粘貼複製也是可以節省不少的工作量。
在JMeter中可以使用自身就帶的HTTP代理伺服器組件錄製腳本,可以錄製在WEB上的操作,也可以錄製在手機App上的操作。
- 錄製在WEB上的操作時,需要設置瀏覽器的代理伺服器。
- 錄製在手機App上的操作時,需要設置手機上的代理伺服器。
下面就詳細的介紹,使用HTTP代理伺服器組件錄製App腳本。
需求:錄製在Android模擬器中,使用購物軟體,記錄購物的操作。
同理,我們可以錄製各種App上的操作。
1、測試計劃內包含的元件
添加元件操作步驟:
- 創建測試計劃。
- 創建執行緒組:
選中「測試計劃」右鍵 —> 添加 —> 執行緒(用戶) —> 執行緒組
。 - 在執行緒組中,添加配置原件「HTTP Cookie管理器」組件:
選中「執行緒組」右鍵 —> 添加 —> 配置元件 —> HTTP Cookie管理器
。
說明:如果錄製的操作包括用戶登錄操作,則需要添加「HTTP Cookie管理器」,添加之後不需要任何配置,錄製後,腳本中便保存用戶登錄的相關資訊。(本示例中沒有登陸操作,可以不添加) - 在測試計划下,添加非測試元件「HTTP代理伺服器」組件:
選中「測試計劃」右鍵 —> 添加 —> 非測試元件 —> HTTP代理伺服器
。 - 在HTTP代理伺服器組件下,添加監聽器「察看結果樹」組件:
選中「HTTP代理伺服器」右鍵 —> 添加 —> 監聽器 —> 察看結果樹
。
最終測試計劃中的元件如下:
點擊運行按鈕,會提示你先保存該腳本,腳本保存完成後會直接自動運行該腳本。
2、HTTP代理伺服器的設置內容
在HTTP代理伺服器組件中,我們需要編輯:
- 埠:默認8888,一般使用默認即可。主要不能與本地其他服務的埠號衝突,否則啟動不了。比如說 Fiddler已用的埠衝突。
HTTPS Domains
:我的理解就是,設置代理伺服器的主機IP地址或者域名。因為在我們本地使用,一般就是localhost
或者127.0.0.1
即可,當然不填寫也是可以的。(此填寫的地址一定要能夠連接外網)- 設置目標控制器:也就是錄製的組件存儲到什麼位置。這個一定要選,下圖中選擇了存儲到目標執行緒組中。
配置完的介面內容,如下圖所示:
3、設置手機的代理伺服器
在手機上設置代理伺服器的步驟:
(1)進入手機代理伺服器配置介面
設置 —> 無線和網路 —> WLAN,點擊進入。
在無線網名稱上進行長按操作,會出現如下列表,選擇修改網路。
然後選擇高級選項 —> 點擊代理後邊的下拉三角,選擇手動。
(2)配置手機代理伺服器
代理伺服器主機名:填寫自己本地電腦的IP地址。
代理伺服器埠:填寫JMeter的HTTP代理伺服器中設置的埠號,也就是8888。
如下圖所示:
提示一下,本地主機IP地址查看方式:
在電腦打開CMD命令,輸入ipconfig
命令。
因為我們是用無線網進行連接的,所以選擇無線區域網這塊網卡。
4、錄製腳本
以上內容設置完畢後,在JMeter中的HTTP代理伺服器介面,點擊啟動按鈕,開始錄製。
提示:在HTTP代理伺服器介面點擊「啟動」時,Meter將生成自己的證書。證書生成可能需要一些時間,在此期間,GUI將無響應。證書生成完成後,GUI將顯示一個彈出對話框,其中包含根CA證書的詳細資訊,證書有效期為7天。該證書需要在手機中安裝,以便接受JMeter生成的主機證書。
如下圖所示:
關於配置證書,這裡就不展開說明了。直接點擊
OK
即可。
然後打開手機中的應用,進行購物操作,JMeter中就已經開始錄製腳本了。
操作完成之後,到JMeter的HTTP代理伺服器中點擊「停止」,然後將手機的代理設置恢復原樣即可。
不恢復的話,會導致你無法使用手機訪問外網。
如下圖所示:
5、查看錄製的腳本
在JMeter中我們可以看到已經記錄了許多請求對應的資訊,包括PHP
、js
、.jpg
、.png
等請求。
如下圖所示:
我們可以看到,我們只進行了簡單的幾步操作,卻錄製這麼的請求。是因為JMeter錄製很多非關鍵性的請求,如一些圖片的請求,這就需要我們進行一些優化。
錄製腳本的優化有兩個步驟:
- 在錄製的時候,做一些過濾和排除操作。
- 在錄製後的腳本中手動優化,刪除不需要的組件,增加自己需要的組件。
1)伺服器名稱或IP與目標網站不同的、無關的,可以刪除。
2)js/css/png/jpeg
等這類請求刪掉。
3)沒有傳遞任何數據的請求可以屏蔽掉,等流程能回放成功了,這些再刪除。如果回放不成功,再一個一個打開,進行檢查。
6、HTTP代理伺服器的排除模式
在測試腳本中有一些錄製的資訊是沒有任何作用的,所以我們在錄製腳本的時候,就可以通過HTTP代理伺服器的排除模式,排除一些不需要的請求資訊,如css
、gif
、png
等請求。
例如:
- 在包含模式添加填上
.*\.jsp
,只在請求JSP文件時錄製腳本。
這裡通常都是設置JSP或者HTML,可以根據具體情況進行填寫。 - 在排除模式處填上
.*\.js
,在請求js文件時不錄製腳本。
這裡通常都是設置js
、jpg
、png
、gif
、css
等,這些類型文件請求都是不需要錄製的。 - 當然我們也可以點擊添加建議排除按鈕,會自動生成一個過濾的正則表達式。
如下圖所示:
添加上這些時候,錄製出來的腳本,多餘的累贅會減少很多。
7、保存腳本
腳本錄製完成後,需要進行腳本的保存。
把腳本保存到本地,可以分享給其他成員,進行查看、編輯、回放等操作。
以上就是使用JMeter代理伺服器錄製腳本的操作過程,記錄一下,以備自己可以翻閱,也可以幫助其他人了解一下JMeter的這個功能。
8、注意坑點
- 我們的手機與JMeter所在的電腦必須在同一個WiFi下!!否則會失敗!
- JMeter啟動有兩種方式,一種是用
ApacheJMeter.jar
文件啟動,一種是用jmeter.bat
文件啟動。那麼請一定採用Jmeter.bat
這種方式來啟動 JMeter ,否則無法進行腳本的錄製。 - IOS手機需要安裝證書。