Appium vs ໂຄງການພື້ນເມືອງ: ການປຽບທຽບ

ໂດຍ Kouros Aliabadi ແລະ Rohan Janjua

ບົດຂຽນນີ້ແມ່ນບົດສະຫຼຸບຂອງປະສົບການຂອງພວກເຮົາແລະບໍ່ ຈຳ ເປັນຕ້ອງເປັນພາບລວມ. ພວກເຮົາຈະສະ ໜອງ ລິ້ງບາງຢ່າງແລະສ້າງຂໍ້ຄວາມນີ້ໃນຂໍ້ຄວາມໃນອະນາຄົດເພື່ອຊ່ວຍທ່ານໃນການຄົ້ນຄວ້າຂອງທ່ານເອງ.

ມີເຄື່ອງມືອັດຕະໂນມັດທາງເລືອກຢູ່ທີ່ນັ້ນແຕ່ ສຳ ລັບສະພາບການຂອງ blog ນີ້ພວກເຮົາຈະ ຈຳ ກັດຕົວເອງກັບ Appium ນີ້ແລະເຄື່ອງມືພື້ນເມືອງ ສຳ ລັບ iOS ແລະ Android: XCUITests ແລະ Espresso ຕາມ ລຳ ດັບ.

Appium:

Appium ແມ່ນເຄື່ອງມື defacto ສຳ ລັບການອັດຕະໂນມັດເຄື່ອນທີ່ໃນສອງສາມປີທີ່ຜ່ານມາ, ເຊິ່ງໄດ້ສະ ໜອງ ປະສົບການຄ້າຍຄື selenium. ມາຮອດປັດຈຸບັນມັນເປັນ ໜຶ່ງ ໃນຕົວເລືອກທີ່ມີຄວາມເປັນມືອາຊີບທີ່ສຸດຍ້ອນມີຫຼາຍສາເຫດ.

  1. ທຳ ອິດມັນແມ່ນພາສາສາດສະ ໜາ ດ້ານພາສາ, ມາພ້ອມກັບການສະ ໜັບ ສະ ໜູນ ພາສາທີ່ມີຄວາມນິຍົມຫຼາຍ. ຖ້າພາສາທີ່ທ່ານເລືອກມີລູກຄ້າ webdriver, ທ່ານສາມາດໃຊ້ Appium. ນີ້ແມ່ນຢູ່ໃນ jsonWireProtocol ທີ່ໃຊ້ຮ່ວມກັນ. ນີ້ແມ່ນຄວາມສະດວກສະບາຍຫລາຍເພາະມັນຊ່ວຍໃຫ້ນັກພັດທະນາທົດສອບສາມາດເອົາເຄື່ອງມືດັ່ງກ່າວໄດ້ອຍ່າງລວດໄວ. ພາສາທີ່ສະ ໜັບ ສະ ໜູນ ປະກອບມີ, ແຕ່ບໍ່ ຈຳ ກັດ Java, C #, JavaScript, Python, ແລະ ruby.
  2. ມັນງ່າຍດາຍຫຼາຍທີ່ຈະເລືອກເອົາແລະເລີ່ມຕົ້ນໄດ້ງ່າຍ. ຄ້າຍຄືກັນກັບຈຸດທີ່ຜ່ານມາ, Appium ມີຄວາມຄ້າຍຄືກັນຫຼາຍກັບ Selenium webdriver. ຜົນປະໂຫຍດຂອງສິ່ງນີ້ແມ່ນວ່າຖ້ານັກພັດທະນາການທົດສອບຖືກໃຊ້ໃນການຂຽນການທົດສອບເວບໄຊທ໌ selenium webdriver ແລ້ວ Appium ຄວນຈະຂ້ອນຂ້າງງ່າຍດາຍທີ່ຈະເລືອກເອົາແລະຂ້ອນຂ້າງສະຫຼາດ.
  3. Appium ຊ່ວຍໃຫ້ມີການທົດສອບຫຼາຍແພລະຕະຟອມຈາກຖານລະຫັດທົດສອບດຽວກັນ. ສຳ ລັບຜູ້ທີ່ເຮັດວຽກຢູ່ໃນທີມທົດສອບຂັ້ນສູນກາງຫລືທີມງານທີ່ເຮັດວຽກທົ່ວທັງ iOS ແລະ Android, ມັນສາມາດຫຼຸດຜ່ອນ ຈຳ ນວນລະຫັດ boilerplate ທີ່ ຈຳ ເປັນໃນການເຮັດວຽກກັບໂຄງລ່າງພື້ນຖານການທົດສອບແລະເຄື່ອງຈັກເຮັດວຽກ.
  4. ນອກຈາກນັ້ນ, ໃນປະສົບການຂອງບາງວິສະວະກອນທົດລອງຂອງພວກເຮົາ, ການສະ ໜັບ ສະ ໜູນ ສຳ ລັບແອັບ native ພື້ນເມືອງທີ່ໃຊ້ເວບໄຊທ໌ເວບໄຊທ໌ແມ່ນດີກວ່າໃນ Appium ຫຼາຍກວ່າຄູ່ແຂ່ງອື່ນໆ. ການສະ ໜັບ ສະ ໜູນ ທີ່ສະ ໜັບ ສະ ໜູນ ໂດຍ Appium ສາມາດເປັນສິ່ງທີ່ບໍ່ມີຄ່າເມື່ອເວົ້າເຖິງແອັບ apps ປະສົມແບບອັດຕະໂນມັດ.

ມັນຍັງມີຂໍ້ເສຍປຽບບາງຢ່າງໃນການໃຊ້ Appium:

  1. ໃນປະສົບການຂອງພວກເຮົາ, ການທົດສອບ Appium ເຮັດວຽກຊ້າກ່ວາການທົດສອບທີ່ຂຽນໄວ້ໃນທັງ XCUITests ຫຼື Espresso
  2. ລະຫັດທົດສອບບໍ່ໄດ້ຢູ່ກັບລະຫັດ dev. ໃນປັດຈຸບັນນີ້ອາດຈະມີການໂຕ້ວາທີ, ແຕ່ພວກເຮົາຮູ້ສຶກ ໝັ້ນ ໃຈວ່າລະຫັດທົດສອບແລະລະຫັດ dev ຄວນຢູ່ໃກ້ກັນ.
  3. ສຳ ລັບການທົດສອບແອັບ apps ຂ້າມເວທີ, ມັນຈະມີຄວາມສັບສົນທາງວິຊາການທີ່ກ່ຽວຂ້ອງກັບ Appium. ທ່ານອາດຈະຕ້ອງ:
  4. ຮັກສາ PageObjects / ScreenObjects 2 ຊຸດທີ່ຍຶດ ໝັ້ນ ໃນສັນຍາດຽວເພື່ອໃຫ້ພວກເຂົາຖືກເອີ້ນຈາກການທົດສອບດຽວກັນ.
  5. ຂຽນ 2 ຊຸດຂອງການທົດສອບ
  6. ຮັບປະກັນໃຫ້ນັກພັດທະນາໃຊ້ id ດຽວກັນໃນທັງສອງແອັບ.

ເຄື່ອງມືພື້ນເມືອງ:

ສອງແພລະຕະຟອມຫລັກ ສຳ ລັບການພັດທະນາແອັບ now ໃນປັດຈຸບັນມີເຄື່ອງມືການເຮັດວຽກອັດຕະໂນມັດ UI ທີ່ມີຄວາມສາມາດແຂ່ງຂັນໄດ້ຫຼາຍຂອງພວກເຂົາ: XCUITest ແລະ Espresso. ຄວາມເປັນຜູ້ໃຫຍ່ຂອງສອງເຄື່ອງມືນີ້ໄດ້ມີການປັບປຸງດີຂື້ນແລະໃນການສົນທະນາທີ່ຜ່ານມາທີ່ WWDC 2017Apple ໄດ້ແຈ້ງໃຫ້ຮູ້ວ່າພວກເຂົາມີຄວາມຫ້າວຫັນຫຼາຍໃນການເຮັດວຽກກ່ຽວກັບການປັບປຸງເຄື່ອງມືອັດຕະໂນມັດ UI ຂອງພວກເຂົາ.

  1. ມີປະໂຫຍດພື້ນຖານໃນການໃຊ້ XCUITest ແລະ Espresso: ພວກມັນຖືກສ້າງຂື້ນໂດຍຜູ້ໃຫ້ບໍລິການແພລະຕະຟອມ: Apple ແລະ Google. ເຄື່ອງມືເຫລົ່ານີ້ຈະຢູ່ ນຳ ໜ້າ ເສັ້ນໂຄ້ງ ສຳ ລັບການທົດສອບ iOS ແລະ Android. ຄຸນລັກສະນະ ໃໝ່ ໃດໆຈາກ Appium ໃນກໍລະນີຫຼາຍທີ່ສຸດຈະຖືກສ້າງຂຶ້ນເທິງ ໜ້າ ທີ່ຂອງເຄື່ອງມືພື້ນເມືອງທີ່ມີຢູ່.
  2. ຜົນປະໂຫຍດທີ່ ສຳ ຄັນອີກອັນ ໜຶ່ງ ໃນສາຍຕາຂອງພວກເຮົາແມ່ນທ່ານຈະປະກອບລະຫັດທົດສອບກັບລະຫັດແຫຼ່ງຂອງໂຄງການຂອງທ່ານ. ນີ້ແມ່ນບາງທີອາດມີການໂຕ້ວາທີເລັກນ້ອຍແຕ່ວ່າພວກເຮົາຈະປຶກສາຫາລືເລື່ອງນີ້ໃນອະນາຄົດຂ້າງ ໜ້າ. ສຳ ລັບດຽວນີ້ພວກເຮົາພຽງແຕ່ຈະລະບຸວ່າພວກເຮົາເຊື່ອວ່າການລວມເອົາລະຫັດທົດສອບຂອງທ່ານພາຍໃນໂຄງການດຽວກັນແລະເປັນພາສາດຽວກັນທີ່ນັກພັດທະນາຂອງທ່ານໃຊ້ນັ້ນມີປະໂຫຍດຫຼາຍ. ມັນເຮັດໃຫ້ມີແຮງຈູງໃຈຫຼາຍຂື້ນ ສຳ ລັບການຮ່ວມມືພາຍໃນທີມແລະຊ່ວຍໃຫ້ທຸກຄົນສາມາດປະກອບສ່ວນງ່າຍໆໃນດ້ານການພັດທະນາຊອບແວນີ້.
  3. ບາງຄັ້ງປະສົບການໃນລະບົບ android ຄາດວ່າຈະແຕກຕ່າງກັບປະສົບການຂອງ iOS, ໂດຍການຂຽນການທົດສອບຂອງທ່ານ ສຳ ລັບແຕ່ລະແພລະຕະຟອມທີ່ທ່ານບໍ່ ຈຳ ເປັນຕ້ອງສັບສົນໃນຂອບການທົດສອບຂອງທ່ານເພື່ອຈັດການກັບສະຖານະການເຫຼົ່ານີ້.
  4. ຫຼາຍ ໜ້ອຍ ຫຼາຍ. ເຄື່ອງມືພື້ນເມືອງແມ່ນມີລັກສະນະແປບໆ ໜ້ອຍ. ມັນອາດຈະມີບາງສິ່ງບາງຢ່າງທີ່ຕ້ອງເຮັດກັບສ່ວນທີ່ເຄື່ອນຍ້າຍນ້ອຍລົງແລະມີການສື່ສານຫຼາຍຊັ້ນລະຫວ່າງລະຫັດທົດສອບແລະເຄື່ອງມື, ແຕ່ວ່າການທົດສອບທີ່ຂຽນດ້ວຍເຄື່ອງມືພື້ນເມືອງເບິ່ງຄືວ່າບໍ່ມີຄວາມແຕກຕ່າງຫຼາຍ.
  5. ທ່ານສາມາດໃຊ້ຊຸດເຄື່ອງມືທີ່ໃຫຍ່ກວ່າຖ້າທ່ານໃຊ້ເຄື່ອງມືເຊັ່ນ Appium. ຍົກຕົວຢ່າງກັບ Android ທ່ານສາມາດເຂົ້າເບິ່ງທັງຫ້ອງສະ ໝຸດ UiAutomator ແລະຫ້ອງສະຫມຸດ Espresso.

Espresso:

ເຄື່ອງມືທົດສອບ Android ຂອງ Google Espresso ມີຄຸນລັກສະນະບາງຢ່າງທີ່ເປັນຂອງຕົວເອງທີ່ມີຄ່າຄວນ.

  1. Espresso ແມ່ນໄວຫຼາຍ, ພວກເຮົາບໍ່ເຄີຍເຫັນບາງສິ່ງບາງຢ່າງທີ່ໄວໃນການອັດຕະໂນມັດ UI. ມັນຄ້າຍຄືກັບ Flash ຂອງ UI automation, ບໍ່ມີເຄື່ອງມືອື່ນມາໃກ້ຄວາມໄວຂອງມັນ.
  2. ທ່ານບໍ່ ຈຳ ເປັນຕ້ອງກັງວົນກ່ຽວກັບການລໍຖ້າສິ່ງທີ່ເກີດຂື້ນຫລື ສຳ ເລັດໃນລະຫັດທົດສອບຂອງທ່ານຍ້ອນວ່າ Espresso ຈັດການສິ່ງນີ້ ສຳ ລັບທ່ານ, ຍົກເວັ້ນບາງກໍລະນີພິເສດ. ນີ້ໂດຍພື້ນຖານແລ້ວເອົາສິ່ງທີ່ຫຍໍ້ທໍ້ທີ່ສຸດກ່ຽວກັບການອັດຕະໂນມັດ UI ອອກຈາກສະມະການ.
  3. Espresso ໃຊ້ວິທີການທົດສອບ ‘ກ່ອງສີເທົາ’. ບໍ່ແມ່ນກ່ອງ ດຳ, ບໍ່ຂາວດີ. ດ້ວຍ espresso ຜູ້ທົດສອບມີການຄວບຄຸມການ ນຳ ໃຊ້ຫຼາຍກ່ວາໃນເຄື່ອງມື ດຳ ເຊັ່ນ appium.
  4. Espresso ອະນຸຍາດໃຫ້ຜູ້ທົດສອບສາມາດໃຊ້ເຄື່ອງມືຕ່າງໆເຊັ່ນ Robolectric, ໂຄງຮ່າງການເຮັດວຽກຂອງ Android SDK ໂດຍບໍ່ຕ້ອງເລີ່ມຕົ້ນການ ຈຳ ລອງຫລືສຽບໃນອຸປະກອນ. ນີ້ ໝາຍ ຄວາມວ່າຫຍັງການທົດສອບຂອງທ່ານເລີ່ມຕົ້ນໄວຂື້ນ, ແລະແລ່ນໄວຂື້ນເຊັ່ນກັນ.

ມີກອບທີ່ຄ້າຍຄືກັນກັບ Espresso, ເຊິ່ງຖືກສ້າງຂື້ນໂດຍ Google, ສຳ ລັບການທົດສອບ iOS ເຊິ່ງມີຄ່າຄວນທີ່ຈະກ່າວເຖິງນີ້: EarlGrey. ພວກເຮົາບໍ່ໄດ້ໃຊ້ມັນ, ແຕ່ຖ້າມັນ ນຳ ຜົນປະໂຫຍດບາງຢ່າງຂອງ Espresso ມາສູ່ iOS ມັນກໍ່ຄຸ້ມຄ່າທີ່ຈະຄົ້ນຫາ.

ມັນຍັງມີຂໍ້ເສຍປຽບບາງຢ່າງໃນການໃຊ້ເຄື່ອງມືທົດສອບພື້ນເມືອງ:

  1. ຖ້າທ່ານ ກຳ ລັງພັດທະນາແອັບ platform ຂ້າມເວທີຂ້າມ, ທ່ານອາດຈະຕ້ອງຮັກສາ ຈຳ ນວນການທົດສອບສອງເທົ່າທຽບໃສ່ຖ້າທ່ານໃຊ້ເຄື່ອງມືເຊັ່ນ Appium.
  2. ຖ້າທ່ານ ກຳ ລັງພັດທະນາແອັບ platform ຂ້າມເວທີ, ທ່ານ ຈຳ ເປັນຕ້ອງຮູ້ສອງພາສາ.
  3. ຄວາມສັບສົນຫຼາຍສາມາດມີສ່ວນຮ່ວມໃນວິທີການນີ້. ນີ້ແມ່ນຜົນຂ້າງຄຽງຂອງພະລັງງານພິເສດແລະການເຂົ້າເຖິງທີ່ເຄື່ອງມືເຊັ່ນ Espresso ສາມາດໃຫ້ຜູ້ທົດສອບໄດ້. ຍົກຕົວຢ່າງ Espresso ລໍຖ້າເຫດການທີ່ຈະເຮັດ ສຳ ເລັດໃນການສະ ໝັກ ພາຍໃຕ້ການທົດສອບໂດຍໃຊ້ IdlingResource. ຢ່າງໃດກໍ່ຕາມສໍາລັບບາງກໍລະນີຜູ້ທົດສອບຈະຕ້ອງປະຕິບັດ IdlingResource ດ້ວຍຕົນເອງ.
  4. ດ້ວຍເຄື່ອງມືເຊັ່ນ Espresso, ຜູ້ທົດສອບສາມາດເຮັດໃຫ້ແອັບພລິເຄຊັນເປັນສະພາບທີ່ມັນບໍ່ສາມາດບັນລຸໄດ້ຈາກທັດສະນະຂອງຜູ້ໃຊ້. ອີກເທື່ອ ໜຶ່ງ, ນີ້ແມ່ນອີກດ້ານ ໜຶ່ງ ຂອງພະລັງງານພິເສດທີ່ທ່ານໄດ້ຮັບ.