DescriptQTP/UFT programozás: dinamikus és statikus
Mi a Descriptive programozás?
DescriptAz ive programozás az AUT-ban lévő olyan objektumon történő műveletek végrehajtására szolgál, amelyek definíciója nincs tárolva az objektumtárban. Ezzel a mechanizmussal megkerülheti az objektumtárból történő azonosítást, és megadhatja az objektumot Description magában a nyilatkozatban.
Az objektumnevet egyszerűen arra használjuk, hogy leképezzünk egy objektumot szkriptben és annak leírását egy objektumtárban. Ez azt jelenti, hogy ha megváltoztatja az objektum nevét a szkriptben és az objektumtárban, a szkriptnek futnia kell. Nézze meg a következő videót erről a koncepcióról
Kattints itt ha a videó nem érhető el
Videó Highlights
- Törölje az objektumot DescriptAz Ügynöknév Win Edit ionja Box az Objektumtárból. Ha újra futtatja a tesztet, az sikertelen lesz, mivel nem ismeri fel az objektumot. Vizsgáljuk meg a szkript meghibásodásának okát
- Futás közben a Micro Focus UFT azonosítja a WinEdit dobozon és az objektumon végrehajtott műveletet DescriptAz Object Repository-ban lévő ion ügynöknévként van tárolva. Ezt a nevet használja az objektum nyomon követésére egy objektumtárban. Egy szülő esetében nem lehet két azonos nevű gyermekobjektum. Ezért a QTP egyedileg leképezi az objektumot a tárolóban. Ezután az objektumtárban tárolt leírást használja, és a nevet lecseréli a leírásra. Ezután ezt az utasítást használja az objektum azonosítására a tesztelt alkalmazásban
- Mivel esetünkben ezt az objektumleírást teljesen töröltük, a szkript meghibásodik
- De mi van akkor, ha ahelyett, hogy a QTP lecserélné az objektumleírást, tesztelőként közvetlenül adja meg az objektumleírásokat a szkriptben. Ez nem más, mint "Descriptive programozás”
Típusok Descriptive programozás
Használhatja Descriptkétféleképpen lehet programozni
- Statikus
- Dinamikus
Statikus Descriptive programozás
A Statikus metódusban az objektum azonosításához a következő formátumban adja meg az objektum tulajdonságait
property:=values,
Ezt a formátumot tulajdonságérték párnak nevezik, és fordított vesszők közé zárjuk
Ha az objektum használja több leírást is megadhat az azonosításhoz, ezeket vesszővel adhatja meg
Így esetünkben az Ügynöknév leírása lesz
"nativeclass:=Edit", "attached text:=Agent Name:"
Dinamikus Descriptive programozás
Ugyanennek a műveletnek a második módja a dinamikus Descriptive programozás
Abban az esetben, ha a szkript többször használja a leíró programozási objektum jelöltet, nagyon fárasztó lesz az összes tulajdonságérték pár megadása minden utasításhoz.
Ilyen esetekben használhatja Description osztály a QTP biztosítja
A szintaxis leírás objektum létrehozásához az
Set MyDescription = Description.Create(); MyDescription("property").Value = "property-value";
Ez a Dinamikus módszer
Miért használja Descriptive programozás?
Videó átirat
- A millió dolláros kérdés az, hogy miért használjunk DP-t, amikor az objektum azonosítási folyamatot QTP kezeli
- Tegyük fel, hogy egy állásportál tesztelésére van kijelölve. Beír egy keresési lekérdezést a portálba és
- a teszt azt várja, hogy kiválassza az összes elérhető állást .és kattintson az állás alkalmazására
- De a megjelenített munkák száma a keresési lekérdezéstől és a szkript végrehajtása idején elérhető munkáktól függ, de nincs mód előre megjósolni a tükröződő munkák számát
- Ilyen esetekben használhat leíró programozást. Annak ellenére, hogy nem ismeri a jelölőnégyzetek számát és nevét, ismeri az objektumok osztályát „WebCheckBox"
- Használhatja a ChildObject módszer adott szülőhöz tartozó objektumok visszaadására
- Egy kódsor, mint például
Set allObjects = Browser("Jobs").Page("QTP").ChildObjects()
- Visszaadja az oldal összes gyermekobjektumát.
- De mi csak a WebChecket akarjukBox tárgyakat. Ehhez létrehozhatunk egy szűrőlétrehozási objektumot, és beállíthatjuk a tulajdonságát webként jelölőnégyzetet, és átadhatjuk ezt a szűrőt argumentumként a ChildObjects metódushoz.
- Ebben az esetben csak a jelölőnégyzetek jelennek meg.
- Ezután írhat egy ehhez hasonló kódot, amely hozzáfér a jelölőnégyzetek teljes gyűjteményéhez nullától kezdve, és az összes jelölőnégyzetet BE kapcsolja.
- Ezután kattintson az Alkalmaz gombra a teszt befejezéséhez
- Ön is használja Descriptive Programozás nehezen rögzíthető objektumok futtatására, például panelek automatikus elrejtése, változó hierarchiával rendelkező objektumok, egymásba ágyazott belső objektumok, almenük.
- Speciális karakterlánc-manipulációkat is végezhet leíró programozás segítségével
- Az indextulajdonságokkal együtt a leíró programozás nagyon hasznos lehet a nehéz objektumok azonosításában.
- Ha programozott leírást használ egy objektum hierarchiájában, akkor a következő utódobjektumokhoz leíró programozást kell használnia
- Például az oldalobjektumhoz leíró programozást használtak, de a következő utódobjektumhoz a WinEdit Object Repository került felhasználásra, ami helytelen
- Éppen ellenkezőleg, itt mind a Page, mind a WinEdit esetében leíró programozást használunk, ami helyes