Django рдФрд░ рд╕реЗрд▓реЗрдирд┐рдпрдо рдПрдХреАрдХрд░рдг



рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред

рдпрд╣ рдХреЛрдИ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрджрдо рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдмрд╕ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рд╕реЗрд▓реЗрдирд┐рдпрдо рдЬреИрд╕рд╛ рдЙрдкрдХрд░рдг рдореМрдЬреВрдж рд╣реИред рдЬрд╛рдиреА-рдорд╛рдиреА рдХрдВрдкрдирд┐рдпрд╛рдВ SKB Kontur рдФрд░ Yandex рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕реЗ рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рд╣реИ (Yandex рдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ YaC рдкрд░ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА)ред

рдЕрдм рдмрд╛рдд рд╣реИред
рдЬрд┐рди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдореИрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ, рд╣рдордиреЗ рд╕реЗрд▓реЗрдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╣рд▓реА рд╢рд╛рдЦрд╛ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рд╕рдордп рдЕрднреА рднреА рдЦрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ, рд╕реЗрд▓реЗрдирд┐рдпрдо 2.0, рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░ рддрдХрдиреАрдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдШрдЯрдирд╛рдУрдВ рдХреА рдирдХрд▓ рдХрд░рддрд╛ рд╣реИ ( рд▓рд╛рднреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ )ред

рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рдЕрдВрджрд░ рдкреБрд░рд╛рдиреЗ рд╕реЗрд▓реЗрдирд┐рдпрдо рд╕рдкреЛрд░реНрдЯ рдХреЛрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЗрд╕реЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛?), рдФрд░ рдпрд╣ рднреА рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рддреБрд░рдВрдд рд╕реЗрд▓реЗрдирд┐рдпрдо рдХреЛ рдПрдХ рдЕрд▓рдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдЖрдЧреЗ, рдореИрдВ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдХрд┐ рд╣рдордиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред

рд╕реНрдерд╛рдкрдирд╛


рдкреБрд╕реНрддрдХрд╛рд▓рдп https://github.com/dragoon/django-selenium рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдкрд╛рдЗрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
pip install django-selenium 

рдЕрд╡рд╕рд░реЛрдВ


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдкрдХреЛ django рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЖрдк рдпрд╛ рддреЛ рдмрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ TestRunner рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 TEST_RUNNER = 'django_selenium.selenium_runner.SeleniumTestRunner' 
рдпрд╛ рдЗрд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛рдПрдВ рдФрд░ рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рд▓рд┐рдЦреЗрдВред
рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ, рд╕реЗрд▓реЗрдирд┐рдпрдордЯреЗрд╕реНрдЯ рд░рдирд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░рддрд╛ рд╣реИ:
рдЕрдЧрд▓рд╛, рд╕реЗрд▓реЗрдирд┐рдпрдо рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдЯреЗрд╕реНрдЯрд╢реЛ рдХреЗ рд╕рдорд╛рди рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ seltests.py рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рддрдм рдЖрдк рдмрд╕ django_selenium.testcases.SeleniumTestCase рд╕реЗ рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧ рдХреЛ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд▓реЗрдирд┐рдпрдо рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрддреЗ рд╣реИрдВред

рд╕реНрдЯреИрдВрдбрд░реНрдб рдбреНрд░рд╛рдЗрд╡рд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди

рдорд╛рдирдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЪрд╛рд▓рдХ рд╡рд░реНрдЧ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ - django_selenium.testcases.MyDriver ред рдЗрд╕рдореЗрдВ рдПрдХ url рдЦреЛрд▓рдиреЗ, рдХрд┐рд╕реА рд╕рд╛рдЗрдЯ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ (django рдХрд╛ рдорд╛рдирдХ рд░реВрдк) рдЬреИрд╕реЗ рдСрдкрд░реЗрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, css рдЪрдпрдирдХрд░реНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рддрддреНрд╡ рдвреВрдВрдврдирд╛, рдПрдХ рддрддреНрд╡ рдвреВрдВрдврдирд╛ рдФрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛, рдкреГрд╖реНрда рдкрд░ рдкрд╛рда рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛, рдЕрд▓рд░реНрдЯ рдЯреЗрдХреНрд╕реНрдЯ рдФрд░ рдЕрдиреНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рдЕрдм рдХреЗ рд▓рд┐рдП MyDriver рд╡рд░реНрдЧ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВред

рдкрд░реАрдХреНрд╖рдг рд░рди рдХрдорд╛рдВрдб рдХреА рдЬрдЧрд╣

рдЕрдВрдд рдореЗрдВ, рд╕реЗрд▓реЗрдирд┐рдпрдо рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде рдорд╛рдирдХ django рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрди рдЖрджреЗрд╢ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдХрдорд╛рдВрдб рд╡рд░реНрдЧ рдХреЛ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 from django_selenium.management.commands import test_selenium class Command(test_selenium.Command): def handle(self, *test_labels, **options): super(Command, self).handle(*test_labels, **options) 
рдЖрджреЗрд╢ рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:рдЬреИрд╕рд╛ рдХрд┐ рдорд╛рдирдХ рдХрдорд╛рдВрдб рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рд╕реЗрд▓реЗрдирд┐рдпрдо рдкрд░реАрдХреНрд╖рдг рдпрд╛ рдЖрд╡реЗрджрди рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдкрд░реАрдХреНрд╖рдг рдЖрд╡реЗрджрди


рдЙрдкрд░реЛрдХреНрдд рд╕рдореЗрдХрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╕реЗрд▓реЗрдирд┐рдпрдо рдкрд░реАрдХреНрд╖рдг рдпреБрдХреНрдд рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ django рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддреИрдпрд╛рд░ рдХрд┐рдпрд╛:
 #  selenium-server.jar wget http://selenium.googlecode.com/files/selenium-server-standalone-2.7.0.jar git clone git://github.com/dragoon/django-selenium-testapp.git cd django-selenium-testapp #      SELENIUM_PATH vi settings.py #   ./manage.py test --selenium-only ... ---------------------------------------------------------------------- Ran 1 test in 13.254s OK 

рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рд╣реЛ рдЧрдпрд╛, рддреЛ рдирд┐рдореНрди рдЪрд┐рддреНрд░ рдХреЛ рджреЗрдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:


рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдореБрдЭреЗ рдЖрдЧреЗ рд╢реЛрдзрди рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЛ рд╕реБрдирдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА, рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд┐рддрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИ, рдЗрд╕ рдкрд░ рд░рд╛рдп рд╣реИ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ рдЕрдиреНрдп рдЧреАрдереВрдмрд░реНрд╕ рд╕реЗ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдиреЗ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЦреБрд╢реА рд╣реЛрдЧреАред

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

Source: https://habr.com/ru/post/In129107/


All Articles