Ma olen alates Visual Studio 2008 välja tulemise ajast tegelenud ka Visual Studio Web Testidega, mis on kasulikud veebilehe kasutajapoolseks usecase -i testimiseks (ehk siis minek lehele ja vaadata, kas tuleb vastu lehekülg/vastus, mis on aktsepteeritav).
Visual Studio Web Testid on HTTP kihil toimivad testid, mis võimaldavad teha päringuid (GET, POST) kindla veebisaidi vastu. Visual Studio -l on Web Testide kirjeldamise abistamiseks loodud salvestaja (WebTest Recorder), mis jookseb IE -s ja võimaldab salvestada kõik Requestid. Web Teste on võimalik peale salvestamist korduvalt jooksutada. Web Teste saab ka kasutada Visual Studio Load Testide juures ja teha koormusteste veebirakendusele, pannes Web Testid jooksma kuni 1000 kasutaja alt samaaegselt ja jälgides serveri performance countereid ning tracida SQL -i andmebaasi käitumist.
Aga mu postituse eesmärk ei ole hetkel jagada teiega detailset informatsiooni Web Testide või Load Testide kohta. Kui suurt huvi üles näidatakse, siis heameelega teen ka seda. Seni leiate aga lisainfot järgnevatelt aadressidelt:
Hetkel soovin teiega hoopis jagada ühte hästi lihtsalt lisa (ExtractionRule -i), millest kohe alguses puudust tundsin ja vajalikuks pidasin. Nimelt üks elementaarne asi, mida Web Testide kasutaja võiks soovida on see, et eelmise requesti querystringist võtta parameetrite väärtusi ja kasutada järgmistes requestides. Kujutage ette olukorda, kus teil on uue itemi lisamise vorm ja peale submit vajutamist luuakse item ning suunatakse uuele lehele, millel on urli parameetrite hulgaks ka uue Itemi ID. Te soovite ju, et uue itemi lisamist testides, teil oleks dünaamiliselt tekkinud ID -d kasutusel (te ei saa seda ette spetsifitseerida).
Selleks, et eelnevalt requestilt järgneva jaoks midagi korjata ongi olemas ExtractionRule -d, mida võib igaüks endale alati luua. Mina tegin endale QueryString -ist kindla parameetri extractija :)
ExtractionRule -i kood asub siin.
Peate antud koodi lisama oma Web Testide projekti või siis eraldi class library -sse ning peale build -imist saate lisada requestile extraction rule.
Antud Extraction Rule -l on olemas kaks parameetrit - üks contextis hoidmise nimetus (see millega teie järgmistes requestides väärtusele ligi lähete) ning urli parameetri nimetus.
Kõrval järgneb siis illustreeriv näide insert ja View requesti kohta, kus Inserti requestilt extractitakse ID parameeter. Kusjuures, te ei näe seda ID parameetrit antud insert.aspx -i QueryString loetelus, kuna tegu on postitamise päringuga ja tulemusena suunatakse uuele vormile (Response.Redirect), milleks on View.aspx ja sellel on urlis parameeter ID. Meie soovime järgmisel requestil seda ära kasutada (PS! Antud näite requesti QueryString, Form Post parameetrid on fiktiivsed).
Web Testidele on võimalik luua mitmel erineval tasemel laiendusi - WebTestPlugin (testi tase), WebTestRequestPlugin (requesti tase), ExtractionRule, ValidationRule (WebTest -i tulemuse valideerimine). Nende implementeerimine ei ole tihti peale raske ja on päris võimsad vahendid oma soovide saavutamisel.