เนื่องจากการรันเทสในแต่ละข้อนั้น เราสามารถที่จะกำหนดการล้างข้อมูล App ในเครื่องผ่านการใช้งาน Reset Strategies ซึ่งการเลือกใช้งาน Reset Strategies แต่ละแบบนั้นมีผลเป็นอย่างมากกับเวลาในการรันเทส

Reset Options

PlatformdefaultfullResetnoReset
iOSปิด Application
*ไม่ลบข้อมุล app
แต่จะไม่ uninstall app
ปิด Application
ลบข้อมูล app
uninstall app
ไม่ปิด application
ไม่ลบข้อมุล app
ไม่ uninstall app
Androidปิด Application
*ลบข้อมูล app
ไม่ uninstall app
ปิด Application
ลบข้อมูล app
uninstall app
ไม่ปิด application
ไม่ลบข้อมุล app
ไม่ uninstall app

จากตารางด้านบนจะเห็นว่า แต่ละ option ส่งผลต่อการเทสแตกต่างกันมาก

ข้อควรระวังคือ default reset option iOS และ Android จะค่อนข้างแตกต่างกันในเรื่องของการจัดการข้อมูลนั่นเอง


# Default
Open Application  http://127.0.0.1:4723/wd/hub
...  automationName=${ANDROID_AUTOMATION_NAME}
...  platformName=${ANDROID_PLATFORM_NAME}
...  platformVersion=${ANDROID_PLATFORM_VERSION}
...  app=${ANDROID_APP}  appPackage=io.appium.android.apis
...  appActivity=.app.SearchInvoke


# No Reset
Open Application  http://127.0.0.1:4723/wd/hub
...  automationName=${ANDROID_AUTOMATION_NAME}
...  platformName=${ANDROID_PLATFORM_NAME}
...  platformVersion=${ANDROID_PLATFORM_VERSION}
...  app=${ANDROID_APP}  appPackage=io.appium.android.apis
...  appActivity=.app.SearchInvoke
...  fullReset=${False}
...  noReset=${True}


# Full Reset
Open Application  http://127.0.0.1:4723/wd/hub
...  automationName=${ANDROID_AUTOMATION_NAME}
...  platformName=${ANDROID_PLATFORM_NAME}
...  platformVersion=${ANDROID_PLATFORM_VERSION}
...  app=${ANDROID_APP}  appPackage=io.appium.android.apis
...  appActivity=.app.SearchInvoke
...  fullReset=${True}
...  noReset=${False}

เมื่อไหร่ควรใช้ Option ไหน

ตัวอย่าง การเทส module login
การเทส module นี้ เริ่มต้นด้วยการใช้งาน fullReset ก่อนเพื่อเป็นการล้างสถานะล่าสุดใน Suite setup 1 ครั้ง แล้วหลังจากนั้น ในแต่ละ Test Setup เราก็สามารถที่จะรัน App โดยใช้ noReset เพื่อลดระยะเวลาการรันเทสลงนั่นเอง

แต่เราต้องไม่ลืมที่จะ Sign Out ใน Test Teardown ด้วยเพื่อที่เวลารันเทสเคสข้อถัดไปจะสามารถเริ่มจากหน้า Login Page นั่นเอง

References: https://appium.io/docs/en/writing-running-appium/other/reset-strategies/index.html

Previous articleจัดการขนาดหน้าจอของ Browser ด้วย View Port
Next articleมีอะไรใหม่บ้างกับ Appium Update 1.6 บน Robot Framework