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

рдпрд╣ рд▓реЗрдЦ
WaveAccess рдХреЗ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛
редрд╣рдо 10 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рдПрдХ рдЙрддреНрдкрд╛рдж рдЬрд╛рд░реА рдХрд░рдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдирд╣реАрдВ рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдЯреАрдо рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ "рдкрдВрдкрд┐рдВрдЧ" рдЕрдиреНрдп рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред
рд╕реИрдХрдбрд╝реЛрдВ Android рдбрд┐рд╡рд╛рдЗрд╕, OS рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде iPhones, рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдХрд░реНрдг QA рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреЛ рдЕрд╕рд▓реА рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ "рдкрдХрдбрд╝рдиреЗ" рджреЛрд╖реЛрдВ рдХрд╛ рдХрд╛рдо рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреБрдЫ рд▓реЛрдЧ 10, 20, 50 рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдПрдХ рд╣реА рдореИрдиреБрдЕрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рдордиреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╣рдорд╛рд░реЗ рдХреМрд╢рд▓ рдХреЛ рдкрдВрдк рдХрд┐рдпрд╛, рдЦрд╛рд╕рдХрд░ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ред рд▓реЗрдХрд┐рди рдЪрд▓реЛ рдИрдорд╛рдирджрд╛рд░ рд░рд╣реЗрдВ: рдСрдЯреЛрдЯреЗрд╕реНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП 20 рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рднреА рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рд░рдЦрд░рдЦрд╛рд╡ рдПрдХ рд╕рд┐рд░рджрд░реНрдж рд╣реИред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдордиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдореЗрдВ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдирдИ Microsoft рдРрдк рд╕реЗрдВрдЯрд░ рд╕реЗрд╡рд╛ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред
рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╕рд╡рд╛рд▓ рдХреНрдпреЛрдВ рдЙрдард╛
рдЕрдм рд╣рдо рдЦрд░реАрджрд╛рд░реА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкрд░рд┐рдпреЛрдЬрдирд╛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЪрд▓ рд░рд╣реА рд╣реИ: рдЧреНрд░рд╛рд╣рдХ рд▓рдЧрд╛рддрд╛рд░ рдХреБрдЫ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рдХреЗрд╡рд▓ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджрд░реНрдЬрдиреЛрдВ рд╕реНрдХреНрд░реАрди рд╣реИрдВ, "рдЦрд░реАрджреЗрдВ" рд╕реЗ рд▓реЗрдХрд░ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрджреЗрд╢ рд╡рд┐рдХрд▓реНрдк, рдкреБрд╢, "рдЕрдкрдирд╛ рдзрдиреБрд╖ рдПрдХрддреНрд░ рдХрд░реЗрдВ" рдлрд╝рдВрдХреНрд╢рдиред рдФрд░ рдпрд╣ рд╕рдм рд╕рдордп, рдирд┐рд╡реЗрд╢рдХреЛрдВ рдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐рдпреЛрдВ, рдирдП рд╢реЙрдкрд┐рдВрдЧ рд╕реЗрдВрдЯрд░реЛрдВ рдореЗрдВ рд▓реЙрдиреНрдЪ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд░рд┐рд▓реАрдЬ рдХреА рдЧрддрд┐ (рдЙрддреНрдкрд╛рдж рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ рдХреЗ рдмрд┐рдирд╛) рдЙрдЪреНрдЪрддрд░ рд╣реЛрддреА рд╣реИ - рдмреЗрд╣рддрд░ред
рдЕрдм рддрдХ, рд╣рдо рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдСрдЯреЛрдЯреЗрд╕реНрдЯреНрд╕ рдЪрд▓рд╛рддреЗ рдереЗ рдЬреЛ рд╣рдорд╛рд░реЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рдереЗ (рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП - рд▓рдЧрднрдЧ 30 рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ "рд╕реЗрдм")ред рдЕрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХ рдирдП рд╕реНрддрд░ рдкрд░ рдкрд╣реБрдВрдЪ рд░рд╣рд╛ рд╣реИ, рджрд░реНрд╢рдХ рдмрдврд╝ рдЧрдП рд╣реИрдВ, рдФрд░ рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рдЧрдИ рд╣реИред рдЕрдзрд┐рдХ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдСрдЯреЛрдЯреЗрд╕реНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИред
рд░рд┐рд▓реАрдЬ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореИрдВ рд╕рднреА рдЖрдзреБрдирд┐рдХ рдФрд░ рд╕рд┐рджреНрдз рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдерд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛: рдЖрдИрдУрдПрд╕ + рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдПрдХ рдмрдбрд╝реА рд╕реВрдЪреА, рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрддрддрд╛ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдкрд░ рдХреНрд░реЙрд╕-рд╕рдореАрдХреНрд╖рд╛, рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдФрд░ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгред
рд╣рдордиреЗ рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрднреНрдпрд╛рд╕ рдХреЛ рдкрд╣рд▓реЗ, рд╡реНрдпрдХреНрддрд┐рдЧрдд рдФрд░ рд╕рдВрдпреЛрдЬрди рджреЛрдиреЛрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдкреИрдорд╛рдиреЗ рдФрд░ рдЯреАрдо рдХреЗ рдмрдбрд╝реЗ рдЖрдХрд╛рд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдЙрдкрдХрд░рдг рдХреЛ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рджреЗрдВ рдФрд░ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡рд┐рдХрд╛рд╕ рдФрд░ рд╡рд┐рддрд░рдг рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдореЙрдирд┐рдЯрд░ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЯреАрдо рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рднреВрдорд┐рдХрд╛ рдХреА рдЕрдкрдиреА рд╢рд░реНрддреЗрдВ рдереАрдВ: рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд╛рдкрд┐рдд рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА, рдмрд┐рд▓реНрдб рдЯреВрд▓, рдЖрджрд┐) рдХреЛ рдмрджрд▓рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдереЗ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдмрд╣реБрдд рдирдП, рд╕реНрд╡рд┐рдЪ рдореЗрдВ рдЕрд╕рддреНрдпрд╛рдкрд┐рдд рдЙрдкрдХрд░рдг рднреА рдереЗред рдкрд░реАрдХреНрд╖рдг рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдиреЗ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдореЗрдВ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рднрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХрд╛ рд╕рдкрдирд╛ рджреЗрдЦрд╛, рдкреНрд░рдмрдВрдзрдХреЛрдВ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдиреЗ рдкрд╛рд░рджрд░реНрд╢реА рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд╕рд╛рде рдкреВрд░реЗ рд░рд╛рдЬреНрдп рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЪрд╛рд╣рддреЗ рдереЗред
рдПрдХ рдЙрдкрдХрд░рдг рдЪреБрдирдиреЗ рдореЗрдВ рдПрдирд╛рд▓реЙрдЧреНрд╕ рдХрд╛ рдЕрдзреНрдпрдпрди рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪрд░рдг рд╣реИред рд╣рдордиреЗ рдРрд╕реА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Appium рдкрд░реАрдХреНрд╖рдг, BrowserStack)ред Microsoft рдРрдк рдХреЗрдВрджреНрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЕрд╡рдзрд┐ рджреА рдЧрдИ рдереА, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдФрд░ рд╕рдордЭрдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдерд╛ рдХрд┐ рдпрджрд┐ рд╣рдо рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдФрд░ рд╕рдВрд╕рд╛рдзрди рд╕рдорд░реНрдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдкреВрд░реА рд░рд┐рд▓реАрдЬрд╝ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ред рд╣рдо рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рдерд╛ред
IOS рдРрдк рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ
рдЗрд╕рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдг рдЕрд╡рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЬреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд▓рдЧрд╛рддрд╛ рд╣реИ, рд╣рдо Microsoft рдРрдк рдХреЗрдВрджреНрд░ рдореЗрдВ рдЕрдкрдирд╛ iOS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ:

рдПрдХ рдордВрдЪ рдЪреБрдиреЗрдВ:

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ App Center SDK рдЬреЛрдбрд╝реЗрдВ:
pod 'AppCenter'
рдЪреВрд▓реНрд╣рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, AppDelegate.swift рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЖрдпрд╛рдд рдХрдорд╛рдВрдб рдХреЗ рддрд╣рдд рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВ:
import AppCenter import AppCenterAnalytics import AppCenterCrashes
рдЙрд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝ рджреАрдВ рд╣реИрдВрдлрд╝рдирд┐рд╢реНрд▓рд╛рдВрдЪрд┐рдВрдЧ рд╡рд┐рдзрд┐ рд╡рд┐рдзрд┐:
MSAppCenter.start("{Your App Secret}", withServices:[ MSAnalytics.self, MSCrashes.self ])
рдЗрд╕реА рддрд░рд╣ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╕реА рдХреЗ рд▓рд┐рдП рд╣реИ, рдЕрдиреБрджреЗрд╢ рдХрд╛ рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг рдпрд╣рд╛рдВ рд╣реИ ред
рдмрдирд╛рдПрдВ!
рдмрд┐рд▓реНрдб рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ, рд╣рдорд╛рд░реА svc рд╕реЗрд╡рд╛ рдЪреБрдиреЗрдВред


рдмрд┐рд▓реНрдб рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред рд╕рд╛рдЗрди рдЗрди рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдРрдк рдкреНрд░рд╛рд░реВрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


рд╣реЛ рдЧрдпрд╛! рдмрд┐рд▓реНрдб рдирд╛рдЙ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдмрд┐рд▓реНрдб рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред


рдПрдВрдбреНрд░реЙрдЗрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди рдХрд╣рд╛рдиреА, рдирд┐рд░реНрджреЗрд╢ рдпрд╣рд╛рдВ рд╣реИ ред
рд╣рдо рдЖрдИрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ
рдпреВрдирд┐рдЯ- рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рджреЗрд╢реА рдкрд░реАрдХреНрд╖рдг рдЕрд╕реЗрдВрдмрд▓реА (рдПрдХ рдЪреЗрдХрдорд╛рд░реНрдХ рд╣реИ) рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдиреАрдЪреЗ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдПрдЯреА рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рддреЗ рд╣реИрдВред
IOS, Android рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╕реЗрдЯ рдХрд░реЗрдВ, рдПрдХ рд╕реЗрдЯ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рднреЗрдЬреЗрдВ
рдЯреЗрд╕реНрдЯ, рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗрдЯ рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВред рд╣рдо рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдкрд░ рд╣рдо рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдВрдЧреЗред рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП 250 рд╕реЗ рдЕрдзрд┐рдХ рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИрдВ рдФрд░ 200 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд┐рднрд┐рдиреНрди рдЖрдИрдУрдПрд╕ рдбрд┐рд╡рд╛рдЗрд╕ (рдЬреЗрдирд░реЗрд╢рди рд╡рд░реНрдЬрди + рдЖрдИрдУрдПрд╕ рд╡рд░реНрдЬрди) рд╣реИрдВред рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╕реВрдЪреА рдпрд╣рд╛рдБ рд╣реИ ред
рдпрд╣рд╛рдВ рдпрд╣ рдереЛрдбрд╝рд╛ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рдерд╛ рдХрд┐ рд╕рд╡рд╛рд▓ рдХрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЬрд╡рд╛рдм, рд░рд┐рд▓реАрдЬ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдирдП рдПрдкреНрдкрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдХреИрд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ, "рдмрд┐рдХреНрд░реА рдХреЗ 1-2 рдорд╣реАрдиреЗ рдмрд╛рдж" рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред
рд╣рдо рдРрдк рд╕реЗрдВрдЯрд░ (XCUITest рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг) рдореЗрдВ рд▓реЙрдиреНрдЪ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд▓реЙрдиреНрдЪ рдХреЗ рд▓рд┐рдП рднреЗрдЬрддреЗ рд╣реИрдВред рдРрдк рд╕реЗрдВрдЯрд░ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрднреА рднреА рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдЕрдкрдиреЗ рдорд╢реАрди рдпрд╛ рдЕрдкрдиреЗ CI рдореЗрдВ рдЯреЗрд╕реНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
Shell: # Generate an XCUITest bundle and your iOS application as described above. $ rm -rf DerivedData $ xcrun xcodebuild build-for-testing -derivedDataPath DerivedData -scheme YOUR_APP_SCHEME # Upload your test to App Center $ appcenter test run xcuitest \ --app "<app center username/<app name>" \ --devices DEVICE_SET \ --test-series "master" \ --locale "en_US" \ --build-dir DerivedData/Build/Products/Debug-iphoneos
Appium- рдкрд░реАрдХреНрд╖рдг
рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ рд╕рдорд░реНрдерд┐рдд рд▓реЛрдЧреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдРрдк рд╕реЗрдВрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдЕрдкрдиреА рд╕реАрдорд╛рдПрдВ рд▓рдЧрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Google Giuce рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред
рдорд╛рд╡реЗрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдб
рдЪрд░рдг 1. рдПрдХ рднрдВрдбрд╛рд░ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝реЗрдВ
рдЖрдкрдХреЛ pom.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ JCenter рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред
XML <repositories> <repository> <id>jcenter</id> <url>https://jcenter.bintray.com/</url> </repository> </repositories>
рдлрд┐рд░ Appium рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝реЗрдВ
XML <dependency> <groupId>com.microsoft.appcenter</groupId> <artifactId>appium-test-extension</artifactId> <version>1.3</version> </dependency>
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди, рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдПрдВрдбреНрд░реЙрдЗрдб рдФрд░ рдЖрдИрдУрдПрд╕ рдбреНрд░рд╛рдЗрд╡рд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдВрдЧреЗ (рдЬреЛ рдХрд┐ "рд▓реЗрдмрд▓" рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдЪрд░рдг 4 рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА)ред
рдЪрд░рдг 2. рдПрдХ рдмреВрдЯ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВ
рд╕реНрдирд┐рдкреЗрдЯ рдХреЛ <p> рдореЗрдВ рдЕрдкрдиреЗ pom.xml рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВред рдЕрдЧрд░ рдкреЛрдо рдлрд╛рдЗрд▓ рдореЗрдВ <рдкреНрд░реЛрдлрд╛рдЗрд▓> рд╕реЗрдХреНрд╢рди рдЧрд╛рдпрдм рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рдХреНрд░рд┐рдпрдг рдХреЗ рдмрд╛рдж, рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рд▓рдХреНрд╖реНрдп / рдЕрдкрд▓реЛрдб рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдкреИрдХ рдХрд░рддрд╛ рд╣реИ, TestCloud рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред
рдЧреНрд░реЗрдбрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдПрдБ
рдЪрд░рдг 1. рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдФрд░ рдирд┐рд░реНрднрд░рддрд╛
рд╣рдо рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ build.gradle рдореЗрдВ JCenter рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕рдХреНрд░рд┐рдп рд╣реИ:
gradle allprojects { repositories { jcenter() } }
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ build.gradle рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рд╕реНрдирд┐рдкреЗрдЯ рдЬреЛрдбрд╝реЗрдВ:
gradle androidTestCompile('com.microsoft.appcenter:appium-test-extension:1.0')
рдЧреНрд░реИрдбрд▓ 3.0 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, androidTestCompile рдХреЛ рдкрджрд╛рд╡рдирдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ AndroidTestIm рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЪрд░рдг 2. рдкреАрдПрдо рдлрд╝рд╛рдЗрд▓ рдХреА рдкреАрдврд╝реА рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░реЗрдВ
рдЕрдкрд▓реЛрдбрд░ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, pom.xml рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдмрд┐рд▓реНрдб рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдирд┐рдореНрди рд╕реНрдирд┐рдкреЗрдЯ рдЬреЛрдбрд╝реЗрдВред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рддрд╛рдХрд┐ pom-file рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХрддреНрд░ рд╣реЛ рдЬрд╛рдП:
gradle apply plugin: 'maven' task createPom { pom { withXml { def dependenciesNode = asNode().appendNode('dependencies') //Iterate over the compile dependencies (we don't want the test ones), adding a <dependency> node for each configurations.testCompile.allDependencies.each { def dependencyNode = dependenciesNode.appendNode('dependency') dependencyNode.appendNode('groupId', it.group) dependencyNode.appendNode('artifactId', it.name) dependencyNode.appendNode('version', it.version) } def profilesNode = asNode().appendNode('profiles') profilesNode.append(new XmlParser().parse('https://raw.githubusercontent.com/Microsoft/AppCenter-Test-Appium-Java-Extensions/master/gradleuploadprofilesnippet.xml')) } }.writeTo("pom.xml")
рдЯреЗрд╕реНрдЯ рдореЗрдВ рдмрджрд▓рд╛рд╡
рдЪрд░рдг 1. рдЖрдпрд╛рдд рдЬреЛрдбрд╝реЗрдВ
рдЕрдкрдиреА рдкрд░реАрдХреНрд╖рд╛ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдкреИрдХреЗрдЬ рдЖрдпрд╛рдд рдХрд░реЗрдВ:
Java import com.microsoft.appcenter.appium.Factory; import com.microsoft.appcenter.appium.EnhancedAndroidDriver; import org.junit.rules.TestWatcher; import org.junit.Rule;
рдЪрд░рдг 2. TestWatcher рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдБ
рдкреНрд░рддреНрдпреЗрдХ JUnit рдирд┐рдпрдо рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧ (рдпрд╛ рдЖрдзрд╛рд░ рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧ) рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
Java @Rule public TestWatcher watcher = Factory.createWatcher();
рдЪрд░рдг 3. рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдмрджрд▓реЗрдВ
рдШреЛрд╖рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдмрджрд▓реЗрдВ, рдпрд╛ рддреЛ AndroidDriver <MobileElement> рд╕реЗ рдПрдиреНрд╣рд╛рдВрд╕рдореЗрдВрдЯрдПрдВрдбреНрд░реЙрдпрдбрдбреНрд░рд╛рдЗрд╡рд░ <MobileElement>, рдпрд╛ IOSDriver <MobileElement> рд╕реЗ рдПрдиреНрд╣рд╛рдВрд╕реНрдбIOSDriver / MobileElement>
Java private static EnhancedAndroidDriver<MobileElement> driver;
рдЪрд░рдг 4. рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдирд╛
рд╣рдо рдбреНрд░рд╛рдЗрд╡рд░ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдлреЙрд░реНрдо рдХреА рд░реЗрдЦрд╛рдПрдВ:
Java driver = new AndroidDriver<MobileElement>(url, capabilities);
... рджрд┐рдЦрдиреЗ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛:
Java driver = Factory.createAndroidDriver(url, capabilities);
рдЗрди рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрдкрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЖрдк Driver.label ("рдЖрдкрдХрд╛ рдкрд╛рда") рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЪрд░рдгреЛрдВ рдореЗрдВ "рд▓реЗрдмрд▓" рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдкрд╛рда рдФрд░ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдВрдЧреЗред рдпрд╣ рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЖрдк рдЖрдлреНрдЯрд░ рдореЗрдердб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЯреЗрд╕реНрдЯ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдЬреБрдбрд╝ рдЬрд╛рдПрдЧрд╛ред
рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рднреА рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реБрдЖред рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рдж рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:
Java: @After public void TearDown(){ driver.label("Stopping App"); driver.quit(); }
рдРрдк рдХреЗрдВрджреНрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
рд▓реЛрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
- рдРрдк рд╕реЗрдВрдЯрд░ рдЯреЗрд╕реНрдЯ рдЕрдкрд▓реЛрдб рдХрдорд╛рдВрдб рдЬреЗрдирд░реЗрдЯ рдХрд░реЗрдВред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг (EN) - рдПрдХ рдкрд░реАрдХреНрд╖рдг рд░рди рд╢реБрд░реВ рдХрд░рдирд╛ ред
- рд╣рдо рд▓рдХреНрд╖реНрдп / рдЕрдкрд▓реЛрдб рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдкреИрдХ рдХрд░рддреЗ рд╣реИрдВ
рдЦреЛрд▓:
- mvn -DskipTests -P рддреИрдпрд╛рд░-рдЕрдкрд▓реЛрдб рдкреИрдХреЗрдЬ
- рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд░рдирд╛
рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░, рд╣рдо рд╕реВрдЪреА рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

рдкрд░рд┐рдгрд╛рдо, рд▓реЙрдЧ, рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░реАрди
рдкреНрд░рддреНрдпреЗрдХ iOS рдпрд╛ Android рдЙрдкрдХрд░рдгреЛрдВ рдкрд░, рдЖрдк рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд▓реЙрдЧ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреНрд░реИрд╢ рдХреЗ рдирд┐рджрд╛рди рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:



рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕рднреА рд▓реЙрдиреНрдЪ рдХреЗ рдЖрдВрдХрдбрд╝реЗ:

рд╕рд╣реА рд╣реИ, рдбрд┐рдмрдЧ рдФрд░ рдирд┐рд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП "рдбрд┐рд╡рд╛рдЗрд╕" рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИред рдпрджрд┐ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ рд▓реЙрдЧ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИрдВ - рд╕рдм рдХреБрдЫ рдХреЗрд╡рд▓ рд╕рдорд░реНрдерди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдПрдЯреА рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЛрдХрдкреНрд░рд┐рдп рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ - рдмреНрд░рд╛рдЙрдЬрд╝рд░рд╕реНрдЯреИрдХ - рдРрд╕рд╛ рдПрдХ рдЕрд╡рд╕рд░ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдРрдкрд┐рдпрдо рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдбрд┐рд╡рд╛рдЗрд╕ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐ URL рдФрд░ рдкреЛрд░реНрдЯ рджреЗ рд╕рдХрддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рд╣реИрд░рд╛рдиреА рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг рд╕реЗ рд▓реЗрдХрд░ рд╕рддрдд рд╡рд┐рддрд░рдг рддрдХ рдХреА рдкреВрд░реА рд░рд┐рд▓реАрдЬрд╝ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рджреА рдЧрдИ рд╣реИ: Microsoft App Center CI рдмрд┐рд▓реНрдб, рдЯреЗрд╕реНрдЯ, рд╕реНрдЯреЛрд░ рдкрд░ рддреИрдирд╛рддреА, рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕, рдХреНрд░реИрд╢рд▓реАрдЯрд┐рдХреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдЖрдзреЗ рд╕реЗ рднреА рдХрдо рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЯреАрдо рдиреЗ рдЕрдЪреНрдЫреА рдЫрд╛рдк рдЫреЛрдбрд╝реАред рд╕реНрдкрд╖реНрдЯ рдкреНрд▓рд╕ рд╕реЗ: рдЖрдкрдХреЛ рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЦреИрд░, рдЕрдиреНрдп рдЙрдкрд╣рд╛рд░ рдХреГрдкрдпрд╛:
- рдЙрдкрдХрд░рдгреЛрдВ рдХреА рднреАрдбрд╝ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
- рдЗрд╕ рд╕рд░реНрд╡рд░ рд╕реЗ 100500 рдбрд┐рд╡рд╛рдЗрд╕ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
- рдЬрдм рдпрд╣ 24 \ 7 рдХреЛ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдЧреНрд▓рд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде рд░рд╣рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
- рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрди рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
- рд╕реАрдорд┐рдд рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
Microsoft App Center рдиреЗ рд╣рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛: рдпрд╣ рдПрдХреАрдХрд░рдг рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрд╣реБрдд рдорд╛рдВрдЧ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рднреА рд╕рдорд░реНрдерд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдХрдард┐рди рд╕рдорд░реНрдерди рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЧреБрдгрд╡рддреНрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред