如何來取代 URL 要求中的參數
適用於: System Center 2012 R2 Operations Manager, System Center 2012 - Operations Manager, System Center 2012 SP1 - Operations Manager
當您擷取 web 應用程式使用 Web 應用程式編輯器] 時,它可以變更每次連線到應用程式的一個或多個要求中包含唯一資訊。 這項資訊通常包含在要求的回應,然後由一或多個後續的要求。
比方說,當使用者登入應用程式可能會建立唯一的工作階段識別碼。 此工作階段識別碼必須包含在每個要求之後登入程序。 不正確的工作階段識別碼,每個要求會失敗。 因為您不知道數值究竟為何這樣之前執行的第一個要求時,不能明確包含在要求的組態。 如果您建立 web 應用程式所記錄的瀏覽器工作階段,工作階段識別碼會收集每個要求的 URL 中。 不過,執行應用程式時,要求失敗,因為工作階段識別碼會有值不同於記錄的工作階段識別碼。
若要設定這類應用程式,您可以從一個要求的回應主體擷取內容參數和一個或多個後續要求中使用該參數的值。 您接著取代代表參數的變數在後續要求中明確的值。 綜合交易執行時,每次在定義所在的要求中已填入的參數。 在後續要求中使用變數時,它會取代所收集的值之前要求傳送至應用程式。
單一應用程式可以使用任何數目的內容參數。 任何數目的要求可以使用單一參數但必須執行於其中定義參數在要求之後。
工作階段識別碼範例
請考慮當使用者登入應用程式建立工作階段識別碼的所在的範例。 此工作階段識別碼登入頁面之後需要在每個要求。 若要實作這種情況下,您必須先產生時,擷取工作階段識別碼並接著使用這個值在每個後續的要求。
透過使用中所述的程序啟動 如何擷取 Web 應用程式錄製 擷取登入名稱與執行後續動作。 登入應用程式並執行某些動作的錄製工作階段可能看起來類似下列的範例。
http://www.myapp.com/home.aspx
http://www.myapp.com/search.aspx?query=testing&sessionid=32793279321721
http://www.myapp.com/results.aspx?sessionid=32793279321721
http://www.myapp.com/submit.aspx?sessionid=32793279321721
此要求順序的工作階段識別碼是由第一個要求中建立和使用第二個、 第三和第四個要求。 當您執行此監視器時時就會失敗,因為第一個要求會產生新的工作階段識別碼可能不相符時所擷取工作階段所使用的工作階段識別碼。
若要設定參數取代此要求序列,您必須建立擷取規則的第一個要求的內容參數建立工作階段識別碼。 擷取規則會檢查要尋找的值要求的主體 sessionid 變數。 然後您會修改後續的要求而非值使用此參數的工作階段識別碼。
修改過的要求看起來類似下列的範例。
http://www.myapp.com/home.aspx
http://www.myapp.com/search.aspx?query=testing&sessionid=$ParametersContext/sessionID$
http://www.myapp.com/results.aspx?sessionid=$ParametersContext/sessionID$
http://www.myapp.com/submit.aspx?sessionid=$ParametersContext/sessionID$
建立擷取規則
內容參數會收集 擷取規則, ,且每個擷取規則會收集單一內容參數。 建立擷取規則中的 屬性 一開始會產生所需的資料要求的對話方塊。 若要識別要擷取的值,您必須檢視從特定的要求傳回的回應主體。 您可以檢視網頁瀏覽器中傳回的來源或使用工具可讓您檢查 HTTP 回應的詳細資料。 您無法使用 Web 應用程式編輯器] 中檢視的文字。
當您已經識別包含資訊的要求進行擷取、 您檢視 擷取規則 該要求的屬性索引標籤並建立一或多個擷取規則。 每個擷取規則的詳細資料會顯示在下表中。
選項 |
說明 |
---|---|
內容參數名稱 |
輸入提供給內容參數的名稱。 |
開始於 |
在定義的參數值開頭的回應主體中輸入的文字。 您應該指定字元足以確保此字串是唯一的。 參數的值會在最後一個指定的字元之後立即啟動。 |
結束值 |
識別參數值的結尾的回應主體中輸入的文字。 第一個指定的字元前立即結束參數的值。 |
索引 |
如果在文字 開頭 方塊就會發生一次以上,這個值表示要使用哪一個值。 如果文字只會出現一次或它的第一個項目會顯示要擷取的文字,此值應該是 0。 如果應該擷取第二個值的值應該是 1,等等。 |
搜尋符合的文字時忽略大小寫 |
指定是否要忽略的所要搜尋的字元大小寫 開頭 和 附帶 方塊。 |
執行擷取的字串的編碼 URI |
指定是否將擷取的字串編碼之後會收集。 |
插入要求中的參數
您可以在要求中使用參數代表參數的變數取代成明確的值。 變數的格式是 $ParametersContext/<ContextParameterName>$。 執行要求時,變數會取代參數所擷取的資料。
您可以插入變數要求使用下列兩種方法之一:
在 要求屬性 ] 對話方塊中按一下 一般 索引標籤,然後再按一下 要求 URL 修改要求的要求 URL。
在 要求屬性 ] 對話方塊中按一下 一般 索引標籤,然後再按一下 插入參數 ] 按鈕。 使用 插入參數 要求] 對話方塊。 這從存取 插入參數 按鈕 一般 索引標籤的 要求屬性 要求] 對話方塊。
使用參數擷取的範例 Web 應用程式
下列程序提供在 web 應用程式中使用參數擷取的範例。 此範例會查詢執行中的第一個項目的 受歡迎的現在 Bing 首頁的區段。 因為這個值會定期變更,您必須先連接到主頁面並收集回應的主體中的搜尋詞彙。 然後您使用這個詞彙來建置要求以執行實際的搜尋。
Bing 首頁如下所示的 受歡迎的現在 反白顯示的區段。
若要判斷回應主體中的位置搜尋詞彙出現,您可以檢視頁面的來源。 來源的部分如下所示的 HTML 程式碼與 受歡迎的現在 一節。 在此 HTML 程式碼中,您只需要在下圖中反白顯示的搜尋字串。 要求形成的 https://www.bing.com 後面這個字串。
您只可以拉出一詞本身,但它是最簡單的辦法在參數中包含整個字串。 這個字串會加上字元 現在 < h3 > 常用 < / h3 >< ul >< li >< href =" 並結束的下一個 "。 這些都是您將使用當您定義參數擷取的值。
若要記錄的範例 web 應用程式
-
使用中的程序 如何擷取 Web 應用程式錄製 錄製的 web 應用程式。
-
錄製時,連接到 https://www.bing.com。
-
(選擇性) 使用您的瀏覽器選項來檢視 Bing 首頁上的來源並找出 受歡迎的現在 的 HTML 程式碼區段。
-
按一下第一個搜尋詞彙底下 受歡迎的現在。
-
儲存錄製的 web 應用程式。
-
移除最後一個要求,因為這並非必要。 若要移除最後一個要求,選取要求然後 刪除 中 動作 窗格。 產生要求看起來應該類似下列 Url:
若要建立擷取規則
-
選取第一個要求,然後再按一下 屬性 中 動作 窗格。
-
選取 擷取規則 ] 索引標籤。
-
按一下 [加入]。加入擷取規則 對話方塊隨即開啟。
-
在 加入擷取規則 對話方塊 內容參數名稱 ] 方塊中輸入 SearchString。
-
在 開頭 ] 方塊中輸入 現在 < h3 > 常用 < / h3 >< ul >< li >< href ="。
-
在 附帶 ] 方塊中輸入 "。 擷取規則看起來應該類似下圖。
-
按一下 確定 以儲存並關閉擷取規則。
-
按一下 確定 以儲存並關閉要求。
若要將參數插入要求
-
選取第二個要求,然後再按一下 屬性 中 動作 窗格。
-
在 一般 索引標籤上按一下 插入參數。
-
在 字串 方塊中,刪除之後的所有文字 **www.bing.com/**。
-
游標會放置在 URL 結尾處,剛之後 www.bing.com, 、 選取 SearchString 中 參數 方塊,然後再按一下 插入。 這會插入變數 $ParametersContext/SearchString$。 在最終要求看起來類似下圖。
-
按一下 [確定] 關閉對話方塊。
-
按一下 確定 以儲存並關閉要求。 修改過的申請順序看起來應該類似下圖。
-
按一下 套用 以套用變更,然後關閉 Web 應用程式編輯器。