1. 程式人生 > >利用神州靈雲AppTrace抓取到的APP資料反向給做Jmeter介面測試(二)

利用神州靈雲AppTrace抓取到的APP資料反向給做Jmeter介面測試(二)

用jmeter模擬登入月光茶人APP選購支付流程(或者大量併發,實現壓測效果)

現實中APP對登入都有限制,同一賬號只能同時登入一次,且手裡沒有多餘的賬號如何進行併發測試呢,這個時候只需單獨對登入http請求進行控制即可;其他請求操作可以放在一塊進行併發測試;

1,新建一個setUp Thread Group,使用這個程序組的好處時,他可以和tearDown Thread Group一起使用,構成一個 登入+中間各種操作/請求+退出的流程,登入請求放在setUp Thread Group,退出請求放在tearDown Thread Group裡面,剩下的各種操作http請求放線上程組裡面,我們此處沒有用到退出操作就不需要新建tearDown Thread Group執行緒組了; 可以把setUp Thread Group理解為初始化,tearDown Thread Group為復位;如下圖,在setUp Thread Group裡面新增登入http請求後,我們需要獲取appCartCookieId和 appLoginToken引數並且要全域性化,下面其他程序中的http請求能繼續使用;首先用正則表示式提取器提取相關引數,具體操作步驟前面有說過,不再贅述 在這裡插入圖片描述

在這裡插入圖片描述 2,使用全域性變數 新增後置處理器BeanShell PostProcessor,把上一步正則表示式提取器提取引數全域性化;如下圖 在這裡插入圖片描述 parameters引數填寫正則表示式提取器提取的引數,然後在script模組進行全域性化申明: String appCartCookieId = bsh.args[0];

     print (appCartCookieId);

     ${__setProperty(newappCartCookieId,${appCartCookieId},)}

3,引用全域性化引數 在其他程序組裡面,進行引用全域性化引數,引用格式:${__P(newappCartCookieId,)} 在這裡插入圖片描述

上圖除了全域性變數外,還引用了其他引數:_terminal-type=ios&appCartCookieId=KaTeX parse error: Expected group after '_' at position 2: {_̲_P(newappCartCo…{__P(newappLoginToken,)}&userId=e19fd14f3ebf48bcbc79d09d6775ff04;也可以寫成parameters的形式,詳細講解可以參考:http://www.cnblogs.com/allen-zml/p/6552535.html 在這裡插入圖片描述 可以在登入執行緒組裡面新增http資訊頭管理,填寫裝置資訊tid、uid等這樣模擬出來的請求更接近iOS移動裝置發出的請求; 在這裡插入圖片描述

4、控制吞吐量 確定要新增控制吞吐量的位置後,新增-定時器-Constant Throughput Timer,然後填寫如圖相關資訊 在這裡插入圖片描述 如果想控制每秒2個併發,紅色區域1填寫120即可,如果Constant Throughput Timer新增到所有執行緒組的前面,都要用到此控制器,下拉選擇all active threads選項;如果放到某一程序組,只供此程序組使用,可以選擇this thread only; 在這裡插入圖片描述 可以把被壓測那臺機器,利用grafana+Prometheus等工具監控起來,檢視機器實時效能;也可以檢視在我們神州靈雲apptrace平臺檢視,壓測的資料是否有丟失,業務響應情況、fgc等指標; 在這裡插入圖片描述 在這裡插入圖片描述 Jmeter中也可以設定壓測時間,併發執行緒數;這個可以作為壓測的輔助手段。

關於神州靈雲

神州靈雲(北京)科技有限公司http://www.dclingcloud.com)是一家數字效能管理完整解決方案服務商,由神州資訊(股票程式碼:SZ:000555)投資成立,在北京、上海設有軟體研發中心。公司80%員工來自於IT業內頂尖的美國領導企業。

神州靈雲始終秉承以“提升業務價值,讓IT更輕鬆”為企業使命,專注NPM/APM/BPM的產品研發和專業技術服務,致力於為客戶提供360°全方位的網路應用及業務效能管理解決方案集。 神州靈雲