рд╡реЗрдм рдкреЗрдЬ рд▓реЛрдб рдЖрдБрдХрдбрд╝реЛрдВ рдХрд╛ рд╕рдВрдЧреНрд░рд╣

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

рд╣рдо рдХрд┐рд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░ рд░рд╣реЗ рд╣реИрдВ?


рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдкрдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рддрд░рдл "рдкреВрд░реНрдг" рдкреГрд╖реНрда рд▓реЛрдб рдкрд░ рдЖрдВрдХрдбрд╝реЗ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдпрд╣ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдкреГрд╖реНрда рд╡рд┐рддрд░рдг рд╕рдордп рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИ, рдЬрд╛рд╣рд┐рд░ рд╣реИред рдкреВрд░реНрдг рд▓реЛрдбрд┐рдВрдЧ рд╕реЗ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рднреА рдкреГрд╖реНрда рд╕рдВрд╕рд╛рдзрдиреЛрдВ (рдЪрд┐рддреНрд░, рд╢реИрд▓реА, рд╕реНрдХреНрд░рд┐рдкреНрдЯ) рдХреЛ рд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рдСрдирд▓реЛрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдШрдЯрдирд╛ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ред рдЬреИрд╕рд╛ рдХрд┐ рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЗрд╕ рд╕рдордп рдХреЛ рдлрд╛рдпрд░рдмрдЧ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рдЖрдВрдХрдбрд╝реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдкреГрд╖реНрда рдЦреЛрд▓реЗрдВ рдФрд░ рдПрдХ рдпрд╛ рджреЛ рдмрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕рдХреЗ рдкреВрд░реНрдг рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рд╕рдордп рдпрд╛рдж рд░рдЦреЗрдВред рд╕реИрдХрдбрд╝реЛрдВ рд╢реБрд░реБрдЖрдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреВрд░реНрдг рднрд╛рд░ рдХреЗ рдФрд╕рдд рд╕рдордп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдореЗрд░реА рд╕рдордЭ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдореАрдЯреНрд░рд┐рдХ рд╣реЛрдЧрд╛ред

рдПрдХ рд╕рдордп рдореЗрдВ, рдлрд╝рд╛рдпрд░рдмрдЧ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ v.3.6 рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдиреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЖрдВрдХрдбрд╝реЗ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдереА, рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреИрд╢ - рд╣реИрдорд░рд╣реЗрдб ( stevesouders.com/hammerhead ) рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛ рдХрд╛ рдЖрдХрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕реЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдирддреАрдЬрддрди, рдХреБрдЫ рднреА рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рдкрд╛рдХрд░, рдореИрдВрдиреЗ рдЕрдкрдиреА рдмрд╛рдЗрдХ рдмрдирд╛рдИред рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕реНрд╡рдд: рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕реЗрд▓реЗрдирд┐рдпрдо рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВрдиреЗ рдЕрдЬрдЧрд░ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд╕рдордп рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдирдИ HTML5 window.performance рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП www.html5rocks.com/en/tutorials/webperformance/basics ) рджреЗрдЦреЗрдВред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рди


рдпрд╣ рд╕реЗрд▓реЗрдирд┐рдпрдо рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдкрд╣рд▓рд╛ (рдФрд░ рдЕрдм рддрдХ рдХрд╛ рдЖрдЦрд┐рд░реА!) рдЯреЗрд╕реНрдЯ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рдХреБрдЫ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВ рдЖрдкрдХреЛ рдорд┐рдЦрд╛рдЗрд▓ рдкреЛрд▓рд╛рд░рд╢ рдХреЗ рдорд╛рд╕реНрдЯрд░ рд╡рд░реНрдЧ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ "рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рд╕реЗрд▓реЗрдирд┐рдпрдо рдЯреЗрд╕реНрдЯ рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ?" ( Youtu.be/IPraAY78jGY?t=22m22s )
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдИ рд╢рд░реНрддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
a) рдЯрд╛рдЗрдкрд░рд╛рдЗрдЯрд░ рдкрд░ рдЕрдЬрдЧрд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐
рдмреА) рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХреЗ рдЙрддреНрдкрд╛рдж рдХреЛ рд╕реАрдзреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛:
pip install selenium 

рдЧ) рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЬрдЧрд░ рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛, рдЬреБрдирд┐рдЯ рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ:
 pip install pytest 

рдкрд░реАрдХреНрд╖рдг, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ test.py рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрдЬреНрдЮрд╛:
 py.test test.py 


рд▓реЙрдиреНрдЪ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ:
рдЫрд╡рд┐

рдХреЛрдб рд╡рд┐рд╡рд░рдг

(рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╣рдордд рд╣реИ, рд╕рднреА рдХреЛрдб рдПрдХ рдПрдХрд▓ рдЯреЗрд╕реНрдЯреЛрд╕реНрдЯреЗрд░реЛрди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИ)

 # author: ivn_cote # MIT license from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import Select from selenium.common.exceptions import NoSuchElementException import unittest, time class Test3(unittest.TestCase): def setUp(self): #      self.driver = webdriver.Firefox() #   ,    webdriver.Chrome('./chromedriver') self.driver.implicitly_wait(10) # 10         self.base_url = "http://www.amazon.de" #   self.verificationErrors = [] self.driver.get(self.base_url + "/gp/yourstore/home?ie=UTF8&ref_=topnav_ys") #    def test_stat(self): #     loops = 2 #    driver = self.driver total = 0 #  ,     ,   , # ., : #self.driver.execute_script( "document.cookie='name=value'" ) #     ,      : #self.driver.add_cookie({'name':'value'}) for j in range(loops): driver.refresh() #time.sleep(3) #  3   ,   Chrome! #       onload stext = self.driver.execute_script( "return ( window.performance.timing.loadEventEnd - window.performance.timing.navigationStart )") total = total + int(stext) print "Value is: %s" % stext print "TOTAL is: %s" % (total / loops ) self.assertEqual("0", total) #    ,    (  ),        def tearDown(self): #      self.driver.quit() self.assertEqual([], self.verificationErrors) if __name__ == "__main__": unittest.main() 


рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:

рддреЛ, рдлрд┐рд░ рд╕реЗ рдЯреВрд▓ рдЖрдкрдХреЛ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:


рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдпрд╣ рдЙрдкрдХрд░рдг рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ!
рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдирд┐рдкрдЯреЗрдВ - рдЗрд╕реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦреЗрдВред рджреВрд╕рд░реЗ, window.performance рд╕реЗ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдПрдХрддреНрд░ рдХрд░реЗрдВред рддреАрд╕рд░рд╛, рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдмрдЬрд╛рдп рд░реЗрдЦрд╛рдВрдХрди рджреЗрдЦрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

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


All Articles