рдбрд┐рдЯреЙрдХреНрд╕ рдФрд░ рдПрдкрд┐рдпрдо: рд░реАрдРрдХреНрдЯрд┐рд╡ рдиреЗрдЯрд┐рд╡ рдореЗрдВ рдСрдЯреЛрдореЗрдЯреЗрдб рдЗрдВрдЯрд░рдлреЗрд╕ рдЯреЗрд╕реНрдЯ



рдЕрдкрд░рд┐рдЪрд┐рдд рдореЛрдмрд╛рдЗрд▓ рд╡рд╛рддрд╛рд╡рд░рдг


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

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

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

рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рджреЛ рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛, рдЬреЛ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЦреБрдж рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВред

Appium


рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ рд╕реЗрд▓реЗрдирд┐рдпрдо рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдПрдкрд┐рдпрдо рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдврд╛рдВрдЪрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рджреЗрд╢реА рдореЛрдмрд╛рдЗрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╕рдореБрджрд╛рдп рд╣реИред React.js рд╕реЗ рдкрд╣рд▓реЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛, рдпрд╣ рдПрдХ рдиреЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдХреЛрдИ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИред

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

рдореИрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓ рдкрд░реАрдХреНрд╖рдг рдХреИрд╕рд╛ рд╣реИ (рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реА рдЧрдИ):

/*  selenium webdriver  node */ import wd from 'wd' /* 60  ,    ,   */ jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000 /*   Appium.    ,  localhost */ const URL = 'localhost' const PORT = 4723 /*   webdriver */ const driver = wd.promiseChainRemote(URL, PORT) /*  . *    Appium, *   ,   . */ const capabilities = { platformName: 'iOS', //  Android platformVersion: '12.1', //   deviceName: 'iPhone 8', //  тАЬAndroid EmulatorтАЭ     automationName: 'XCUITest', //   (UIAutomator2  Android) app: '/path/to/.app' //   .app ( Android  .apk) } beforeAll(async () => { try { //  ,    await driver.init(capabilities) //   await driver.sleep(4000) //  ,       ,   ! } catch(err) { console.log(err) //  ,   ,    } }) afterAll(async () => { try { await driver.quit() //   } catch(err) { console.error(err) } }); /* Jest,   ,   Appium! *     ,    * 'topLabel'  'subLabel'  *       Appium */ describe("Home Screen landing", () => { test("render search screen", async () => { let topLabel = await driver.elementById('topLabel') let subLabel = await driver.elementById('subLabel') expect(await topLabel.text()).toBe("OK") expect(await subLabel.text()).toBe(" ") }) }) 

рдкрд░реАрдХреНрд╖рдг рд╣реА, рдпреЗ рдЖрдЦрд┐рд░реА рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдВ рд╣реИрдВ рдЬреЛ рдЬрд╛рдВрдЪрддреА рд╣реИрдВ рдХрд┐ рдкрд╛рда "рдУрдХреЗ" рдФрд░ "рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди" рд╕реНрдХреНрд░реАрди рдкрд░ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдХреБрдЫ рдЦрд╛рд╕ рдирд╣реАрдВ, рд╡рд╣реА рдЬреЗрд╕реНрдЯред Appium рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкреНрд░рд▓реЗрдЦрди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрджрд╛рд╣рд░рдг рд╕рд╣рд┐рдд рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред

рдХреЗрд╡рд▓ await driver.sleep(4000) ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдХреЛрдИ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрд╡реЗрджрди рдореЗрдВ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рддрдерд╛рдХрдерд┐рдд "рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕" рдпрд╛ рдмреНрд▓реИрдХрдмреЙрдХреНрд╕ред рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рдиреЛрдб рдкрд░ рдХреЛрдб рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ http рдЕрдиреБрд░реЛрдз рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рд╡рд╛рджреЗ рдпрд╛ рдХреЙрд▓рдмреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЯрд╛рдЗрдорд░ рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗред рдпрд╣рд╛рдВ рдпрд╣ рд╣реИ, рдпреВрдЖрдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдирд╛рдЬреБрдХрддрд╛ред

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

"рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕", рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рдмрд┐рдирд╛ рдЖрд╡реЗрджрди рдХреА рдЕрд╕реЗрдВрдмрд▓реА рд╣реИред


Appium рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЛ рдХреНрдпрд╛ рдкрд╕рдВрдж рд╣реИ?

  • рдЙрджреНрдпреЛрдЧ рдореЗрдВ 7+ рд╡рд░реНрд╖ред
  • рд╡реНрдпрд╛рдкрдХ рдПрдкреАрдЖрдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБред
  • рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ (рдпрд╣ рднреА рдПрдХ рдЛрдг рд╣реИ, рдиреАрдЪреЗ рджреА рдЧрдИ рд╕реВрдЪреА)
  • рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╣рд┐рдд рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред
  • рдЬреЗрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдЪрд┐рдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбреЗрд╡рд▓рдкрд░ рд╡рд╛рддрд╛рд╡рд░рдгред
  • MS AppCenter, BrowserStack рдФрд░ AWS DeviceFarm рдореЗрдВ рдПрдВрдб-рдЯреВ-рдПрдВрдб рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред

рдореБрдЭреЗ Appium рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ

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


рддреАрди рдЯреИрдм рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ: Appium рд╕рд░реНрд╡рд░ рд▓реЙрдЧ, рдореЗрдЯреНрд░реЛ рдмрдВрдбрд▓рд░, рдФрд░ рд╕реНрд╡рдпрдВ рдкрд░реАрдХреНрд╖рдгред


detox


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

рдЬреИрд╕рд╛ рдХрд┐ Appium рдХреЗ рд╕рд╛рде, рд╣рдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред

 /*     package.json,   */ const detox = require("detox"); const config = require("./package.json").detox; /*  Jest */ const adapter = require("detox/runners/jest/adapter"); /* , *   Jest */ jest.setTimeout(120000); jasmine.getEnv().addReporter(adapter); beforeAll(async () => { /*   */ await detox.init(config); }); /* beforeEach  afterEach   Detox, *   Jest *    */ beforeEach(async function() { await adapter.beforeEach(); }); afterAll(async () => { await adapter.afterAll(); await detox.cleanup(); }); 

рдФрд░ package.json рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧ:

 "detox": { "configurations": { "ios.detox": { //   iOS (  detox test -c ios.detox) "binaryPath": "path/to/.app", "build": "xcodebuild -workspace ios/app.xcworkspace -scheme scheme -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build", //  workspace  project.      debug  production (release). "type": "ios.simulator", "name": "iPhone 8" //   }, "android.detox": { //   Android (  detox test -c android.detox) "binaryPath": "path/to/.apk", "build": "cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug && cd ..", //      debug  production (release). "type": "android.emulator", "name": "Pixel_2_API_28" //  . тАЬadb devicesтАЭ     Android } }, "test-runner": "jest", "runner-config": { "setupTestFrameworkScriptFile" : "./detox.init.js", //   "testEnvironment": "node", "testRegex": "(.*|\\.(ui))\\.(ts|tsx)$" //  ,     } "specs": "./__tests__/" //    } 

рд▓реЗрдЦрди рдкрд░реАрдХреНрд╖рдг Appium рд▓рд┐рдЦрдиреЗ рдЬрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди Detox рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдФрд░ рд╕реАрдорд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

"рдЧреНрд░реЗ рдмреЙрдХреНрд╕", рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдФрд░ рдкрд╣реБрдВрдЪ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╣реИред


рдореБрдЭреЗ Detox рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдкрд╕рдВрдж рд╣реИ

  • Wix рджреНрд╡рд╛рд░рд╛ React Native рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред
  • рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ред
  • "рдЧреНрд░реЗ рдмреЙрдХреНрд╕" рдХреА рд░рдгрдиреАрддрд┐ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред
  • рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЖрдкрдХреЛ Detox рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ

  • рд╡реЗ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдЙрддрдиреА рд╡реНрдпрд╛рдкрдХ рдирд╣реАрдВ рд╣реИрдВ рдЬрд┐рддрдиреА рдХрд┐ рдПрдкрд┐рдпрдо рдХреА рд╣реИрдВред
  • рдЫреЛрдЯрд╛ рд╕рдореБрджрд╛рдпред

рднрдВрдЧреБрд░рддрд╛


рд╣рд╛рд▓рд╛рдБрдХрд┐ рдбреЗрдЯреЙрдХреНрд╕ "рдЧреНрд░реЗ рдмреЙрдХреНрд╕" рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рднреА рдирд╛рдЬреБрдХрддрд╛ рдореМрдЬреВрдж рд╣реИред рдкрд╛рда рдЗрдирдкреБрдЯ рдФрд░ рд╕реНрд╡рд╛рдЗрдк рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг 10 рдХреЗ 1 рдорд╛рдорд▓реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ 100% рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдЧрддрд┐


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

рдХреНрдпрд╛ рдЪреБрдирдирд╛ рд╣реИ?


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

рджреЛрдиреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЛ, рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдХреЗрд╡рд▓ рджреЛ рд╣реИрдВред рдпрд╣ рд╕рдм рдЙрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдЖрдк рдФрд░ рдЯреАрдо рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

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

рд╕рдВрджрд░реНрдн


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

Appium

detox

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


All Articles