Professional Documents
Culture Documents
Tai Lieu Huong Dan Selenium
Tai Lieu Huong Dan Selenium
2.4.1. Selenium-IDE
Selen-IDE l mi trng pht trin tch hp cho vic xy dng trng hp th
nghim Selenium. N hot ng nh mt trnh duyt Firefox add-on v cung cp mt
giao din d s dng pht trin v chy trng hp kim th c nhn, b kim tra
ton b. Selenium-IDE c mt tnh nng ghi li, s gi ti khon ca ngi s dng
khi chng c thc hin v lu tr chng nh l mt kch bn ti s dng pht s
dng. N cng c mt menu ng cnh (nhn chut phi) tch hp vi trnh duyt
Firefox, cho php ngi dng chn t mt danh sch xc nhn v xc minh cho cc v
tr chn. Selenium-IDE cng cung cp chnh sa y cc trng hp th nghim
cho chnh xc hn v kim sot.
Mc d Selen-IDE ch l mt Firefox add-on, cc kim th to ra trong n cng
c th c chy cho cc trnh duyt khc bng cch s dng Selenium-RC v ch
nh tn ca b ng dng th nghim trn dng lnh.
2.4.2. Selenium-RC (Remote Control)
Selen-RC cho php cc nh pht trin t ng ha kim tra s dng mt ngn
ng lp trnh cho tnh linh hot ti a v m rng trong vic pht trin logic th
nghim. V d, nu trnh ng dng tr v mt tp kt qu u vic kim tra, v nu
chng trnh th nghim t ng cn chy th nghim trn mi phn t trong tp hp
kt qu, h tr lp i lp li cc ngn ng lp trnh c th c s dng chuyn i
thng qua vic tp hp kt qu, ku gi Selenium lnh chy th nghim trn mi mc.
Selen-RC cung cp mt API (Application Programming Interface) v th vin
cho mi ngn ng c h tr: HTML, Java, C #, Perl, PHP, Python, v Ruby. Kh
nng s dng Selen-RC vi mt ngn ng lp trnh bc cao pht trin cc trng
hp th nghim cng cho php th nghim t ng c tch hp vi
mt d n xy dng mi trng t ng.
Chng 3. SELENIUM BASICS
Selenium Commands c 3 flavors : Actions, Accessors and Assertions.
Actions l cc lnh thao tc thng thng ca ng dng nh Click this link v
select that option . nu c 1 Action tht bi hoc c li, vic thc hin cc
thc thi hin ti dng li.
Nhiu Action c th c gi vi cc hu t AndWait e.g nh l
ClickAndWait ngha l hnh ng ny s lm cho brower gi server v
Selenium i ti 1 trang mi.
Accessors kim tra trng thi ca ng dng v lu tr cc kt qu trong cc
bin e.g storeTitle. Chng c gi t ng to ra Assertions.
Assertions nh l Accessors, nhng cng kim tra trng thi ca ng dng c
ph hp vi nhng g c mong i khng. Ex: nh m bo cc tiu
trang l X v xc nhn checkbox ny c kim tra.
Tt c Selenium Assertions c th dng trong 3 hnh thc: assert,verify,
waitFor. Ex: assertText, verifyText v waitForText. Khi 1 assert tht
2
bi, test c hy b. Khi verify tht bi, th test s tip tc thc thi, login
tht bi. N cho php assert m bo ng dng trn trang l chnh xc,
waitFor lnh ch i i vi mt s iu kin tr thnh hin thc (m c
th hu ch khi test cc ng dng Ajax). S thnh cng ngay lp tc nu iu kin ny
lun lun ng. Tuy nhin, s tht bi v ngn chn s kim tra nu iu kin khng
ng trong cc thit lp thi gian hin ti (xem cc hnh ng setTimeout di y).
3.1.
Script Syntax
Lnh Selenium rt n gin, chng bao gm cc lnh v 2 tham s. Ex:
verifyText
//div//a[2]
Login
Cc tham s khng phi lun lun cn thit, n ph thuc vo lnh. Trong mt s
trng hp yu cu c hai, mt s ch yu cu tham s , v mt s khc khng yu
cu c c hai
goBackAndWait
verifyTextPresent
Welcome To My Home Page
type
id = phone
(555) 666-7066
type
id = address1
${myVariableAddress}
Cc lnh tham chiu m t cc yu cu tham s cho mi lnh.
Thng s khc nhau, tuy nhin chng thng:
mt location xc nh mt yu t giao din ngi dng trong trang.
mt text pattern thm tra hoc khng nh trang ni dung d kin
mt text pattern hoc mt bin selenium nhp vn bn vo mt trng u vo
hoc chn mt ty chn t mt danh sch ty chn.
Selenium Accessors
Chng 4. SELENIUM-IDE
4.1.
Introduction
Cc Selen-IDE (Mi trng pht trin tch hp) l cng c bn s dng pht
trin cc trng hp kim th Selenium ca bn. N d s dng cho Firefox plug-in v
ni chung l cch hiu qu nht pht trin cc trng hp kim th. N cng cha
mt menu ng cnh cho php bn la chn u tin mt yu t giao din ngi dng
t cc trnh duyt hin ang hin th trang v sau chn t mt danh sch cc lnh
Selenium vi cc thng s c xc nh trc theo ng cnh ca phn t giao din
ngi dng la chn. iu ny khng ch tit kim thi gian, m cn l cch tuyt vi
hc c php lnh Selenium.
3
Log/Reference/UI-Element/Rollup Pane
4.3.1.
Log
Khi bn chy trng hp th nghim ca bn, thng bo li v thng bo thng
tin cho thy s tin b c hin th trong ca s ny s t ng, ngay c khi bn
khng u tin chn tab Log. Cc thng ip ny thng c ch g li trng hp
th nghim. Ch nt Clear xo ng nhp. Ngoi ra thng bo vo nt Info
l mt la chn th xung cho php ca cc cp khc nhau ca thng tin ng
nhp.
4.3.2. Reference
Th tham chiu l la chn mc nh bt c khi no bn nhp hoc thay i cc
lnh Selenese v cc thng s trong bng ch . Trong Bng ch , cc ca s s
hin th ti liu tham kho trn hin lnh. Khi nhp hoc sa i lnh, t Bng hoc
ch ngun, l quan trng m bo rng cc thng s quy nh ti cc mc tiu
v gi tr ph hp vi cc lnh vc quy nh trong danh sch tham s trong khung
Reference. S lng cc thng s c cung cp phi ph hp s quy nh, th t cc
tham s c cung cp phi ph hp vi trnh t quy nh, v loi cc thng s c
cung cp phi ph hp vi loi quy nh. Nu c s khng ph hp trong bt k ca
ba khu vc,lnh s khng chy ng.
4.3.3. UI-Element and Rollup
Thng tin chi tit trn hai tm (trong bao gm tnh nng nng cao) c th c
tm thy trong cc UIElement Ti liu trn menu Help ca Selen-IDE.
4.4. Building Test Cases
C ba phng php chnh cho cc trng hp th nghim pht trin. Thng
thng, mt nh pht trin th nghim s yu cu tt c ba k thut.
4.4.1. Recording
Nhiu ngi s dng ln u bt u bng cch ghi li mt trng hp th nghim
t s tng tc ca h vi mt trang web. Khi Selen-IDE l ln u tin m ra, nt ghi
licvtheomcnh.
Lu : iu ny c th c thit lp tt nh l mt mc nh vi mt
phn m rng ngi s dng c sn.
Trong qu trnh ghi, Selenium-IDE s t ng chn thm cc lnh vo trng hp
th nghim ca bn da trn hnh ng ca bn. Thng thng, iu ny s bao gm:
Click a link- click or clickAndWait commands
Nhp cc gi tr- type command
Selecting options from a drop-down listbox - select command
4
4.4.2.
Adding Verifications and Asserts With the Context Menu
Trng hp kim tra ca bn cng s cn phi kim tra cc thuc tnh ca mt
trang web. iu ny i hi khng nh v xc nhn lnh. Chng ti s khng m t
chi tit c th ca cc lnh ny y, l trong chng v "Selenese" Selenium lnh.
y chng ti ch n gin l s m t lm th no thm chng vo trng hp
th nghim ca bn.
Vi Selen-IDE ghi m, i vo cc trnh duyt hin th cc ng dng th nghim
ca bn v kch chut phi vo bt c ni no trn trang. Bn s thy mt hin th
menu ng cnh xc minh v / hoc khng nh lnh.
Ln u tin bn s dng Selenium, c th ch l mt trong Selenium lnh c lit
k. Khi bn s dng cc IDE tuy nhin, bn s tm thy lnh b sung s nhanh chng
c b sung vo trnh n ny. Selen-IDE s c gng d on nhng g lnh, cng
vi cc thng s, bn s cn phi c mt yu t giao din ngi dng c la chn
trn trang web hin nay.
Hy xem cch lm vic ny. M trang web la chn ca bn v chn mt khi vn
bn trn trang web. Mt on vn hoc mt nhm s lm vic tt. By gi, kch chut
phi vo vn bn chn. Cc menu ng cnh s cho bn mt lnh verifyTextPresent
v tham s c xut phi c vn bn chnh n.
Ngoi ra, thng bo Show All Available Commands menu option. iu ny cho
thy nhiu, rt nhiu lnh hn, mt ln na, cng vi cc thng s xut, th
nghim cc phn t hin ang c chn giao din ngi dng ca bn.
Hy th mt vi yu t giao din ngi dng hn. Hy th kch chut phi vo mt
hnh nh, hoc kim sot mt ngi s dng nh button hoc checkbox. Bn c th
cn phi s dng Show All Available Commands c sn xem cc ty chn khc hn
verifyTextPresent. Mt khi bn chn cc ty chn khc, nhng ngi thng c s
dng s hin th trn menu ng cnh chnh. V d, chn verifyElementPresent cho hnh
5
nh sau s gy ra lnh c sn trn menu ng cnh chnh thi gian tip theo bn
chn mt hnh nh v kch chut phi.
Mt ln na, cc lnh ny s c gii thch chi tit trong chng lnh Selenium.
by gi, mc d cm thy min ph s dng IDE ghi li v chn cc lnh vo
mt trng hp th nghim v sau chy n. Bn c th tm hiu rt nhiu v
Selenium cc lnh n gin bng cch th nghim mc d cc IDE.
4.4.3. Editing
4.5.
iu kin bo co
Bc lp
ng nhp v kt qu bo co kim th
Error handling, particularly unexpected errors(li c bit bt ng)
Kim tra database
Nhm test case
Thc hin li cc kim th khng thnh cng
Nhng test case ph thuc
Chp nh ca nhng kim th c li
Name
server (attribute)
port (attribute)
defaultBrowser
(attribute)
BrowserUrl
(attribute)
factoryType
addin (element)
runtime (element)
browsers (element)
userExtensions
(element)
5.3.
Description
Server name of the
Selenium RC host
Port number of the
Selenium RC host
Selenium browser
profile to use
Base url for all
selenium tests
Default Value
localhost
Required
false
4444
false
*iexplore
false
null
Type of factory
object used to
create custom
ISelenium instances
- if not supplied, a
default factory is
used (added 0.81)
NUnit addin
settings
Configuration
settings for
Selenium-RC
process
Custom browser
aliases
Custom javascript
extensions
null
default
false
default
false
default
false
null
false
Installation
java version
/
q
btnG
Results * for selenium rc
selenium rc
namespace SeleniumTests
{
[TestFixture]
public class Untitled 3
{
private ISelenium selenium;
private StringBuilder verificationErrors;
[SetUp]
public void SetupTest()
{
selenium = new DefaultSelenium("localhost", 4444, "*chrome",
"http://www.google.com.vn/");
selenium.Start();
verificationErrors = new StringBuilder();
}
[TearDown]
public void TeardownTest()
{
10
try
{
selenium.Stop();
}
catch (Exception)
{
// Ignore errors if unable to close the browser
}
Assert.AreEqual("", verificationErrors.ToString());
}
[Test]
public void TheUntitled 3Test()
{
selenium.Open("/");
selenium.Type("q", "");
selenium.Click("btnG");
selenium.WaitForPageToLoad("30000");
Assert.IsTrue(selenium.IsTextPresent("Results
* for selenium rc"));
selenium.Type("q", "ao da nu");
selenium.Click("link=o D thi trang 2010 Hng t/ order - Thi trang N | nBc.com");
selenium.WaitForPageToLoad("30000");
selenium.Click("//table[@id='table1633']/tbody/tr[2]/td[2]/font/a/fo
nt");
selenium.WaitForPageToLoad("30000");
selenium.Click("//table[@id='table1815']/tbody/tr[2]/td[2]/font/a/sp
an/font");
11
selenium.WaitForPageToLoad("30000");
selenium.Click("//table[@id='table1815']/tbody/tr[6]/td[2]/font/a/sp
an/font");
selenium.WaitForPageToLoad("30000");
selenium.Click("//table[@id='table1815']/tbody/tr[3]/td[5]/font/a/sp
an/font");
selenium.WaitForPageToLoad("30000");
selenium.Click("//table[@id='table1820']/tbody[2]/tr[2]/td/div[1]/fo
nt/a/img");
selenium.WaitForPageToLoad("30000");
selenium.Click("//table[@id='table1425']/tbody[2]/tr[4]/td/div[1]/a/
img");
selenium.WaitForPageToLoad("30000");
selenium.Click("//table[@id='table1420']/tbody/tr[9]/td[2]/strong/sp
an/a/font/span");
selenium.WaitForPageToLoad("30000");
selenium.Click("//table[@id='table2643']/tbody/tr[6]/td[2]/font/b/fo
nt/a/span/font");
selenium.WaitForPageToLoad("30000");
}
}
}
Chng 6. NUnit
NUnit l mt framework n v kim nghim cho tt c cc ngn ng
Net.. Ban u c chuyn t JUnit, phin bn sn xut hin nay, phin bn
2.5, l bn th su chnh pht hnh cng c ny da trn th nghim xUnit n
v cho Microsoft. NET. N c vit hon ton bng C # v c hon ton
thit k li tn dng nhiu tnh nng ngn ng NET,. cho cc thuc tnh ty
chnh v kh nng phn x v d khc lin quan. NUnit mang xUnit cho tt c
ngn ng NET
Th nghim thnh cng l mu xanh, vi mt du. Cc xt nghim m s
c b qua c nh du bng mt vng trn mu vng, c cha mt du
hi. Nu bt k th nghim tht bi, h s c nh du mu , vi mt
biu tng-X.
Success l du tch mu xanh
Failure l du cho mu
Ignored(b qua) l du hi mu xm
13
Inconclusive(khng i n kt lun) l du hi mu tm
Skipped(nhy,b) l mu xm
Tab Test Not Run cung cp mt danh sch tt c cc xt nghim c chn
chy nhng khng chy, cng vi cc l do.
Chng 6. SELENIUM COMMANDS
6.1.
Assertion or Verification?
Assertion s khng kim tra v hy b cc trng hp th nghim hin ti
Verify s khng kim tra v tip tc chy cc trng hp th nghim.
6.2.
VerifyTextPresent
VerifyTextPresent c s dng xc nhn vn bn c th tn ti mt ni no
trn trang. S dng verifyTextPresent khi bn quan tm n vn bn ch c bn thn c
mt trn trang. Khng s dng khi bn cng cn phi kim tra vn bn, ni xy ra trn
trang.
To ra t isTextPresent (pattern)
i s:
* pattern - mt m hnh ph hp vi cc vn bn ca trang
Tr v:
ng nu m hnh ph hp vi vn bn, false nu khng
Xc nhn rng cc mu vn bn quy nh xut hin u trn cc trang kt xut
c hin th cho ngi dng.
6.3. verifyElementPresent
To ra t isElementPresent (locator)
i s:
* locator - mt yu t locator
Tr v:
true nu phn t l hin nay, false nu khc
Xc nhn rng cc yu t quy nh l mt ni no trn trang.
S dng lnh ny khi bn phi kim tra s hin din ca mt yu t giao din
ngi dng c th, hn l ni dung ca n. Xc minh ny khng kim tra cc vn bn,
ch c cc tag HTML. Mt thng thng s dng l kim tra s hin din ca mt
hnh nh.
14
6.4.
verifyText
S dng verifyText khi c vn bn v giao din phn t ca n phi c kim tra.
verifyText phi s dng locator. Nu bn chn mt XPath hoc DOM locator, bn c
th verrify rng vn bn c th xut hin ti mt a im c th trn trang web lin
quan n cc thnh phn UI trn trang.
Command
verifyText
target
//table/tr/td/div/p
Value
This is my text and it
occurs right after the div
inside the table.
Locating Elements
6.5.1.
Locating by XPath
XPath l ngn ng c s dng nh v cc nt trong mt ti liu XML. Nh
HTML c th l mt thc hin ca XML (XHTML), Selenium ngi dng c th tn
dng ngn ng ny mnh m nhm mc tiu cc thnh phn trong cc ng dng
web ca h. XPath m rng hn (cng nh h tr) cc phng php n gin ca cc
v bi thuc tnh id hoc tn, v m ra tt c cc loi kh nng mi nh nh v cc
hp kim th ba trn trang.
15
16