рдкрд░рддрджрд╛рд░ рдкрд░реАрдХреНрд╖рдг

"рд▓рд╛рд▓ рдкрд░реАрдХреНрд╖рдг" рд╕реЗ рдЕрдзрд┐рдХ рдЕрдкреНрд░рд┐рдп рдХреНрдпрд╛ рд╣реИ? рдкрд░реАрдХреНрд╖рдг рдпрд╛ рддреЛ рд╣рд░рд╛ рдпрд╛ рд▓рд╛рд▓ рд╣реИ, рдФрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВред рд╣рдорд╛рд░реЗ рд╣реЗрд╕реЗрдирдмрдЧ 2017 рдорд╛рд╕реНрдХреЛ рд╕рдореНрдореЗрд▓рди рдореЗрдВ, рдЖрдВрджреНрд░реЗрдИ рд╕реЛрд▓реЗрдВрдЯрд╕реЗрд╡ (рдХреЛрдбрдмреЛрд░реНрди) рдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдХрд┐ рд╡реЗ рдХреНрдпреЛрдВ рдкреИрджрд╛ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдХреИрд╕реЗ рдХрдо рдХрд░реЗрдВред рдЙрдирдХреА рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдРрд╕реЗ рд╣реИрдВ рдХрд┐ рдЬрдм рдЖрдк рдЙрдирд╕реЗ рдЯрдХрд░рд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рд╕реАрдзреЗ рддреНрд╡рдЪрд╛ рдореЗрдВ рджрд░реНрдж рдорд╣рд╕реВрд╕ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдпреБрдХреНрддрд┐рдпрд╛рдВ рдЙрдкрдпреЛрдЧреА рд╣реИрдВ - рдпрд╣ рдкрд░реАрдХреНрд╖рдХреЛрдВ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреЛрдиреЛрдВ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рдХреБрдЫ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реИ: рдЖрдк рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрднреА-рдХрднреА рдЖрдк рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдк рд╕реНрдХреНрд░реАрди рд╕реЗ рджреВрд░ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рдмреЗрдЯреА рдХреЗ рд╕рд╛рде рдХреНрдпреВрдмреНрд╕ рдЦреЗрд▓рддреЗ рд╣реИрдВред

рдирддреАрдЬрддрди, рджрд░реНрд╢рдХреЛрдВ рдиреЗ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА, рдФрд░ рд╣рдордиреЗ рди рдХреЗрд╡рд▓ рд╡реАрдбрд┐рдпреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдмрд▓реНрдХрд┐ рд╣реИрдмрд░ рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдПрдХ рдкрд╛рда рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд╣рд╛ред



рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╕реНрд╡рдЪрд╛рд▓рди рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдкрд░рддрджрд╛рд░ рдкрд░реАрдХреНрд╖рдг рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╡рд┐рд╖рдп рд╣реИрдВред рдХреНрдпреЛрдВрдХрд┐ рд╕рд╡рд╛рд▓ "рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЖрдк рд╕реНрд╡рдЪрд╛рд▓рди рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?" рд╕рднреА рдЙрддреНрддрд░: тАЬрдХреЛрдИ рд╕реНрдерд┐рд░рддрд╛ рдирд╣реАрдВ рд╣реИ! рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рд╕рдордп-рд╕рдордп рдкрд░ рдЧрд┐рд░рддреЗ рд╣реИрдВред тАЭ

рдЖрдкрдиреЗ рдЕрдкрдиреЗ рд╕реНрдерд╛рди рдкрд░ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдпрд╛, рдпрд╣ рд╣рд░рд╛ рд╣реИ, рдПрдХ рдФрд░ рджреЛ рджрд┐рди рд╣рд░рд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдПрдХ рдмрд╛рд░ рдФрд░ рдЕрдЪрд╛рдирдХ рдЬреЗрдирдХрд┐рдВрд╕ рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛ред рдЖрдк рдЗрд╕реЗ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдлрд┐рд░ рд╕реЗ рд╣рд░рд╛ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЖрдк рдХрднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ: рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдмрдЧ рд╣реИ рдпрд╛ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЧреНрд▓реВрдХреЛрди рдкрд░реАрдХреНрд╖рдг рд╣реИ? рдФрд░ рд╣рд░ рдмрд╛рд░ рдЖрдкрдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред

рдЕрдХреНрд╕рд░, рдЬреЗрдирдХрд┐рдВрд╕ рдкрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдПрдХ рд░рд╛рдд рдХреА рд╢реБрд░реВрдЖрдд рдХреЗ рдмрд╛рдж, рдкрд░реАрдХреНрд╖рдХ рдкрд╣рд▓реА рдмрд╛рд░ рджреЗрдЦрддрд╛ рд╣реИ "30 рдкрд░реАрдХреНрд╖рдг рдЧрд┐рд░ рдЧрдП рд╣реИрдВ, рдЖрдкрдХреЛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ", рд▓реЗрдХрд┐рди рд╣рд░ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ ...



рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдЕрднрджреНрд░ рд╢рдмреНрдж рдкреНрд░рдЪреНрдЫрдиреНрди рд╣реИ: "рдореИрдВ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реВрдВрдЧрд╛ред" рдЬреИрд╕реЗ, "рдЖрдЬ рд╕рдордЭрдиреЗ рдореЗрдВ рдХреЛрдИ рд╣рд┐рдЪрдХ рдирд╣реАрдВ рд╣реИ ..." рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдкрджрд╛ рд╣реИред

рдХреЛрдИ рд╕рдЯреАрдХ рдЖрдВрдХрдбрд╝реЗ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрдХреНрд╕рд░ рд╡рд┐рднрд┐рдиреНрди рд▓реЛрдЧреЛрдВ рд╕реЗ рд╕реБрдирд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рд▓рдЧрднрдЧ 30% рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ - рдкрд░рддрджрд╛рд░ред рдореЛрдЯреЗ рддреМрд░ рдкрд░, рд╡реЗ рдПрдХ рд╣рдЬрд╛рд░ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ 300 рд╕рдордп-рд╕рдордп рдкрд░ рд▓рд╛рд▓ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╡реЗ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧрд┐рд░ рдЧрдП рдереЗред

Google рдиреЗ рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛: рдпрд╣ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ 1.5% рдкреНрд░рддрд┐рд╢рдд рдкрд░рддрджрд╛рд░ рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ, рдФрд░ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЕрдкрдиреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рд▓рдбрд╝рддреЗ рд╣реИрдВред рдореИрдВ рдереЛрдбрд╝рд╛ рдбреАрдВрдЧ рдорд╛рд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреЛрдбрдмреЛрд░реНрди рдореЗрдВ рдореЗрд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрдм 0.1% рд╣реИред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╕рдм рдмреБрд░рд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ 0.1% рднреАред рдХреНрдпреЛрдВ?

1.5% рд▓реЗрдВ, рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рдЫреЛрдЯреА рд▓рдЧрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ? рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рд╣рдЬрд╛рд░ рдкрд░реАрдХреНрд╖рдг рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ 15 рдкрд░реАрдХреНрд╖рдг рдПрдХ рдмрд┐рд▓реНрдб рдореЗрдВ рдЧрд┐рд░ рдЧрдП, рдЕрдЧрд▓реЗ 12, рдлрд┐рд░ 18ред рдФрд░ рдпрд╣ рдмрд╣реБрдд рдмреБрд░рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд▓рдЧрднрдЧ рд╕рднреА рдмрд┐рд▓реНрдб рд▓рд╛рд▓ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рд▓рдЧрд╛рддрд╛рд░ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдпрд╣ рд╕рдЪ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╣рдорд╛рд░реЗ рдПрдХ рдкреАрдкреАрдПрдо (0.1%) рдЕрднреА рднреА рдЦрд░рд╛рдм рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 1000 рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ, рддреЛ 0.1% рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рджрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдирд┐рд░реНрдорд╛рдг 1-2 рд▓рд╛рд▓ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рд╣рдорд╛рд░реЗ рдЬреЗрдирдХреАрдВрд╕ рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддрд╕реНрд╡реАрд░ рд╣реИ, рдФрд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ: рдПрдХ рд░рди рдХреЗ рд╕рд╛рде, рдПрдХ рдкрд░рддрджрд╛рд░ рдкрд░реАрдХреНрд╖рдг рдЧрд┐рд░ рдЧрдпрд╛, рдПрдХ рдФрд░ рд╢реБрд░реБрдЖрдд рдХреЗ рд╕рд╛рдеред



рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рджрд┐рди рдирд╣реАрдВ рд╣реИ рдмрд┐рдирд╛ рд▓рд╛рд▓ рдмрд┐рд▓реНрдб рдХреЗред рдЪреВрдВрдХрд┐ рдмрд╣реБрдд рд╣рд░рд╛ рд╣реИ, рд╕рдм рдХреБрдЫ рдареАрдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЧреНрд░рд╛рд╣рдХ рдХреЛ рд╣рдорд╕реЗ рдкреВрдЫрдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИ: "рджреЛрд╕реНрддреЛрдВ, рд╣рдо рдЖрдкрдХреЛ рдкреИрд╕реЗ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк рд╣рдореЗрд╢рд╛ рд╣рдореЗрдВ рд▓рд╛рд▓ рд░рдВрдЧ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рддреЗ рд╣реИрдВ!" рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реЛ?

рдореИрдВ рдЧреНрд░рд╛рд╣рдХ рдХреА рдЬрдЧрд╣ рдкрд░ рдЕрд╕рдВрддреБрд╖реНрдЯ рд╣реЛрддрд╛, рдФрд░ рд╕рдордЭрд╛рддрд╛ "рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдЙрджреНрдпреЛрдЧ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рд╕рдмрдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд▓рд╛рд▓ рд╣реИ" рдареАрдХ рдирд╣реАрдВ рд╣реИ? рдЗрд╕рд▓рд┐рдП, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдПрдХ рдмрд╣реБрдд рдЬрд░реВрд░реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдФрд░ рдЖрдЗрдП рдПрдХ рд╕рд╛рде рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯреЗрдВред

рдпреЛрдЬрдирд╛ рдпрд╣ рд╣реИ:

  1. рдЕрд╕реНрдерд┐рд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдореЗрд░рд╛ рд╕рдВрдЧреНрд░рд╣ (рдореЗрд░реЗ рдЕрднреНрдпрд╛рд╕ рд╕реЗ, рдмрд┐рд▓реНрдХреБрд▓ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдорд▓реЗ, рдЬрдЯрд┐рд▓ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдЬрд╛рд╕реВрд╕реА рдХрд╣рд╛рдирд┐рдпрд╛рдБ)
  2. рдЕрд╕реНрдерд┐рд░рддрд╛ рдХреЗ рдХрд╛рд░рдг (рдХреБрдЫ рд╢реЛрдз рдореЗрдВ рднреА рд╡рд░реНрд╖реЛрдВ рд▓рдЧреЗ)
  3. рдЙрдирд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯреЗрдВ? (рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдЧрд╛)

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

рдЙрджрд╛рд╣рд░рдг 1: рдХреНрд▓рд╛рд╕рд┐рдХ


рдмреАрдЬ рдХреЗ рд▓рд┐рдП - рдХреНрд▓рд╛рд╕рд┐рдХ рд╕реЗрд▓реЗрдирд┐рдпрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ:

driver.navigate().to("https://www.google.com/"); driver.findElement(By.name("q")).sendKeys("selenide"); driver.findElement(By.name("btnK")).click(); assertEquals(9, driver.findElements(By.cssSelector("#ires .g")).size()); 

  1. рд╣рдо рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░ рдЦреЛрд▓рддреЗ рд╣реИрдВ;
  2. рддрддреНрд╡ q рдЦреЛрдЬреЗрдВ, рд╡рд╣рд╛рдВ рд╕рд░реНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рдмреНрдж рдореЗрдВ рдбреНрд░рд╛рдЗрд╡ рдХрд░реЗрдВ;
  3. "рдмрдЯрди" рддрддреНрд╡ рдвреВрдВрдвреЗрдВ рдФрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ;
  4. рдЬрд╛рдВрдЪ рд▓реЗрдВ рдХрд┐ рдЙрддреНрддрд░ рдиреМ рдкрд░рд┐рдгрд╛рдо рд╣реИред

рд╕рд╡рд╛рд▓: рдпрд╣рд╛рдВ рдХреМрди рд╕реА рд▓рд╛рдЗрди рдЯреВрдЯ рд╕рдХрддреА рд╣реИ?

рдпрд╣ рд╕рд╣реА рд╣реИ, рд╣рдо рд╕рднреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рднреА! рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдХреЛрдИ рднреА рд░реЗрдЦрд╛ рдЯреВрдЯ рд╕рдХрддреА рд╣реИ:

рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдзреАрдореА рдЗрдВрдЯрд░рдиреЗрдЯ рд╣реИ, рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдИ рд╕реЗрд╡рд╛, рдХреБрдЫ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд░рддреА рд╣реИред

рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ - рддрддреНрд╡ рдХреЛ рдЕрднреА рддрдХ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ рдЕрдЧрд░ рдпрд╣ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЦреАрдВрдЪрд╛ рдЧрдпрд╛ рд╣реИред
рддреАрд╕рд░реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдХреНрдпрд╛ рдЯреВрдЯ рд╕рдХрддрд╛ рд╣реИ? рдпрд╣рд╛рдБ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдерд╛: рдореИрдВрдиреЗ рд╕рдореНрдореЗрд▓рди рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрд╛, рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдЪрд▓рд╛рдпрд╛, рдФрд░ рдпрд╣ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рддреАрд╕рд░реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЖрдпрд╛:



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

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

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐, рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ, реп реж% рдкрд░рддрджрд╛рд░ рдкрд░реАрдХреНрд╖рдг рдЙрдиреНрд╣реАрдВ рдХрд╛рд░рдгреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ:

  • рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдЧрддрд┐: рдХрднреА-рдХрднреА рд╡реЗ рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВ, рдХрднреА-рдХрднреА рддреЗрдЬ;
  • рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдХреНрд░рдо;
  • рд╕реНрдкреАрдб рдЬреЗ.рдПрд╕.

рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЗрди рдХрд╛рд░рдгреЛрдВ рдХрд╛ рдПрдХ рдЗрд▓рд╛рдЬ рд╣реИ! рд╕реЗрд▓реЗрдирд╛рдЗрдб рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХреИрд╕реЗ рддрдп рдХрд░рддрд╛ рд╣реИ? рд╣рдо рд╕реЗрд▓реЗрдирд╛рдЗрдб рдкрд░ рдЕрдкрдиреЗ Google рдкрд░реАрдХреНрд╖рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ - рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рдХреЗрд╡рд▓ $ рд╕рдВрдХреЗрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 @Test public void userCanLogin() { open(тАЬhttp://localhost:8080/loginтАЭ); $(By.name(тАЬusernameтАЭ).setValue(тАЬjohnтАЭ); $(тАЬ#submitтАЭ).click(); $(тАЬ.menuтАЭ).shouldHave(text(тАЬHello, John!тАЭ)); } 

рдпрд╣ рдкрд░реАрдХреНрд╖рд╛ рд╣рдореЗрд╢рд╛ рдЧреБрдЬрд░рддреА рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рд╕реЗрдЯрд╡реИрд▓реНрдпреВ (), рдХреНрд▓рд┐рдХ () рдФрд░ рд╣реИрдерд╡реЗ () рд╡рд┐рдзрд┐рдпрд╛рдВ рд╕реНрдорд╛рд░реНрдЯ рд╣реИрдВ: рдпрджрд┐ рдХрд┐рд╕реА рдЪреАрдЬ рдкрд░ рдкреЗрдВрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ, рддреЛ рд╡реЗ рдереЛрдбрд╝рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ (рдЗрд╕реЗ "рд╕реНрдорд╛рд░реНрдЯ рдЕрдкреЗрдХреНрд╖рд╛рдПрдВ" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

рдпрджрд┐ рдЖрдк рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдереЛрдбрд╝рд╛ рдФрд░ рджреЗрдЦреЗрдВ, рддреЛ рдЗрди рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЛ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:



рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рд╡реЗ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╡реЗ 4 рд╕реЗрдХрдВрдб рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЯрд╛рдЗрдордЖрдЙрдЯ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рд╣реИ, рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣: mvn -Dselenide.timeout = 8000ред

рдЙрджрд╛рд╣рд░рдг 2: nbob


рддреЛ, рдкрд░рддрджрд╛рд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде 90% рд╕рдорд╕реНрдпрд╛рдПрдВ рд╕реЗрд▓реЗрдирд╛рдЗрдб рдХреЗ рд╕рд╛рде рд╣рд▓ рдХреА рдЬрд╛рддреА рд╣реИрдВред рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкрд░рд┐рд╖реНрдХреГрдд рдорд╛рдорд▓реЛрдВ рдХреЗ 10% рдЬрдЯрд┐рд▓ рдФрд░ рднреНрд░рд╛рдордХ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдмрдиреЗ рд╣реБрдП рд╣реИрдВред рдпрд╣ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдареАрдХ рд╣реИ рдХрд┐ рдореИрдВ рдЖрдЬ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдРрд╕рд╛ "рдЧреНрд░реЗ рдПрд░рд┐рдпрд╛" рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реВрдВ: рдПрдХ рдкрд░рддрджрд╛рд░ рдкрд░реАрдХреНрд╖рдг, рдЬреЛ рдореИрдВ рддреБрд░рдВрдд рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЖрдпрд╛ рдерд╛ред рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдпрд╣ рдмрд╕ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред

рд╣рдордиреЗ рдХрд┐рдпреЛрд╕реНрдХ рдореЗрдВ рд▓реЙрдЧрд┐рди рдХреЗ рд▓рд┐рдП рдХреАрдмреЛрд░реНрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред рдкрд░реАрдХреНрд╖рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "рдмреЙрдм" рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЕрд░реНрдерд╛рдд, "рд▓реЙрдЧрд┐рди" рдлрд╝реАрд▓реНрдб рдореЗрдВ рддреАрди рдЕрдХреНрд╖рд░ рджрд░реНрдЬ рдХрд░реЗрдВ: рдмреЙрдмред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░реАрди рдкрд░ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдкрд░реАрдХреНрд╖рдг рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ "nbob" рдорд╛рди "рд▓реЙрдЧрд┐рди" рдлрд╝реАрд▓реНрдб рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ:



рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рдЙрд╕ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣рдо "nbob" рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ - рд▓реЗрдХрд┐рди рдкреВрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рд╣реИ (рди рддреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ, рди рд╣реА рдХреЛрдб рдореЗрдВ, рдФрд░ рдирд╛ рд╣реА рдПрдХреНрд╕реЗрд▓ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рднреА)ред рдпрд╣ рдХреИрд╕реЗ рд╕рдВрднрд╡ рд╣реИ?

рд╣рдо рдХреЛрдб рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ - рдРрд╕рд╛ рд▓рдЧреЗрдЧрд╛ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ, рдХреЛрдИ рдкрд╣реЗрд▓рд┐рдпрд╛рдВ рдирд╣реАрдВ:

 @Test public void loginKiosk() { open(тАЬhttp://localhost:9000/kioskтАЭ); $(тАЬbodyтАЭ).click(); $(By.name(тАЬusernameтАЭ)).sendKeys(тАЬbobтАЭ); $(тАЬ#loginтАЭ).click(); } 

рд╣рдо рдЖрдЧреЗ рдХрджрдо рд╕реЗ рдХрджрдо рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣рд╕ рдХрд░рдиреЗ рд▓рдЧреЗ, рдФрд░ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рд╕рд╛рде рд╣рдо рд╕рдордЭрдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ: рдпрд╣ рддреНрд░реБрдЯрд┐ рдХрднреА-рдХрднреА рд▓рд╛рдЗрди $ ("рдмреЙрдбреА") рдХреЗ рдмрд╛рдж рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ()ред рдпрд╣реА рд╣реИ, рдЗрд╕ рдЪрд░рдг рдореЗрдВ, "рдПрди" "рд▓реЙрдЧрд┐рди" рдлрд╝реАрд▓реНрдб рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдлрд┐рд░ рдмрд╛рдж рдХреЗ рдЪрд░рдгреЛрдВ рдореЗрдВ "рдмреЙрдм" рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд┐рд╕рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд▓рд┐рдпрд╛ рд╣реИ рдХрд┐ "n" рдХрд╣рд╛рдБ рд╕реЗ рдЖрддрд╛ рд╣реИ?

рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рдкрддреНрд░ рдПрди рд╕реНрдХреНрд░реАрди рдХреЗ рдмреАрдЪ рдореЗрдВ рдерд╛, рдФрд░ рдХреНрд░реЛрдо рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдХреНрд▓рд┐рдХ () рдлрд╝рдВрдХреНрд╢рди рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдпрд╣ рдПрдХ рддрддреНрд╡ рдХреЗ рдХреЗрдВрджреНрд░реАрдп рд╕рдордиреНрд╡рдп рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╢рд░реАрд░ рдПрдХ рдмрдбрд╝рд╛ рддрддреНрд╡ рд╣реИ, рдЙрд╕рдиреЗ рдкреВрд░реА рд╕реНрдХреНрд░реАрди рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ред



рдФрд░ рдпрд╣ рд╣рдореЗрд╢рд╛ рдЧрд┐рд░рддрд╛ рдирд╣реАрдВ рдерд╛ред рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИ рдХреНрдпреЛрдВ? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рдЦреБрдж рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред рд╢рд╛рдпрдж рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдиреЗ рд╡рд┐рднрд┐рдиреНрди рдЖрдХрд╛рд░реЛрдВ рдореЗрдВ рд╣рд░ рд╕рдордп рдЦреЛрд▓рд╛, рдФрд░ рдпрд╣ рд╣рдореЗрд╢рд╛ рдПрди рдЕрдХреНрд╖рд░ рдореЗрдВ рдирд╣реАрдВ рдЧрд┐рд░рд╛ред

рдЖрдкрдХреЗ рдкрд╛рд╕ рд╢рд╛рдпрдж рдПрдХ рд╕рд╡рд╛рд▓ рд╣реИ: рдХрд┐рд╕реА рдиреЗ $ ("рд╢рд░реАрд░") рдХреНрдпреЛрдВ рдмрдирд╛рдпрд╛? рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ()? рдореИрдВ рдЕрдВрдд рддрдХ рдирд╣реАрдВ рдЬрд╛рдирддрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреНрд╖реЗрддреНрд░ рд╕реЗ рдзреНрдпрд╛рди рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рд╕реЗрд▓реЗрдирд┐рдпрдо рдореЗрдВ рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬреЛ рдХреНрд▓рд┐рдХ () рд╣реИ, рд▓реЗрдХрд┐рди рдЕрд╢реБрджреНрдз () рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ, рддреЛ рдЗрд╕реЗ рд╡рд╣рд╛рдВ рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЖрдк рдХреЗрд╡рд▓ рдХрд┐рд╕реА рдЕрдиреНрдп рддрддреНрд╡ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЪреВрдВрдХрд┐ рдХреЛрдИ рдЕрдиреНрдп рдЙрдЪрд┐рдд рддрддреНрд╡ рдирд╣реАрдВ рдереЗ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЛрдВрдиреЗ рд╢рд░реАрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛, рдФрд░ рдРрд╕рд╛ рдкреНрд░рднрд╛рд╡ рдорд┐рд▓рд╛ред

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

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдо рдЕрд╕реНрдерд┐рд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ:

  • рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдХреА рдЧрддрд┐;
  • рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдХреНрд░рдо;
  • рд╕реНрдкреАрдб рдЬреЗрдПрд╕;
  • рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдХрд╛ рдЖрдХрд╛рд░;
  • рд╡реИрдирд┐рдЯреА!

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

рдЙрджрд╛рд╣рд░рдг 3: рдкреНрд░реЗрдд рдЦрд╛рддреЗ


рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рдмрд╛рдд рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рд╕рдмрдХреБрдЫ рдХреЗрд╡рд▓ рд╕рдВрдпреЛрдЧ рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рдкрд░реАрдХреНрд╖рдг рдерд╛ рдЬрд┐рд╕рдиреЗ рдЬрд╛рдВрдЪ рдХреА рдереА рдХрд┐ рдЗрд╕ рд╕реНрдХреНрд░реАрди рдкрд░ 5 рдЦрд╛рддреЗ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред



рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рд╣рд░рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдпрд╣ рдХрд┐рди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЧрд┐рд░ рдЧрдпрд╛ рдФрд░ рдХрд╣рд╛ рдЧрдпрд╛ рдХрд┐ рд╕реНрдХреНрд░реАрди рдкрд░ рдкрд╛рдВрдЪ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЫрд╣ рдорд╛рдпрдиреЗ рдереЗред

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

рд╣рдо рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╣реИ: рдХреНрдпрд╛ LoanTest, рдЬреЛ рдЦрд╛рддрд╛ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ, рдЙрд╕реЗ рдЕрдВрдд рдореЗрдВ рд╣рдЯрд╛ рджреЗрдВ? рд╣рдо рдЗрд╕рдХреЗ рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ - рд╣рд╛рдВ, рдЗрд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИред рдлрд┐рд░, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИ?

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдЫрд╛рдпрд╛ рд╣реБрдЖ рд╣реИ? рд╣рдо рдЦрд╛рддреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрддреНрдкрд╛рджрди рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ - рдЗрд╕рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ @ рдХреИрд╢реЗрдлрд╝реЛрд░ рдПрдиреЛрдЯреЗрд╢рди рд╣реИ, рдпрд╣ рдЦрд╛рддреЛрдВ рдХреЛ рдкрд╛рдВрдЪ рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдХрд░рддрд╛ рд╣реИред

рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ: рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдкрд░реАрдХреНрд╖рдг рдЗрд╕ рдХреИрд╢ рдХреЛ рд╕рд╛рдл рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдпрд╣ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реЛрдЧрд╛, рдХреНрдпрд╛ рдРрд╕рд╛ рдХреЛрдИ рдЬрд╛рдВрдмрд╛рдЬ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рд╣рдо рдЗрд╕рдХреЗ рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ - рд╣рд╛рдВ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрд╣рд▓реЗ рдХреИрд╢ рдХреЛ рд╕рд╛рдл рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ? рдпрд╣рд╛рдВ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЦреЛ рдЧрдП рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкрд░рд┐рдХрд▓реНрдкрдирд╛рдПрдВ рдЦрддреНрдо рд╣реЛ рдЧрдИ рд╣реИрдВ: рд╡рд╕реНрддреБ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреИрд╢ рдХреЛ рд╕рд╛рдл рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреЗрдбрд╝-рдЫрдбрд╝реЗрдВ, рдФрд░ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ? рдлрд┐рд░ рдЙрд╕рдиреЗ рдХреЛрдб рдкрд░ рдЪрдврд╝рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдЗрд╕рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрд╛, рд╢рд╛рдпрдж рдХреБрдЫ рджрд┐рди рднреАред рдЬрдм рддрдХ рдореИрдВрдиреЗ рдЖрдЦрд┐рд░рдХрд╛рд░ рдЗрд╕ рд╡рд░реНрдЧ рдФрд░ рд╕реБрдкрд░рдХреНрд▓рд╛рд╕ рдХреЛ рджреЗрдЦрд╛, рдФрд░ рд╡рд╣рд╛рдВ рдПрдХ рд╕рдВрджрд┐рдЧреНрдз рдЪреАрдЬ рдорд┐рд▓реА:



рдХрд┐рд╕реА рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреЗрдЦрд╛, рд╣реИ рдирд╛? рдпрд╣ рд╕рд╣реА рд╣реИ: рдмрдЪреНрдЪреЗ рдФрд░ рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ, рдФрд░ рдпрд╣ рд╕реБрдкрд░ рдирд╣реАрдВ рдХрд╣рддрд╛ рд╣реИред

рдФрд░ Java рдореЗрдВ рдпрд╣ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ: рдЖрдк IntelliJ IDEA рдпрд╛ Eclipse рдореЗрдВ Alt + Enter рдпрд╛ Ctrl + Insert рджрдмрд╛рдПрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдЕрдк () рд╡рд┐рдзрд┐ рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕реБрдкрд░рдХреНрд▓рд╛рд╕ рдореЗрдВ рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдХреИрд╢ рдЕрднреА рднреА рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЬрдм рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрд╛ рддреЛ рдореИрдВ рдмреЗрддрд╣рд╛рд╢рд╛ рдЧреБрд╕реНрд╕реЗ рдореЗрдВ рдерд╛ред рдпрд╣ рдЕрдм рдореЗрд░реЗ рд▓рд┐рдП рдЦреБрд╢реА рдХреА рдмрд╛рдд рд╣реИред

рдЗрд╕рд▓рд┐рдП рдиреИрддрд┐рдХ:

  1. рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ, рд╕реНрд╡рдЪреНрдЫ рдХреЛрдб рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрджрд┐ рдЙрддреНрдкрд╛рджрди рдХреЛрдб рдореЗрдВ рд╣рд░ рдХреЛрдИ рдЗрд╕ рдХреЗ рд▓рд┐рдП рдЪреМрдХрд╕ рд╣реИ, рддреЛ рд╡реЗ рдПрдХ рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ - рд╣рдореЗрд╢рд╛ рдирд╣реАрдВред
  2. рдпрджрд┐ рдЙрддреНрдкрд╛рджрди рдХреЛрдб рдХреЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХреМрди рдХрд░реЗрдЧрд╛? рдЗрд╕рд▓рд┐рдП, рдЖрдИрдбреАрдИ рдореЗрдВ рдЪреЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдЗрд╕ рдШрдЯрдирд╛ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЖрдИрдбреАрдИрдП рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдирд┐рд░реАрдХреНрд╖рдг рдХреЛ рдкрд╛рдпрд╛, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рд╡рд╣ рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ: рдпрджрд┐ рд╡рд┐рдзрд┐ рдХрд╣реАрдВ рд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ @ рдУрд╡рд░рд░рд╛рдЗрдб рдПрдиреЛрдЯреЗрд╢рди рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдЗрд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИред рдЕрдм рдореИрдВ рд╣рдореЗрд╢рд╛ рдЗрд╕ рдмреЙрдХреНрд╕ рдХреА рд╣рд┐рд╕реНрдЯреАрд░рд┐рдХ рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реВрдВред

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

рд╣рдо рд╕реВрдЪреА рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдЕрд╕реНрдерд┐рд░ рдХреНрдпреЛрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:

  • рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдХреА рдЧрддрд┐;
  • рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдХреНрд░рдо;
  • рд╕реНрдкреАрдб рдЬреЗрдПрд╕;
  • рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдХрд╛ рдЖрдХрд╛рд░;
  • рдЖрд╡реЗрджрди рдХреИрд╢;
  • рдкрд┐рдЫрд▓реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рдбреЗрдЯрд╛;
  • рд╕рдордпред

рдЙрджрд╛рд╣рд░рдг 4: рдЬрд╛рд╡рд╛ рд╕рдордп


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

 assert payment.time <= new Date(); 

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

рдФрд░ рдПрдХ рдмрд╛рд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдкреНрд▓реАрдХреЗрд╢рди рд▓реЙрдЧ рдореЗрдВ рджреЗрдЦрд╛ред рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓рд╛ рдиреИрддрд┐рдХ - рдЖрд╡реЗрджрди рдХреЗ рд▓реЙрдЧ рдореЗрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред рдЕрдкрдиреЗ рд╣рд╛рде рдЙрдард╛рдУ, рдЬреЛ рдХрд░рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдмрд╣реБрдордд рдирд╣реАрдВ, рдЕрдлрд╕реЛрд╕ред рдФрд░ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдиреБрд░реЛрдз рд▓реЙрдЧ, рдРрд╕реЗ-рдФрд░-рдРрд╕реЗ URL рдХреЛ рдРрд╕реЗ рд╕рдордп рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕ рддрд░рд╣ рдХреЗ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЬрд╡рд╛рдм рджрд┐рдПред



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



рддреЛ: 34 рд╕реЗрдХрдВрдб, 35, 36, 37, 35, 39 ... рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЗрд╕реЗ рдкрд╛рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХреИрд╕реЗ рд╕рдВрднрд╡ рд╣реИ? рд╕рд┐рджреНрдзрд╛рдВрдд рдлрд┐рд░ рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдП, рдПрдХ рдФрд░ рджреЛ рджрд┐рди рдЙрдирдХреЗ рд╕рд┐рд░ рдХреЛ рдЦрд░реЛрдВрдЪ рдХрд░ рд░рд╣реЗ рдереЗред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрдм рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЖрдкрдХреЗ рд╕рд╛рде рдордЬрд╛рдХ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╣реИ рдирд╛?

рдкрд┐рдЫрд▓реЗ рдПрдХ рд╡рд┐рдЪрд╛рд░ рдкрд░ рдореБрдЭреЗ рдорд╛рд░рд╛ ... рдФрд░ рдпрд╣ рдирд┐рдХрд▓рд╛ред рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдПрдХ рд╕рдордп рддреБрд▓реНрдпрдХрд╛рд▓рди рд╕реЗрд╡рд╛ рд╣реИ рдЬреЛ рдПрдХ рдХреЗрдВрджреНрд░реАрдп рд╕рд░реНрд╡рд░ рдкрд░ рдЪрд▓рддреА рд╣реИ рдФрд░ рдкреВрдЫрддреА рд╣реИ рдХрд┐ "рдЕрдм рдХрд┐рддрдиреЗ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд╣реИрдВ?" рдФрд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдЬреЗрдирдХрд┐рдВрд╕ рдкрд░ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЬрдм рдЗрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдЙрдмрдВрдЯреВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рддреЛ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХреНрд░реИрд╢ рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ред

рд╡рд╣рд╛рдБ, рдПрдХ ntp рд╕реЗрд╡рд╛ рдкрд╣рд▓реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рдереА, рдЬрд┐рд╕рдиреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдмреИрдВрдХрд┐рдВрдЧ рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдБрдЪрд╛ рдФрд░ рд╡рд╣рд╛рдБ рд╕реЗ рд╕рдордп рд▓рд┐рдпрд╛ред рдФрд░ рдЙрдмрдВрдЯреВ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде, рдПрдХ рдирдИ рд╣рд▓реНрдХреЗ рд╕реЗрд╡рд╛ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, systemd-timesyncdред рдФрд░ рджреЛрдиреЛрдВ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ред рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рдХрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рдЧрдпрд╛ред рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдХреЗрдВрджреНрд░реАрдп рдмреИрдВрдХрд┐рдВрдЧ рд╕рд░реНрд╡рд░ рдФрд░ рдХреБрдЫ рдХреЗрдВрджреНрд░реАрдп рдЙрдмрдВрдЯреВ рд╕рд░реНрд╡рд░ рдиреЗ 3 рд╕реЗрдХрдВрдб рдХреЗ рдЕрдВрддрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬрд╛рд░реА рдХреАред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЗрди рджреЛрдиреЛрдВ рд╕реЗрд╡рд╛рдУрдВ рдиреЗ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд┐рдпрд╛ред рдЙрдмрдВрдЯреВ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдХрд╣реАрдВ рдЧрд╣рд░реЗ рдпрд╣ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреА рдЕрдиреБрдорддрд┐ рди рджреЗрдВ ... рдЦреИрд░, рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж :)

рд╡реИрд╕реЗ, рдореИрдВрдиреЗ рдЙрд╕реА рд╕рдордп рдЬрд╛рд╡рд╛ рдХреЗ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рд╕реАрдЦрд╛, рдЬреЛ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдореЗрд░реЗ рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХреЗ рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдерд╛ред рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ System.currentTimeMillis () рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдорджрдж рд╕реЗ рдЖрдорддреМрд░ рдкрд░ рдХрд┐рд╕реА рдЪреАрдЬ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордпрдмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрдИ рдиреЗ рдРрд╕реЗ рдХреЛрдб рд▓рд┐рдЦреЗ:

 long start = System.currentTimeMillis(); // ... long end = System.currentTimeMillis(); log.info("Loaded in {} ms", end-start); 

рдРрд╕рд╛ рдХреЛрдб Apache Commons, Guava рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╣реИред рдпрд╣реА рд╣реИ, рдЕрдЧрд░ рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдЪреАрдЬ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдиреЗ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд▓рдЧреЗ, рддреЛ рд╡реЗ рдЖрдорддреМрд░ рдкрд░ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдмрд╣реБрддреЛрдВ рдиреЗ рд╢рд╛рдпрдж рд╕реБрдирд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВрдиреЗ рднреА рд╕реБрдирд╛, рд▓реЗрдХрд┐рди рди рдЬрд╛рдиреЗ рдХреНрдпреЛрдВ, рдФрд░ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рднреАред рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рд╕рд╡рд╛рд▓ рдареАрдХ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ System.nanoTime () рдЬрд╛рд╡рд╛ рдХреЗ рдХреБрдЫ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ - рдпрд╣ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реИ, рдпрд╣ рдиреИрдиреЛрд╕реЗрдХрдВрдб рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдорд┐рд▓рд┐рдпрди рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реИрдВред рдФрд░ рдЪреВрдВрдХрд┐, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдореЗрд░реА рдХреЙрд▓ рдПрдХ рджреВрд╕рд░реЗ рдпрд╛ рдЖрдзреЗ рд╕реЗрдХрдВрдб рддрдХ рдЪрд▓рддреА рд╣реИ, рдпрд╣ рд╕рдЯреАрдХрддрд╛ рдореЗрд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореИрдВрдиреЗ System.currentTimeMillis () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрд╛, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рд▓реЙрдЧ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╣рд╛рдВ рдпрд╣ -3 рд╕реЗрдХрдВрдб рдерд╛ред рддреЛ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рд╣реА рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ, рдФрд░ рдЕрдм рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХреНрдпреЛрдВ:

 long start = System.nanoTime(); // ... long end = System.nanoTime(); log.info("Loaded in {} ms", (end-start)/1000000); 

рджрд░рдЕрд╕рд▓, рдпрд╣ рддрд░реАрдХреЛрдВ рдХреЗ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрднреА рдирд╣реАрдВ рдкрдврд╝рд╛ред рдореИрдВрдиреЗ рдЕрдкрдирд╛ рд╕рд╛рд░рд╛ рдЬреАрд╡рди рд╕реЛрдЪрд╛ рд╣реИ рдХрд┐ System.currentTimeMillis () рдФрд░ System.nanoTime () рдПрдХ рд╣реА рдмрд╛рдд рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рд▓рд╛рдЦ рдЧреБрдирд╛ рдЕрдВрддрд░ рдХреЗ рд╕рд╛рдеред рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпреЗ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рд╣реИрдВред

System.currentTimeMillis () рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд░реНрддрдорд╛рди рддрд┐рдерд┐ рд▓реМрдЯрд╛рддрд╛ рд╣реИ - 1 рдЬрдирд╡рд░реА, 1970 рд╕реЗ рдЕрдм рддрдХ рдХрд┐рддрдиреЗ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд╣реИрдВред рдФрд░ System.nanoTime () рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рд╛рд░ рдХрд╛рдЙрдВрдЯрд░ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рд╕реЗ рдмрдВрдзрд╛ рдирд╣реАрдВ рд╣реИ: рд╣рд╛рдБ, рдпрд╣ рдкреНрд░рддрд┐ рдпреВрдирд┐рдЯ рд╣рд░ рдиреИрдиреЛрд╕реЗрдХрдВрдб рдмрдврд╝рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд░реНрддрдорд╛рди рд╕рдордп рд╕реЗ рдЬреБрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдирдХрд╛рд░рд╛рддреНрдордХ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЬреЗрд╡реАрдПрдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╕рдордп рдХрд╛ рдПрдХ рдмрд┐рдВрджреБ рдХрд┐рд╕реА рддрд░рд╣ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдмрдврд╝рдиреЗ рд▓рдЧрддрд╛ рд╣реИред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдереАред рдЖрдкрдХреЗ рд▓рд┐рдП рднреА? рдЦреИрд░, рдпрд╣ рд╡реНрдпрд░реНрде рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╣ рдкрд╣реБрдВрдЪреЗред

рдЙрджрд╛рд╣рд░рдг 5: рд╣рд░реЗ рдмрдЯрди рдХрд╛ рдЕрднрд┐рд╢рд╛рдк


рдпрд╣рд╛рдВ, рд╣рдорд╛рд░рд╛ рдкрд░реАрдХреНрд╖рдг рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдлреЙрд░реНрдо рднрд░рддрд╛ рд╣реИ, рд╣рд░реЗ рд░рдВрдЧ рдХреА рдкреБрд╖реНрдЯрд┐ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХрднреА-рдХрднреА рдпрд╣ рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝рддрд╛ рд╣реИред рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ рдпрд╣ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред



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



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

рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рдХреБрдЫ рдорд╛рдпрдиреЗ рдореЗрдВ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдЧ рд╣реИ: рдПрдХ рдкреНрд░рдЧрддрд┐ рдмрд╛рд░ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдХреНрд░реАрди рдХреЗ рдХрд┐рдирд╛рд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рдХреНрд░реЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдбреЗрдЯрд╛ рдмрди рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдирд╣реАрдВ рдХреА, рдХреНрдпреЛрдВрдХрд┐ рд╕рдм рдХреБрдЫ рдмрдбрд╝реЗ рдкрд░реНрджреЗ рдкрд░ рдлрд┐рдЯ рдерд╛, рдпрд╣ рдХреЗрд╡рд▓ рдЫреЛрдЯреЗ рдкрд░ рдлрд┐рдЯ рдирд╣реАрдВ рдерд╛ред

рдЙрджрд╛рд╣рд░рдг 6: рдХреНрд░реЛрдо рдлреНрд░реАрдЬ рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИ?


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



рд╣рдордиреЗ рд╡рд╣ рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬреЛ рдХреЗрд╡рд▓ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖ рд╕рдХреЗ:

  • рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдЦреЛрд▓рдиреЗ / рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ (рдпрджрд┐ рдЖрдк 15 рд╕реЗрдХрдВрдб рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдЦреЛрд▓ / рдмрдВрдж рдирд╣реАрдВ рдХрд░ рд╕рдХреЗ, рддреЛ 15 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рддреАрди рдкреНрд░рдпрд╛рд╕реЛрдВ рддрдХ)ред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдереНрд░реЗрдб рдореЗрдВ рдЦреЛрд▓реЗрдВ рдФрд░ рдмрдВрдж рдХрд░реЗрдВред рдкрд░рд┐рдгрд╛рдо: рддреАрдиреЛрдВ рдкреНрд░рдпрд╛рд╕ рдПрдХ рд╣реА рддрд░рд╣ рд╕реЗ рд▓рдЯрдХрд╛рдП рдЧрдПред
  • рдкреБрд░рд╛рдиреЗ Chrome рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдорд╛рд░реЗрдВред рдЙрдиреНрд╣реЛрдВрдиреЗ рдЬреЗрдирдХрд┐рдВрд╕ рдХреА 'рдХрд┐рд▓-рдХреНрд░реЛрдо' рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдиреМрдХрд░реА рдмрдирд╛рдИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣, рдЖрдк рдПрдХ рдШрдВрдЯреЗ рд╕реЗ рдЕрдзрд┐рдХ рдкреБрд░рд╛рдиреА рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ "рдорд╛рд░" рд╕рдХрддреЗ рд╣реИрдВ:

    рдХрд┐рд▓реЙрд▓ - рдлреЛрд▓реНрдбрд░-рд╕реЗ рез рдПрдЪ рдХреНрд░реЛрдореЗрдбреНрд░рд┐рд╡рд░
    Killall - рдлрд╝реЛрд▓реНрдбрд░-рд╕реЗ 1h рдХреНрд░реЛрдо

    рдпрд╣ рдХрдо рд╕реЗ рдХрдо рд╕реНрдореГрддрд┐ рдХреЛ рдореБрдХреНрдд рдХрд░ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди "рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ?" рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджрд┐рдпрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рдмрд╛рдд рдиреЗ рд╣рдореЗрдВ рдирд┐рд░реНрдгрдп рдХреЗ рдХреНрд╖рдг рдореЗрдВ рджреЗрд░реА рдХрд░ рджреАред
  • рдбрд┐рдмрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЧ рд╕рдХреНрд╖рдо рдХрд░реЗрдВред
  • WebDriver рдбреАрдмрдЧ рд▓реЙрдЧ рд╕рдХреНрд╖рдо рдХрд░реЗрдВред
  • рд╣рд░ 20 рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдмрд╛рдж рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВред рдпрд╣ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реЛрдЪрд╛ рдЧрдпрд╛ рдерд╛: "рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдХреНрд░реЛрдо рдЬрдорд╛ рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдердХрд╛ рд╣реБрдЖ рд╣реИ?" рдЦреИрд░, рдПрдХ рдореЗрдореЛрд░реА рд▓реАрдХ рдпрд╛ рдХреБрдЫ рдФрд░ред

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

рд╣рдо рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ: рд╣рдо 1 рд╕реЗ 1000 рддрдХ рдПрдХ рдЪрдХреНрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдЪрдХреНрд░ рдореЗрдВ рд╣рдо рдХреЗрд╡рд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ рдкрд╣рд▓рд╛ рдкреГрд╖реНрда рдмрдВрдж рдХрд░рддреЗ рд╣реИрдВред рд╣рдордиреЗ рдРрд╕рд╛ рдЪрдХреНрд░ рд▓рд┐рдЦрд╛, рдФрд░ ... рдмрд┐рдВрдЧреЛ! рдкрд░рд┐рдгрд╛рдо: рд╕рдорд╕реНрдпрд╛ рд▓рдЧрднрдЧ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд▓рдЧрднрдЧ рд╣рд░ 80 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ) рдХреЛ рджреЛрд╣рд░рд╛рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛! рдХреВрд▓! рд╕рдЪ рд╣реИ, рдЗрд╕ рдЙрдкрд▓рдмреНрдзрд┐ рдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХреБрдЫ рднреА рдирд╣реАрдВ рджрд┐рдпрд╛ред рдЖрдкрдиреЗ рдЗрд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛, 80 рд╡реЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреА, рдХреНрд░реЛрдо рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛ ... рдФрд░ рдлрд┐рд░ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ? рдЖрдк рд╕реНрдЯреИрдХ рдХреЗ рдирд┐рд╢рд╛рди, рдбрдВрдк, рд▓реЙрдЧ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ - рд╡рд╣рд╛рдВ рдХреБрдЫ рднреА рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИред Chrome рдореЗрдВ рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд┐рддрдВрдмрд░ 2017 рддрдХ рдпреЗ рдЙрдкрдХрд░рдг рд╕реЗрд▓реЗрдирд┐рдпрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ (рдкреЛрд░реНрдЯ рд╕рдВрдШрд░реНрд╖ рдореЗрдВ рдереЗ: рдЖрдк рдХреНрд░реЛрдо рдХреЛ рд╕реЗрд▓реЗрдирд┐рдпрдо рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ DevTools рдирд╣реАрдВ рдЦреБрд▓рддреЗ рд╣реИрдВ)ред рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдореИрдВ рд╕реЛрдЪ рдирд╣реАрдВ рдкрд╛рдпрд╛ рдХрд┐ рдХреНрдпрд╛ рдХрд░реВрдВред

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

рдХреНрдпрд╛ рдХрд░реЗрдВ, рдЙрджрд╛рд╕ рд░реВрдк рд╕реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдЫреЛрдбрд╝ рджрд┐рдпрд╛, рдХреНрдпреВрдмреНрд╕ рдЦреЗрд▓рдиреЗ рдЪрд▓рд╛ рдЧрдпрд╛ ... рдФрд░ рдЕрдЪрд╛рдирдХ, рд▓рдЧрднрдЧ 20 рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЧрд▓рддреА рд╕реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рдирдЬрд╝рд░ рдбрд╛рд▓рддрд╛ рд╣реВрдВ, рдФрд░ рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рддрд╕реНрд╡реАрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ:



рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ: рдПрдХ рдЙрд▓рдЯреА рдЧрд┐рдирддреА рд╣реЛрддреА рд╣реИ, рдХрд┐рддрдиреЗ рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж рд╕рддреНрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдХреНрдпреВрдмреНрд╕ рдХрд╛ рдПрдХ рдЯреЙрд╡рд░ рдмрдирд╛рддрд╛ рд╣реВрдВ, рджреЛ рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВ, рдПрдХ ... рд╕рддреНрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдкрд░реАрдХреНрд╖рдг рдЬрд╛рд░реА рд╣реИ, рдЕрдВрдд рддрдХ рдЪрд▓рддрд╛ рд╣реИ рдФрд░ рдЧрд┐рд░рддрд╛ рд╣реИ (рдЕрдм рдХреЛрдИ рддрддреНрд╡ рдирд╣реАрдВ рд╣реИ, рд╕рддреНрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИ)ред

рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ: рдХреНрд░реЛрдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдлреНрд░реАрдЬ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдЗрд╕ рд╕рдордп, рдпрд╣ рд╕рдм рдХреБрдЫ рдЗрд╕ рд╕рдордп рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЬрдм рд╕рддреНрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛, рдЗрдВрддрдЬрд╛рд░ рдХрд┐рдпрд╛, рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрд░реЛрдо рдХреНрдпрд╛ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ - рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ, рдореБрдЭреЗ рдмрд╛рдЗрдирд░реА рд╕рд░реНрдЪ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рдХреЛрдб рдХреЛ рдлрд╛рд╡рдбрд╝рд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛: рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдПрдЪрдЯреАрдПрдордПрд▓ рдХрд╛ рдЖрдзрд╛ рдмрд╛рд╣рд░ рдлреЗрдВрдХ рджреЗрдВ, рдлрд┐рд░ рд╕реЗ 80 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ - рдпрд╣ рд▓рдЯрдХрд╛ рдирд╣реАрдВ рдерд╛, рдУрд╣, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХрд╣реАрдВ рдмрд╛рд╣рд░ ... рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдордиреЗ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╕рдордЭрд╛ред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдпрд╣рд╛рдБ рд╣реИ:

 var timeout = setTimeout(sessionWatcher); 

JavaScript тАФ , , . , JavaScript- , : , <script> . , , , , . JavaScript тАФ jQuery, $, function , :

 var timeout; $(function() { timeout = setTimeout(...); }); 

рдпрд╣ рд╡реЗрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рдПрдмреАрд╕реА рд╣реИ, рд╣рд░ рдХреЛрдИ рд╢рд╛рдпрдж рдЬрд╛рдирддрд╛ рд╣реИред рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рдирд╣реАрдВ рдерд╛, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рдЧрд▓рдд рдерд╛ред рдЬрдм рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ 1000 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреЛрдЧ рджреЛрд╣рд░рд╛рдпрд╛, рддреЛ рдпрд╣ рдЕрдм рд▓рдЯрдХрд╛ рдирд╣реАрдВ рд╣реИред

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

, flaky- , , , . , тАФ , , ( ). , . , : ?

Chrome flaky-: -, , , .

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

. , , , . , , , , Docker.

, - , . :

  • Ajax-;
  • Ajax-;
  • JS;
  • ;
  • ;
  • ;
  • ;
  • ;
  • UI-;
  • ( ).

flaky- , . , -, : , .

. ┬л┬╗ . , flaky- , ID, flaky- . .

, : , , .

, flaky- usability, -, flaky- . .

, , тАж , , , flaky- security-, . , !

, , flaky-:

  • ;
  • Selenide;
  • ;
  • .

тАФ . flaky- , unit- , UI-? , ( ), , flaky.

Selenide .

. (, / ). , ┬л ?┬╗. , , . , .

, . , , , , . : ┬л ┬╗, , (10 , 20 , тАФ , тАФ ). , flaky - .

, flaky- :

  1. ;
  2. ;
  3. рд╡реАрдбрд┐рдпреЛред

┬л ┬╗ , , , : - . ┬л┬╗, ┬л┬╗ , : flaky-, , flaky. , , . . , Jenkins pipeline, Jenkins :

 finally { stage("Reports") { junit 'build/test-results/**/*.xml' artifacts = 'build./reports/**/*,build/test-results/**/*,logs/**/*' archiveArtifacts artifacts: artifacts } } 

finally , . : - - . Jenkins , . , Jenkins , . , .

(Selenide , ). flaky-. , Video Recorder , : video тАФ , !

, Docker: TestContainers ( Heisenbug ). Rule , тАФ Docker , , . .

 @Rule public BrowserWebDriverContainer chrome = new BrowserWebDriverContainer() .withRecordingMode(RECORD_ALL, new File("build")) .withDesiredCapabilities(chrome()); 

.

. , , , , , . flaky- .

, ! , :) . , ┬л , , ┬╗, , .

тАФ , , , , - . тАФ , тАж ! :) flaky- тАФ : !

, : 6-7 Heisenbug . , , . (, , ) .

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


All Articles