總結
Visual Studio的Web Performance Test是基於HTTP協議層的,它不依賴於瀏覽器,通過直接接收,發送HTTP包來和Web服務器交互。Web Performance Test發送和接收的一系列請求和響應之間存在相關性,例如,用戶登錄后,SID被傳遞給客戶端,下一次請求時,需要把SID發送到服務器。因此,Web Perfomance Test 定義了多種提取規則,幫助從服務器響應中提取信息,用於之后的請求。或者保存起來,作為測試結果的一部分。
Web Performance Test提供多種提取規則,以下表格來自MSDN:
提取規則的類型 | 說明 |
Selected Option | 提取列表或組合框中的選定文本。 |
Tag Inner Text | 從指定的 HTML 標記中提取內部文本。 |
Extract Attribute Value | 從指定的 HTML 標記中提取特性的值。 有關以下內容的更多信息使用提取特性值規則的更多信息,請參見演練:向 Web 性能測試添加驗證規則和提取規則。 |
Extract Form Field | 提取響應中指定窗體字段的值。 |
Extract HTTP Header | 提取 HTTP 標頭的值。 |
Extract Regular Expression | 從與正則表達式相匹配的響應中提取文本。 |
Extract Text | 從響應中提取文本。 |
Extract Hidden Fields | 從響應中提取所有的隱藏字段。 |
如何添加提取規則
在完成Web Performance Test錄制后(Visual Studio進行Web性能測試系列有提到),右鍵點擊一條記錄,選擇 “Add Extraction Rule”:
“Add Extraction Rule”對話框將被打開:
然后,我們可以通過完成其屬性的方式來添加規則。
那么,怎么如何知道從哪里提取參數,要提取哪些參數呢?我們前面講過,從Web請求的響應中提取。 錄制完成后,我們需要先運行測試一遍,然后,我們查看測試結果:
打開Reponse標簽,我們可以看到HTTP響應的內容,包括Headers和Body,從中,我們可以觀察需要提取哪些參數,作為接下來的請求或者結果分析使用。
本系列的第一部分我們先介紹“Extract Hidden Fields”規則。
Extract Hidden Fields規則
“Extract Hidden Fields”是最重要的一條規則,因為提交的請求中許多重要的表單字段都是保存在Hidden Fields中的,例如asp.net的“__VIEWSTATE”等。
自動抽取與綁定
在默認配置下,Web Performance Test將自動添加“Extract Hidden Fields”規則,並且自動綁定提取的參數到請求上。我們可以通過Tools –> Options –> Test Tools –> Web Test中的“Automatically extract and bind hidden fields”來配置是否要自動抽取和綁定隱藏的字段。
手動添加規則
雖然我們可以通過VS自動添加該規則,但是我們還是來看看如何手動添加它:
該規則只有3個屬性:
Context Parameter Name:參數名,我們可以簡單的命名為“1”,那么實際的參數名為“$HIDDEN1”。
Required:當Required為True時,如果沒有抽取到任何隱藏字段,抽取規則失敗。
Html Decode:指示在放入 Web 測試上下文中之前提取的值是否應進行 HTML 解碼。
手動綁定
在手動添加了“Extract Hidden Field”規則后,我們在需要把提取的參數綁定到請求的post或get參數中。
選擇”QueryString Parameters”或者”Form Post Parameters”中的一個參數,右鍵點擊,選擇Properties
在Properties面板中,把Value值從錄制產生的硬編碼替換為{{$HIDDEN1.dsh}},dsh為隱藏字段的字段名。
知平軟件致力於移動平台自動化測試技術的研究,我們希望通過向社區貢獻知識和開源項目,來促進行業和自身的發展。