2009-08-11 12 views
7

Mam zapytanie W naszej aplikacji mamy wiele znaczników HTML. Podczas rozwoju wiele tagów nie otrzymało żadnego identyfikatora ze względu na brak wymagań. Teraz zespół QA chce zautomatyzować przypadki testowe za pomocą QTP. W większości przypadków to narzędzie nie rozpoznaje, ponieważ nie znajduje identyfikatorów dla większości tagów HTML. Teraz jesteśmy proszeni o dodanie identyfikatorów do wszystkich tagów HTML. Chcę się dowiedzieć, czy będzie jakiś efekt dodający atrybut id do tych tagów. Nawet pozytywny wpływ jest mile widzianyDodawanie identyfikatorów do znaczników HTML do automatyzacji kontroli jakości

+1

Duplikat: http://stackoverflow.com/questions/1230738/how-can-i-automatically-validate-at-i-have-an-html-id-on-every-element – NickFitz

+0

Dodaj znaczniki "automatic- testy "," gui-automatyzacja " –

Odpowiedz

4

Nie sądzę, że będzie jakikolwiek efekt pozytywny lub negatywny: może rozmiar strony HTML wzrośnie nieco, ale prawdopodobnie nie tak dużo.

Nadal jesteś pewien, że musisz umieścić atrybuty "id" na każdym tagu HTML swoich stron? Czy nie wystarczyłoby tylko kilka? Podobnie jak w polach formularza, w linkach, w komunikatach o błędach; i to prawdopodobnie o tym?

Jedną rzeczą, którą należy zachować, jest to, że "id", jak w "identyfikatorach", musi być unikatowe; co oznacza, że ​​przed dodaniem ich może być dobrze, aby zdefiniować jakąś "id-politykę", na przykład, że "ids dla tego rodzaju elementów powinny być nazwane w ten sposób".

A dla kolejnych projektów: mieć developpers dodać tych, kiedy theyr're rozwijająca ;-)
(a po politykę, oczywiście)


Teraz, gdy myślę o tym : pozytywny efekt może polegać na tym, że łatwiej będzie napisać kod JavaScript interakcyjny z dokumentem HTML - ale będzie to prawdą dla następnych projektów lub ewolucji dla tego, kiedy te id są już obecne w kodzie HTML w tym czasie programistów umieścić kod JS w miejscu ...

+1

+1 dla musi być unikatową notatką. Byłem zszokowany, gdy znalazłem wielu programistów, którzy wierzyli, że jest to "tylko wytyczna" i że duplikaty są w porządku. Próbowałem doradzić, ale wydaje się, że i tak żeglują Titanica. – scunliffe

1

Jeśli mówisz o efektach ubocznych - NIE. Dodanie identyfikatorów nie spowoduje żadnych problemów (poza oczywiście dodatkowymi bajtami).

Jeśli naprawdę potrzebujesz dodać identyfikatory, dodaj je.

0

http://www.w3.org/TR/html4/struct/links.html#anchors-with-id mówi:

Atrybuty id i name mają tę samą przestrzeń nazw. Oznacza to, że nie mogą jednocześnie zdefiniować kotwicy o tej samej nazwie w tym samym dokumencie. Dopuszczalne jest użycie obu atrybutów w celu określenia niepowtarzalnego identyfikatora elementu dla następujących elementów: A, APPLET, FORM, FRAME, IFRAME, IMG i MAP. Gdy oba atrybuty są używane w pojedynczym elemencie, ich wartości muszą być identyczne.

4

Ponieważ nie ma jeszcze odpowiedzi związanych z QTP.

Rozpoznawanie GUI w QTP jest obiektowe. Aby zidentyfikować obiekt, protokół QTP wymaga unikalnej kombinacji właściwości obiektu i sprawniejszego sprawdzania, czy są one tak szybkie, jak to możliwe - dlatego identyfikator HTML byłby idealny.

Teraz, gdy jest to szczególnie ważne - w przypadku obiektów, które nie mają innych niepowtarzalnych identyfikatorów. Najbardziej typowy przykład - tabele html. Ich zawartość jest dynamiczna, ich liczba na stronie może się różnić. Dodając identyfikator HTML, pozwalasz mechanizmowi rozpoznawania przechodzić bezpośrednio do właściwej tabeli.

Obiekty o innych wyjątkowych właściwościach można rozpoznać również bez identyfikatora HTML. Na przykład, jeśli masz jedno łącze "prześlij" na stronie, QTP z powodzeniem rozpozna je po tekście wewnętrznym.

Tak więc odpowiedź kontekstowa: nie zaczynaj dodawać identyfikatorów do każdego tagu.Poproś facetów zajmujących się automatyką, aby przygotowali listę przedmiotów, z którymi mają problem. I dodaj identyfikatory do tych obiektów.

PS. Zależy to również od umiejętności programowania automatyzacji. Istnieją opisowe metody programowania i dynamicznego rozpoznawania. Pozwalają na wyszukanie właściwych obiektów nawet bez dostarczonych identyfikatorów.

2

Jak Albert powiedział QTP nie polegać wyłącznie na elementy id, w rzeczywistości ze względu na fakt, że wiele aplikacji internetowych generować różne id s dla każdej sesji (o ile pamiętam) nieruchomość nie jest id część domyślnego opisu większości internetowych obiektów testowych.

QTP jest całkiem niezłe w rozpoznawaniu najprostszych mechanizmów sterowania w Internecie i jeśli napotykasz problemy, może się zdarzyć, że projekt Web Extensibility pomoże ci wypełnić lukę między semantyką twojej aplikacji internetowej i nieprzetworzonym HTML, który jest tworzony in. Jeśli kompleksowa kontrola jest rozpoznawana przez QTP jako WebElement (która jest w rzeczywistości div, która zawiera span, która steruje kodem), to zrozumiałe jest, że masz problemy z rozpoznawaniem obiektów, ponieważ istnieje wiele div s na stronie, ale prawdopodobnie o wiele mniej kompleksów kontroluje.

Powiązane problemy