軟件測試中用VSTS進(jìn)行網(wǎng)站壓力測試
情境壓力測試即主體向被觀(guān)察者布置一定任務(wù)和作業(yè),借以觀(guān)察個(gè)體完成任務(wù)的行為。工作樣本測驗、無(wú)領(lǐng)導小組討論都可算作情境壓力測驗。
在軟件工程中,壓力測試是對系統不斷施加壓力的測試,是通過(guò)確定一個(gè)系統的瓶頸或者不能接收的性能點(diǎn),來(lái)獲得系統能提供的最大服務(wù)級別的測試。例如測試一個(gè) Web 站點(diǎn)在大量的負荷下,何時(shí)系統的響應會(huì )退化或失敗,F在的網(wǎng)絡(luò )游戲中也常用到這個(gè)詞匯。
網(wǎng)絡(luò )定義:
2009年9月7日下午,移動(dòng)公司開(kāi)商務(wù)車(chē)裝載200多部電信手機,在溫州某大學(xué)邊上不停撥打,導致電信網(wǎng)絡(luò )癱瘓。電信發(fā)現后連車(chē)帶人押送到公安局,在公安局,移動(dòng)自稱(chēng)沒(méi)有違法,只是幫電信做壓力測試。
“壓力測試”與俯臥撐、打醬油等詞匯一樣,成為網(wǎng)絡(luò )流行詞匯。
壓力測試、終端機性能功率、各項性能趨勢指標等。
VSTS提供了一個(gè)豐富、強大的工具平臺,融合了軟件開(kāi)發(fā)領(lǐng)域的各個(gè)角色,涵蓋軟件開(kāi)發(fā)生命周期的各個(gè)階段,包括設計,開(kāi)發(fā),測試,管理,而這一整套構件的融會(huì )貫通,讓它可以有效地改善軟件開(kāi)發(fā)過(guò)程中各個(gè)階段的弊端,提高團隊之間不同的角色的協(xié)調能力,提高工作效率。
本文就簡(jiǎn)單介紹一下如何利用VSTS給一個(gè)網(wǎng)站做壓力測試。
1 建立一個(gè)測試項目,起名MyTest
2 建立一個(gè)Web Test
點(diǎn)擊Web Test...
IE馬上就會(huì )彈出一個(gè)窗口,這樣錄制腳本工作就可以開(kāi)始了。
3 在IE里輸入要測試的網(wǎng)站地址: 比如 http://localhost/WebSite/Default.aspx
4 對該網(wǎng)站做一些操作, 此時(shí)VSTS會(huì )紀錄下你的這些操作,用以作為壓力測試的場(chǎng)景。
5 錄制腳本畢,點(diǎn)擊 "STOP"
6 點(diǎn)擊生成代碼,可以看到剛才錄制的類(lèi)似如下的代碼:
//------------------------------------------------------------------------------
// <auto-generated>
// This co
// Runtime Version:2.0.50727.42
//
// Changes to this file may cause incorrect beha
// the co
// </auto-generated>
//------------------------------------------------------------------------------
namespace MyTest
{
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.VisualStudio.TestTools.WebTesting;
using Microsoft.VisualStudio.TestTools.WebTesting.Rules;
public class WebTest1Coded : WebTest
{
public WebTest1Coded()
{
this.PreAuthenticate = true;
}
public override IEnumerator<WebTestRequest> GetRequestEnumerator()
{
WebTestRequest request1 = new WebTestRequest("http://localhost/WebSite/Default.aspx");
request1.ThinkTime = 1688;
ExtractHiddenFields rule1 = new ExtractHiddenFields();
rule1.ContextParameterName = "1";
request1.ExtractValues += new EventHandler<ExtractionEventArgs>(rule1.Extract);
yield return request1;
WebTestRequest request2 = new WebTestRequest("http://localhost/WebSite/Default.aspx");
request2.ThinkTime = 2;
request2.Method = "POST";
FormPostHttpBody request2Body = new FormPostHttpBody();
request2Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN1.__VIEWSTATE"].ToString());
request2Body.FormPostParameters.Add("Button1", "Go to Test Page");
request2Body.FormPostParameters.Add("__VIEWSTATEENCRYPTED", this.Context["$HIDDEN1.__VIEWSTATEENCRYPTED"].ToString());
request2Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN1.__EVENTVALIDATION"].ToString());
request2.Body = request2Body;
ExtractHiddenFields rule2 = new ExtractHiddenFields();
rule2.ContextParameterName = "1";
request2.ExtractValues += new EventHandler<ExtractionEventArgs>(rule2.Extract);
yield return request2;
WebTestRequest request3 = new WebTestRequest("http://localhost/WebSite/test.aspx");
request3.Method = "POST";
FormPostHttpBody request3Body = new FormPostHttpBody();
request3Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN1.__VIEWSTATE"].ToString());
request3Body.FormPostParameters.Add("Button1", "Go to default page.");
request3Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN1.__EVENTVALIDATION"].ToString());
request3.Body = request3Body;
yield return request3;
}
}
}
7 添加一個(gè)Load Test ...
8 填寫(xiě)好Load Test的各項參數
1) 第一步是填寫(xiě)場(chǎng)景名
2) 第二步是填寫(xiě)裝載的樣式
如果選擇一次裝載固定的用戶(hù)數,選擇第一項Constant Load
如果選擇"Setp Load",表示步增,設置好開(kāi)始時(shí)的用戶(hù)數,以及經(jīng)過(guò)多久每次增加的用戶(hù)數
3) Test Mix
4) Browser Mix
5) Network Mix
6) 在Counter Sets 選擇Add Compuer...,表示要對某個(gè)PC進(jìn)行監控
7) Run Settings
9 點(diǎn)擊Finish
10 點(diǎn)擊Run Test,測試就開(kāi)始了。
壓力測試運行后,我們就可以選中某個(gè)參數,查看某個(gè)時(shí)刻機器個(gè)方面的性能。參看下圖:
我們也可以運行perfmon,通過(guò)Performance查看機器的各項指標。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/