『動善時』JMeter基礎 — 49、使用JMeter自身代理錄制APP測試腳本


錄制腳本只不過是我們日常工作中的一個小應用而已,只是為了能快速看到應用程序跑的邏輯及實現順序。並夠幫助測試人員,快速查出問題出現的節點。

而對於做有針對性的測試時,比如做某個接口的測試,建議大家還是自己去創建及組織腳本,不過錄制的腳本可以拿來做參考,粘貼復制也是可以節省不少的工作量。

在JMeter中可以使用自身就帶的HTTP代理服務器組件錄制腳本,可以錄制在WEB上的操作,也可以錄制在手機App上的操作。

  • 錄制在WEB上的操作時,需要設置瀏覽器的代理服務器。
  • 錄制在手機App上的操作時,需要設置手機上的代理服務器。

下面就詳細的介紹,使用HTTP代理服務器組件錄制App腳本。

需求:錄制在安卓模擬器中,使用購物軟件,記錄購物的操作。

同理,我們可以錄制各種App上的操作。

1、測試計划內包含的元件

添加元件操作步驟

  1. 創建測試計划。
  2. 創建線程組:選中“測試計划”右鍵 —> 添加 —> 線程(用戶) —> 線程組
  3. 在線程組中,添加配置原件“HTTP Cookie管理器”組件:選中“線程組”右鍵 —> 添加 —> 配置元件 —> HTTP Cookie管理器
    說明:如果錄制的操作包括用戶登錄操作,則需要添加“HTTP Cookie管理器”,添加之后不需要任何配置,錄制后,腳本中便保存用戶登錄的相關信息。(本示例中沒有登陸操作,可以不添加)
  4. 在測試計划下,添加非測試元件“HTTP代理服務器”組件:選中“測試計划”右鍵 —> 添加 —> 非測試元件 —> HTTP代理服務器
  5. HTTP代理服務器組件下,添加監聽器“察看結果樹”組件:選中“HTTP代理服務器”右鍵 —> 添加 —> 監聽器 —> 察看結果樹

最終測試計划中的元件如下:

image

點擊運行按鈕,會提示你先保存該腳本,腳本保存完成后會直接自動運行該腳本。

2、HTTP代理服務器的設置內容

HTTP代理服務器組件中,我們需要編輯:

  1. 端口:默認8888,一般使用默認即可。主要不能與本地其他服務的端口號沖突,否則啟動不了。比如說 Fiddler已用的端口沖突。
  2. HTTPS Domains:我的理解就是,設置代理服務器的主機IP地址或者域名。因為在我們本地使用,一般就是localhost或者127.0.0.1即可,當然不填寫也是可以的。(此填寫的地址一定要能夠連接外網)
  3. 設置目標控制器:也就是錄制的組件存儲到什么位置。這個一定要選,下圖中選擇了存儲到目標線程組中。

配置完的界面內容,如下圖所示:

image

3、設置手機的代理服務器

在手機上設置代理服務器的步驟:

(1)進入手機代理服務器配置界面

設置 —> 無線和網絡 —> WLAN,點擊進入。

在無線網名稱上進行長按操作,會出現如下列表,選擇修改網絡。

image

然后選擇高級選項 —> 點擊代理后邊的下拉三角,選擇手動。

image

(2)配置手機代理服務器

代理服務器主機名:填寫自己本地電腦的IP地址。

代理服務器端口:填寫JMeter的HTTP代理服務器中設置的端口號,也就是8888。

如下圖所示:

image

提示一下,本地主機IP地址查看方式:

在電腦打開CMD命令,輸入ipconfig命令。

因為我們是用無線網進行連接的,所以選擇無線局域網這塊網卡。

image

4、錄制腳本

以上內容設置完畢后,在JMeter中的HTTP代理服務器界面,點擊啟動按鈕,開始錄制。

提示:在HTTP代理服務器界面點擊“啟動”時,Meter將生成自己的證書。證書生成可能需要一些時間,在此期間,GUI將無響應。證書生成完成后,GUI將顯示一個彈出對話框,其中包含根CA證書的詳細信息,證書有效期為7天。該證書需要在手機中安裝,以便接受JMeter生成的主機證書。
如下圖所示:

image

關於配置證書,這里就不展開說明了。直接點擊OK即可。

然后打開手機中的應用,進行購物操作,JMeter中就已經開始錄制腳本了。

image

操作完成之后,到JMeter的HTTP代理服務器中點擊“停止”,然后將手機的代理設置恢復原樣即可。

不恢復的話,會導致你無法使用手機訪問外網。

如下圖所示:

image

5、查看錄制的腳本

在JMeter中我們可以看到已經記錄了許多請求對應的信息,包括PHPjs.jpg.png等請求。

如下圖所示:

image

我們可以看到,我們只進行了簡單的幾步操作,卻錄制這么的請求。是因為JMeter錄制很多非關鍵性的請求,如一些圖片的請求,這就需要我們進行一些優化。

錄制腳本的優化有兩個步驟:

  1. 在錄制的時候,做一些過濾和排除操作。
  2. 在錄制后的腳本中手動優化,刪除不需要的組件,增加自己需要的組件。
    1)服務器名稱或IP與目標網站不同的、無關的,可以刪除。
    2)js/css/png/jpeg等這類請求刪掉。
    3)沒有傳遞任何數據的請求可以屏蔽掉,等流程能回放成功了,這些再刪除。如果回放不成功,再一個一個打開,進行檢查。

6、HTTP代理服務器的排除模式

在測試腳本中有一些錄制的信息是沒有任何作用的,所以我們在錄制腳本的時候,就可以通過HTTP代理服務器的排除模式,排除一些不需要的請求信息,如cssgifpng等請求。

例如:

  • 在包含模式添加填上 .*\.jsp,只在請求JSP文件時錄制腳本。
    這里通常都是設置JSP或者HTML,可以根據具體情況進行填寫。
  • 在排除模式處填上.*\.js ,在請求js文件時不錄制腳本。
    這里通常都是設置jsjpgpnggifcss等,這些類型文件請求都是不需要錄制的。
  • 當然我們也可以點擊添加建議排除按鈕,會自動生成一個過濾的正則表達式。

如下圖所示:

image

添加上這些時候,錄制出來的腳本,多余的累贅會減少很多。

7、保存腳本

腳本錄制完成后,需要進行腳本的保存。

把腳本保存到本地,可以分享給其他成員,進行查看、編輯、回放等操作。

以上就是使用JMeter代理服務器錄制腳本的操作過程,記錄一下,以備自己可以翻閱,也可以幫助其他人了解一下JMeter的這個功能。

8、注意坑點

  1. 我們的手機與JMeter所在的電腦必須在同一個WiFi下!!否則會失敗!
  2. JMeter啟動有兩種方式,一種是用ApacheJMeter.jar文件啟動,一種是用jmeter.bat文件啟動。那么請一定采用Jmeter.bat這種方式來啟動 JMeter ,否則無法進行腳本的錄制。
  3. IOS手機需要安裝證書。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM