總結
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 | 從響應中提取所有的隱藏字段。 |
在上文中,我們講解了“Extract Hidden Fields”規則。本文將繼續講解其他提取規則。
例子
本文我們以一個Asp.net的例子講解其他規則,該例子參考了Advanced capability in Web Performance Test of VS2010一文。讀者可以在這里下載該例子的代碼。
這是一個簡單的計算器程序,提供4則運算。
我們設計Case如下:
1,計算 2+1=3;
2,循環計算,3+2=5,5+3=8,8+5=13 …
首先,我們進行錄制,錄制完成后,我們可以看到提交的表單包含參數如下:
根據我們設計的Case,除了2+1外,后面的計算我們需要提取Num1TextBox中的值填充在Num2TextBox中,把結果中的值提取出來填充在Num1TextBox中,再提交表單。
"Extract Attribute Value“提取規則
我們通過"Extract Attribute Value”規則從web響應中抽取Num1TextBox提取值:
屬性填充如下所示:
其中,Tag Name決定要提取的控件類型,Attribute Name決定要提取哪個屬性的值,Match Attribute Name和Match Attribute Value用控件的某個屬性的值進行匹配。
"Extract Text”提取規則
我們通過"Extract Text”規則從web響應中抽取ResultLabel的值:
屬性填充如下:
規則將提取Starts With和Ends With之間的文本。
綁定提取的參數
現在,我們已經為第一次提交的表單(也就是2+1=3)的響應添加了2條提取規則:
接下來,我們需要把規則提取的參數綁定到下一次表單的post參數中:
這時,執行case,就可以得到3+2=5。
添加循環
為了達到循環計算的效果,如計算3+2=5,5+3=8,8+5=13,13+8=21 ….需要添加一個循環:
為了對循環中的每次提交后的響應都進行提取,我們需要把之前添加的兩個規則拷貝到循環內的URL中,如上圖所示。
循環執行9次后的結果:
其他提取規則
"Selected Option"提取規則
在上面的例子中,如果我們希望在循環內,計算符號不使用硬編碼的“+”號,而是使用上次請求選中的符號,需要使用"Selected Option"提取規則,該規則將提取select控件當前選中的值,屬性配置如下:
其中,"Select Tag Name”是select控件的ID或Name。
"Extract Regular Expression"提取規則
上文中提取Result參數,如果我們使用正則表達式規則抽取會怎么樣呢? 如:
我們發現,抽取的Result值將會是"等於5。",而不是"5",並不適用上面的例子。
總結
目前為止,我們講解了5種取規則,剩下的幾種就不再一一介紹。下一講,我們將介紹如何使用自定義規則。
知平軟件致力於移動平台自動化測試技術的研究,我們希望通過向社區貢獻知識和開源項目,來促進行業和自身的發展。