Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Функциональные тесты на Perl

1,052 views

Published on

Обзор возможностей Perl, касающихся написания функциональных тестов для веб-приложений.

Published in: Education
  • Be the first to comment

  • Be the first to like this

Функциональные тесты на Perl

  1. 1. Функциональные тесты на PERL Зиненко Артём Воркшоп Perlburg-2012 Екатеринбург, 2012 Зиненко Артём Функциональные тесты на PERL
  2. 2. Win32::OLE #! / u s r / b i n / p e r l u s e Win32 : : OLE ; my $ I E = Win32 : : OLE−>new ( ’ I n t e r n e t E x p l o r e r . A p p l i c a t i o n ’ , " Quit " ) or die . . . ... $IE−>N a v i g a t e ( " h t t p : / / m a i l . r u " ) ; ... my $Doc = $IE −>{Document } ; my $ f o r m s = $Doc−>{f o r m s } o r d i e . . . my $form = $ fo rm s −>i t e m ( " a u t h " ) o r d i e . . . my $ e l e m e n t s = $form −>{e l e m e n t s } o r d i e . . . my $ l o g i n = $ e l e m e n t s −>i t e m ( " m a i l b o x _ _ l o g i n " , 0 ) o r d i e . . . my $ p a s s = $ e l e m e n t s −>i t e m ( " mailbox__password " , 0 ) o r d i e . . . my $ s u b m i t = $ e l e m e n t s −>i t e m ( " mailbox__submit__button " , 0 ) or die . . . $ l o g i n −>{v a l u e } = " p e r l b u r g 2 0 1 2 " ; $ p a s s −>{v a l u e } = " p e r l b u r g 2 0 1 2 p e r l b u r g 2 0 1 2 " ; $ s u b m i t −> c l i c k ; Зиненко Артём Функциональные тесты на PERL
  3. 3. Win32::Watir #! / u s r / b i n / p e r l u s e Win32 : : W a t i r ; my $ i e = Win32 : : W a t i r : : new ( v i s i b l e => 1 , m a x i m i z e => 1 , ); $ i e −>got o ( " h t t p : / / m a i l . r u " ) ; $ i e −>t e x t _ f i e l d ( ’ i d : ’ , " m a i l b o x _ _ l o g i n ")−> v a l u e ( " p e r l b u r g 2 0 1 2 " ) ; $ i e −>t e x t _ f i e l d ( ’ i d : ’ , " mailbox__password ")−> v a l u e ( " perlburg2012perlburg2012 " ); $ i e −>b u t t o n ( ’ i d : ’ , " mailbox__submit__button ")−> c l i c k ; Зиненко Артём Функциональные тесты на PERL
  4. 4. WWW::SeleniumАрхитектура Зиненко Артём Функциональные тесты на PERL
  5. 5. WWW::SeleniumПример #! / u s r / b i n / p e r l u s e W W: : S e l e n i u m ; W my $ s e l = W W: : S e l e n i u m −>new ( W h o s t => " l o c a l h o s t " , p o r t => 4 4 4 4 , b r o w s e r => " ∗ f i r e f o x " , b r o w s e r _ u r l => " h t t p : / / m a i l . r u " ) ; $ s e l −>s t a r t ; $ s e l −>open ( " h t t p : / / m a i l . r u " ) ; $ s e l −>s e t _ s p e e d ( " 1000 " ) ; $ s e l −>t y p e ( " m a i l b o x _ _ l o g i n " , " p e r l b u r g 2 0 1 2 " ) ; $ s e l −>t y p e ( " mailbox__password " , " p e r l b u r g 2 0 1 2 p e r l b u r g 2 0 1 2 " ) ; $ s e l −> c l i c k ( " mailbox__submit__button " ) ; $ s e l −>wait_for_page_to_load ( 1 0 0 0 0 ) ; $ s e l −>s t o p ; Зиненко Артём Функциональные тесты на PERL
  6. 6. Selenium::Remote::Driver #! / u s r / b i n / p e r l u s e S e l e n i u m : : Remote : : D r i v e r ; my $ d r i v e r = new S e l e n i u m : : Remote : : D r i v e r ( ’ browser_name ’ => ’ f i r e f o x ’ ) ; $ d r i v e r −>g e t ( ’ h t t p : / / m a i l . r u ’ ) ; my $ l o g i n _ i n p u t = $ d r i v e r −>f i n d _ e l e m e n t ( ’ m a i l b o x _ _ l o g i n ’ , ’ id ’ ); $ l o g i n _ i n p u t −>s e n d _ k e y s ( ’ p e r l b u r g 2 0 1 2 ’ ) ; my $ p a s s w o r d _ i n p u t = $ d r i v e r −>f i n d _ e l e m e n t ( ’ mailbox__password ’ , ’ id ’ ); $ p a s s w o r d _ i n p u t −>s e n d _ k e y s ( ’ p e r l b u r g 2 0 1 2 p e r l b u r g 2 0 1 2 ’ ) ; my $ s u b m i t _ b u t t o n = $ d r i v e r −>f i n d _ e l e m e n t ( ’ mailbox__submit__button ’ , ’ id ’ ); $submit_button −> c l i c k ( ) ; $ d r i v e r −>q u i t ( ) ; Зиненко Артём Функциональные тесты на PERL
  7. 7. Конец Вопросы? mailto:zinenkoartem@gmail.com Зиненко Артём Функциональные тесты на PERL

×