2018/07/02

20180702-程式-WebTest錄製壓測腳本MEMO-如何擷取Response變數

image

(壓測腳本的錄製結果圖):Keyword:「Extract response in web test」

=============================================================


本篇的重點記錄項目:


  1. Visual Studio 2017 環境準備

  2. 初步腳本錄製

  3. 擷取 Login 後的Response Token,加至後續的Request Header欄位資訊

  4. 如何在WebTest定義全域參數?


環境準備


1. Visual Studio 2017

官方說明:https://docs.microsoft.com/en-us/visualstudio/test/quickstart-create-a-load-test-project

--需使用Enterprise 版本,才有「web Performance and Load Test」的功能

clip_image001

啟用方式,是在安裝檔下,記得「勾選」這兩個項目,才可以在「新增專案」下選擇的到。

clip_image001[5]


image




錄製腳本記錄:


1. 初步腳本錄製:

專案網為採用 SPA 的開發模式,在 Test Manager 還是可以錄製其相關的Request動作資料。

(基本上是錄製  call webAPI 的Request資料,而不會是Mouse 的行為~~~)

在錄製完成後,刪除掉沒有必要的Request (ex : blowser search api….)

image


在錄製過程中,建議也開啟F12,選至「網路」區段,觀察其網路行為

image


與錄製腳本比對,針對上述的「客製」Header,預設錄製是沒有的。而這些登入資訊,將造成後續的Request無法 pass。

>這是錄製後的結果,其Header少了上述客製資訊

image



2. 擷取 Login 後的Response Token,加至後續的Request Header欄位資訊

面對的問題:

a. 如何從Response 的資料,擷取其資訊?

b. Authorization:前綴詞要為「bearer 」+token,而在 腳本下怎麼加prefix?


a. 擷取Response字串的方式:

參考文:http://bit.ly/2KsnsWA

目標:擷取「AccessToken」的字串內容

image

>>透過 Regular Expression取得其資料:最終表示式為:「(?<=\"AccessToken\":\").*(?="},)」


而 Webtest如何加上此擷取方式:「右鍵」>「Add Extraction Rule」

image

增加完成後的結果,訂定的參數名稱為「MyAccessToken」,後續的Request都可以使用此值

image


b. 如何加上前綴詞:「bearer 」??

>加上額外的Header 資訊,並補上Prefix的結果圖

image

註:補上Prefix 的方式………………….就是用文字檔開啟「.webtest」檔案,手動在該區段下加上!! (介面無法完成這事的~)


3. 如何在WebTest定義全域參數?

>在此建立

image

(THE END)

0 意見 :

張貼留言