рд╕реЗрд▓реЗрдирд┐рдпрдо рдХреЗ рд╕рд╛рде рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг

рдкрд░рд┐рдЪрдп


рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЙрд╕ рдЙрдкрдХрд░рдг рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА (EDIT) рдХреЗ рд▓реЛрдб рд╡реЗрдм рдкрд╛рд░реНрдЯ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп рдореВрд▓ рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИред

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

рд╕реЗрд▓реЗрдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рди рдХрд┐ рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рдЙрдкрдХрд░рдг - рд▓реЛрдбрд░рдирд░, рдЬреЗрдореАрдЯрд░? рд▓реЛрдбрд░рдирд░ рдХреЗ рд╕рд╛рде, рдПрдХ рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рд╕рдВрджреЗрд╣ рдореЗрдВ рдбрд╛рд▓ рджрд┐рдП рдЧрдП рдереЗ - рджреЛ рд╕реМ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддреЗ рд╕рдордп, рдкреГрд╖реНрда 2 рд╕реЗрдХрдВрдб рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛, рдкреНрд▓рд╕ рдпрд╛ рдорд╛рдЗрдирд╕ 2%, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдПрдХ рд╣реА рдкреГрд╖реНрда рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ 3 рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рд▓реЛрдб рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХреЗ рдЬрд┐рддрдирд╛ рдХрд░реАрдм рд╕рдВрднрд╡ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдкреВрд░реНрдг рдЕрдиреБрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рдЙрдкрдпреБрдХреНрдд рдереЗ - рд╕рд╛рдЗрдЯ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреБрд▓ рдЬрд╛рдПрдЧреА, рдЕрд░реНрдерд╛рддред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╕реЗрд▓реЗрдирд┐рдпрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


рд╕реЗрд▓реЗрдирд┐рдпрдо рдХреЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ - рдпрд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдирд┐: рд╢реБрд▓реНрдХ рдЙрдкрдХрд░рдг рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдЙрдирдХреЗ рдкрд╛рд╕ рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ (рд╕реЗрд▓реЗрдирд┐рдпрдо рд╕рд░реНрд╡рд░, рд╕реЗрд▓реЗрдирд┐рдпрдо рдЧреНрд░рд┐рдб) рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╕рдорд░реНрдерди рд╣реИ, рдмрд╣реБрдд рд╕рд╛рд░реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг (рд░реВрд╕реА рдореЗрдВ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ ( habrahabr.ru/post/151715 habrahabr.ru/post/1526533 ) рдФрд░ рд╕рднреА рдкреНрд░рдореБрдЦ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╣реИ)ред

рд╕рд╛рдорд╛рдиреНрдп рд╡рд╛рд╕реНрддреБрдХрд▓рд╛




рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрддрд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рд░реНрдердХ рдирд╛рдо рд╣реИрдВ, рдФрд░ рди рдХреЗрд╡рд▓ рдЯреЗрд╕реНрдЯ 1, рддрд░реАрдХреЗ 2)ред

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

рджреВрд╕рд░рд╛ рд╕реНрддрд░ рд╕реНрд╡рдпрдВ рдкрд░реАрдХреНрд╖рдг рд╣реИред рд╡реЗ рд╡реНрдпрд╡рд╕рд╛рдп рд╕рдВрдЪрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ - рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ, рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреА рдЦреБрд▓реА рд╕реВрдЪреА, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЦреЛрд▓реЗрдВ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЯреИрдм рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

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

рдЙрдкрд░реЛрдХреНрдд рдХрд╛рд░реНрдп рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдиреНрдпреВрдирддрдо рдХрд╛рдо рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред

рдЗрди рд╕реНрддрд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ - рдЖрдк "рдзрд╛рд╡рдХ" рдХреЗ рд╕рд╛рде рдпрд╛ рдЙрд╕рдХреЗ рдмрд┐рдирд╛ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ - рд╡рд┐рдХрд╛рд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реЗ рд╕рд┐рд░реНрдл рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдВред рдкрд░рдорд╛рдгреБ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╕реНрддрд░ рдкрд░ рд▓реЗ рдЬрд╛рдиреЗ рд╕реЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЬрд╛рд╡рд╛ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рд╕реЗ рдЗрдВрдХрд╛рд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдбреАрдПрд╕рдПрд▓ ( en.wikipedia.org/wiki/Language_programming_language ) рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдХреЛрдИ рднреА рд╡реНрдпрдХреНрддрд┐ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦ рд╕рдХреЗред

рдкрд░реАрдХреНрд╖рдг рдЪрд▓ рд░рд╣рд╛ рд╣реИ


рдЬреНрдпреБрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рддреАрди рд╡рд░реНрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ - рдПрдХ рд╡рд░реНрдЧ рдЬреЛ рдЗрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЕрдкрдиреА рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдХрд░рддрд╛ рд╣реИ; рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП jUnit рдкрд░реАрдХреНрд╖рдг "рд╢реНрд░реЛрддрд╛" рд╡рд░реНрдЧ; рдзрд╛рдЧреЗ рдмрдирд╛рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛ред
рд░рдирд░ рдХреЛрдб
final int threadCount = readThreadCount(); final int invocationCount = readInvocationCount(); final List<Class> testClasses = readTestClasses(); ExecutorService taskExecutor = Executors.newFixedThreadPool(threadCount); for (int i = 0; i < threadCount; i++) { taskExecutor.execute(new TestRunner(invocationCount, testClasses)); } taskExecutor.shutdown(); taskExecutor.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS); 


рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛ рдХреЛрдб
 public class TestRunner implements Runnable { public void run() { JUnitCore jUnitRunner = new JUnitCore(); jUnitRunner.addListener(new TimeListener()); for (int i = 0; i < invocationCount; i++) { for (Class clazz : testClasses) { jUnitRunner.run(clazz); } Thread.sleep(invocationTimeOut); } } } 


рд╢реНрд░реЛрддрд╛ рдХреЛрдб
 public class TimeListener extends RunListener { private EtmPoint point; public void testStarted(Description description) throws Exception { point = EtmManager.getEtmMonitor().createPoint(description.getClassName() + "." + description.getMethodName();); } public void testFinished(Description description) throws Exception { point.collect(); } public void testFailure(Failure failure) throws Exception { log.error("Error in test.", failure.getException()); } } 


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


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

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

рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЕрддрд┐рд░рд┐рдХреНрдд рдореЙрдбреНрдпреВрд▓ рд▓рд┐рдЦреЗ рдЧрдП рдереЗ - рдкреВрд▓ рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░ (рдпрд╣рд╛рдВ рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░ рд╢рдмреНрдж рд╕реЗрд▓реЗрдирд┐рдпрдо рдХреА рд╢рдмреНрджрд╛рд╡рд▓реА рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдПрдХ рдкреВрд▓, рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХрд╛ рдПрдХ рдкреВрд▓, рдПрдХ рдирд┐рдпрдо (junit рд╢рдмреНрджрд╛рд╡рд▓реА рдореЗрдВ) рддреНрд░реБрдЯрд┐ рдкрд░ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░ рдкрд░реАрдХреНрд╖рдг рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдо, рдПрдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдирд┐рдпрдоред

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

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

рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо, рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рдХрд╛ рдЕрд░реНрде рд╣реИ, рдпрджрд┐ рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрди рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИ рддреЛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдВред рд╡рд╣ рдЗрд╕реЗ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рд╣реЗрдЬрддрд╛ рд╣реИ рдФрд░ рд╕реНрдЯреИрдХрдЯреНрд░реЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХрд╛ рдирд╛рдо рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХреЛ "рджреЗрдЦрдиреЗ" рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорджрдж рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ рдЗрд╕реЗ рдХреЗрд╡рд▓ рд▓реЙрдЧ рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред ( internetka.in.ua/selenium-rule-screenshot )
рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдкрд╣рд▓реЗ рд░рд╕реАрдж рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░реНрд╕ рдХреЗ рдкреВрд▓ рд╕реЗ рд╡рд╛рдкрд╕реА рд╣реЛ рд╕рдХреЗред

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

рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рд╕рдВрдЧреНрд░рд╣


рдЖрдВрдХрдбрд╝реЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд┐рдпрд╛ рдХреЛ рд╕реБрджреГрдврд╝ рдХрд░рдиреЗ рдХрд╛ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рддреИрдпрд╛рд░ рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рд╕реЗ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЦреЛрдЬ рдХрд░рдирд╛, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рджрд┐рдпрд╛ - рд╕рд┐рд░реНрдл рдПрдХ рдЙрдкрдХрд░рдг JETM (http://jetm.void.fm/) рд╣реИ, рдФрд░ рдпрд╣ 2009 рдХреЗ рдмрд╛рдж рд╕реЗ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИред рдпрджреНрдпрдкрд┐ рдЗрд╕рдХреЗ рдкрд╛рд╕ рдЕрдЪреНрдЫреЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рдФрд░ рдХреБрдЫ рдкреНрд▓рд╕ рд╣реИрдВ - рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдЖрдБрдХрдбрд╝реЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рджреВрд░рд╕реНрде рдХрдиреЗрдХреНрд╢рдиред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛрдб рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░реЗрдВ рдФрд░ http рдХрдВрд╕реЛрд▓ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ:
  BasicEtmConfigurator.configure(); EtmMonitor etmMonitor = EtmManager.getEtmMonitor(); etmMonitor.start(); HttpConsoleServer server = new HttpConsoleServer(etmMonitor); server.start(); 

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

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

рдкрд╣рд▓реВ рд╡рд┐рдзрд┐ рдХреЛрдб
  @Around("execution(public static * <    >.*.*(..))") public Object profileMethod(ProceedingJoinPoint thisJoinPoint) throws Throwable { EtmPoint point = EtmManager.getEtmMonitor().createPoint(getPointName(thisJoinPoint)); Object result = thisJoinPoint.proceed(); point.collect(); return result; } 


GetPointName рд╡рд┐рдзрд┐ рд╡рд┐рдзрд┐ рдФрд░ рдЙрд╕рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдирд╛рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрдЯрдСрдл рдмрд┐рдВрджреБ рдХрд╛ рдирд╛рдо рдмрдирд╛рддреА рд╣реИред

рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ


рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрд┐рд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдЪрд▓рд╛рдирд╛ рд╣реИред рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ - рдЖрдкрдХреЛ рдЙрди рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рди рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрд▓ рд░рд╣реЗ рд╣реЛрдВрдЧреЗред рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рдпрд╣ IE 9. рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдорд╢реАрди рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде IE рдкрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рддрд╛рдХрд┐ рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдХрд╛рдо рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░ рд╕рдХреЗ (рд╕реЗрд▓реЗрдирд┐рдпрдо рдореЗрдВ, рдПрдХ рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ)ред рдирддреАрдЬрддрди, рдореЗрд░реА рдорд╢реАрди рдкрд░ (4GB RAM, 2.3 Core 2 Duo) рдХреЗрд╡рд▓ 4 IE рдЙрджрд╛рд╣рд░рдгреЛрдВ рдиреЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ред рдЬреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ - рджреЛ рд╕реМ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 50 рдорд╢реАрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрд╕рдХрд╛ рд╡рд┐рдХрд▓реНрдк рддрд▓рд╛рд╢рдирд╛ рдЬрд░реВрд░реА рдерд╛ред рдФрд░ рдпрд╣: рдП) рдЕрдиреНрдп рдбреЗрд╕реНрдХрдЯреЙрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ b) рд╣реЗрдбрд▓реЗрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ред

рдбреЗрд╕реНрдХрдЯреЙрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ, FF рдФрд░ Chrome рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХреНрд░реЛрдо рдХреЗ рд╕рд╛рде, рд╕реНрдерд┐рддрд┐ рд╕рдорд╛рди рдереА, рд╕рд╛рде рд╣реА рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХреНрд░реЛрдо рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдЬрд┐рд╕рдиреЗ рд╕рдВрд╕рд╛рдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдмрдврд╝рд╛ рджрд┐рдпрд╛ред рдПрдлрдПрдл рдХреЗ рд╕рд╛рде, рд╕реНрдерд┐рддрд┐ рдереЛрдбрд╝реА рдмреЗрд╣рддрд░ рдереА - 5 рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдиреЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░реНрд╕ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓реЙрдиреНрдЪ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рд╣реБрдЖред

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

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдо рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдПрдлрдПрдл рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рд▓реМрдЯ рдЖрдПред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕рдореЗрдВ рдЕрд▓рд░реНрдЯ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдБ рднреА рдереАрдВ, рдХрднреА-рдХрднреА java.lang.Boolean рдХреЛ java.lang.String (java.lang.ClassCastException) рдореЗрдВ рдбрд╛рд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдпрд╣рд╛рдБ Google рддреНрд░реБрдЯрд┐ рдХреЛрдб рдХреА рддреНрд░реБрдЯрд┐ рдХрд╛ рд▓рд┐рдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) / рд╕реЗрд▓реЗрдирд┐рдпрдо / рдореБрджреНрджреЛрдВ / рд╡рд┐рд╕реНрддрд╛рд░? рдЖрдИрдбреА = 3565 )ред рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рд░реНрдЯ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдХрд▓рд╛ред рддреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЖрдк рдлрд┐рд░ рд╕реЗ HtmlUnit рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╕рднреА рд╣реЗрдбрд▓реЗрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЙрдирдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЕрд╕реБрд╡рд┐рдзрд╛ рд╣реЛрддреА рд╣реИ, рд╡реЗ рдкреГрд╖реНрда рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рд╕рдордЭрдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐ рдХреНрдпреЛрдВ рд╣реБрдИред рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдмрд╣реБрдд рдорджрдж рдирд╣реАрдВ рдХрд░рддреА рд╣реИ - рдХрднреА-рдХрднреА рдпрд╣ рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рд╕реЗрд▓реЗрдирд┐рдпрдо рдХрд╛ рд╡рд┐рдиреНрдпрд╛рд╕


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

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

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


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

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

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

рд╕рдВрдХреНрд╖реЗрдк


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


рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рдордп рдХреА рдирд┐рд░реНрднрд░рддрд╛:

200 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рддрдХ рдкреНрд▓реЙрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдЬрд╛рд░реА рд░рд╣реЗрдВрдЧреЗред рдкрд░рд┐рдгрд╛рдо рдЗрд╕рдХреЗ рдЬреИрд╕рд╛ рдПрдХ рдЧреНрд░рд╛рдл рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ( msdn.microsoft.com/en-us/library/bb924375.aspx рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛):


рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рд╕рд┐рд╕реНрдЯрдо рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдФрд░ рдЗрд╕рдХреА рдЕрдбрд╝рдЪрдиреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред

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


All Articles