การทดสอบประสิทธิภาพของแอพมือถือ

⚡ สรุปอย่างชาญฉลาด

การทดสอบประสิทธิภาพแอปพลิเคชันบนมือถือจะวัดว่าแอปพลิเคชันเริ่มต้นเร็วแค่ไหน ใช้แบตเตอรี่และหน่วยความจำไปเท่าใด การตอบสนองของ API รวดเร็วเพียงใด และแอปพลิเคชันทำงานได้อย่างราบรื่นเพียงใดบนเครือข่ายที่ไม่เสถียร

  • 🔘 สามหมวดหมู่: ประสิทธิภาพของอุปกรณ์ ประสิทธิภาพของเซิร์ฟเวอร์หรือ API และประสิทธิภาพของเครือข่าย เมื่อรวมกันแล้วจะช่วยแก้ไขปัญหาคอขวดของอุปกรณ์พกพาได้ทั้งหมด
  • ☑️ สัญญาณอุปกรณ์: เวลาเริ่มต้นระบบ การใช้พลังงานแบตเตอรี่ การใช้หน่วยความจำ ความแตกต่างของฮาร์ดแวร์ และการกู้คืนข้อมูลในพื้นหลัง คือการตรวจสอบอุปกรณ์หลัก
  • สัญญาณจากเซิร์ฟเวอร์: ขนาดของข้อมูลที่ส่ง จำนวนการเรียกใช้ API ต่อการดำเนินการ และแผนการสำรองข้อมูลที่จัดทำเป็นเอกสารไว้สำหรับกรณีที่เซิร์ฟเวอร์หยุดทำงาน
  • 🧪 สัญญาณเครือข่าย: ความคลาดเคลื่อน การสูญหายของแพ็กเก็ต และการเปลี่ยนแปลงความเร็วทั้งหมด ต้องแสดงผลข้อความที่ชัดเจน ไม่ใช่หน้าจอค้าง
  • 🛠️ เครื่องมือ: RobotiumMonkeyRunner และ Automator ปรากฏอยู่ในนี้ แม้ว่าสองโปรแกรมแรกจะไม่ได้รับการดูแลรักษาอีกต่อไปแล้วก็ตาม
  • 📊 ความพร้อม: รายการตรวจสอบที่ครอบคลุมเรื่อง RAM เวลาตอบสนอง การทำงานพร้อมกัน และความทนทานต่อข้อผิดพลาด จะเป็นตัวตัดสินว่าเวอร์ชันนั้นจะได้รับการอนุมัติให้เผยแพร่หรือไม่

การทดสอบประสิทธิภาพแอปพลิเคชันบนมือถือในระดับอุปกรณ์ เซิร์ฟเวอร์ และเครือข่าย

สำหรับแอปพลิเคชันบนมือถือใดๆ ประสิทธิภาพการทำงานถือเป็นสิ่งสำคัญอย่างยิ่ง หากแอปพลิเคชันบนมือถือของคุณทำงานได้ไม่ดี ผู้ใช้จะถอนการติดตั้งแอปของคุณและหาแอปพลิเคชันอื่นที่ทำงานได้ดีกว่า

แอปพลิเคชันมือถือของคุณต้องได้รับการทดสอบอย่างละเอียดก่อนที่จะเผยแพร่ให้กับผู้ใช้ปลายทาง

กลยุทธ์การทดสอบแอปพลิเคชันบนมือถือ

ประสิทธิภาพการทำงานของแอปพลิเคชันบนโทรศัพท์มือถือหรืออุปกรณ์สมาร์ทใดๆ โดยทั่วไปจะวัดเป็นสามประเภทต่อไปนี้

  • ประสิทธิภาพของอุปกรณ์
  • ประสิทธิภาพของเซิร์ฟเวอร์/API
  • ประสิทธิภาพเครือข่าย

แผนภาพด้านล่างแสดงให้เห็นถึงความสัมพันธ์ระหว่างสามชั้นดังกล่าวกับการตรวจสอบต่างๆ

แผนภูมิแสดงกลยุทธ์การทดสอบแอปพลิเคชันบนมือถือ โดยแบ่งการตรวจสอบออกเป็นสามส่วน คือ อุปกรณ์ เซิร์ฟเวอร์ และเครือข่าย

ประสิทธิภาพของอุปกรณ์

เมื่อลูกค้าพบกับแอปที่ช้า พวกเขาก็จะรู้สึกหงุดหงิด

สำหรับการตรวจสอบประสิทธิภาพของอุปกรณ์ โปรดตรวจสอบสิ่งต่อไปนี้:

  • การเริ่มต้นแอป: แอปของคุณใช้เวลาเท่าไรในการเริ่มต้น? เป็นพารามิเตอร์ประสิทธิภาพแรกที่ปรับโดยผู้ใช้ ตามกฎทั่วไป หลังจากที่ผู้ใช้แตะไอคอนแอป หน้าจอแรกควรจะแสดงภายใน 1-2 วินาที
  • ระยะเวลาการใช้งานแบตเตอรี่ขณะใช้งานแอป: เมื่อใช้งานอย่างต่อเนื่อง แอปมือถือบางแอปจะใช้พลังงานแบตเตอรี่สูงและทำให้โทรศัพท์ร้อนขึ้น ซึ่งโดยปกติแล้วจะเกิดขึ้นเมื่อแอปของคุณใช้ทรัพยากรมากกว่าที่จำเป็น ทำให้หน่วยประมวลผลทำงานหนักขึ้น
  • การใช้หน่วยความจำ: เมื่อ การทดสอบ แอพควรตรวจสอบปริมาณการใช้หน่วยความจำของแอพ การใช้ฟังก์ชันบางอย่างในแอปจะทำให้การใช้หน่วยความจำเพิ่มขึ้นด้วย ตัวอย่างเช่นใน Android แอพเมื่อมีการใช้การแจ้งเตือนแบบพุช การใช้หน่วยความจำจะเพิ่มขึ้น

    ในบางกรณี พบว่าการใช้หน่วยความจำของระบบปฏิบัติการทั้งหมดมีเพียง 14% แต่แอปใหม่ใช้งานไป 11% ดังนั้นปัจจัยเหล่านี้จะต้องได้รับการจัดการก่อนที่จะปรับใช้แอปในโลกแห่งความเป็นจริงหรือมอบให้กับลูกค้า

  • ความแตกต่างระหว่างฮาร์ดแวร์และซอฟต์แวร์: เมื่อทดสอบแอปมือถือ จำเป็นต้องตรวจสอบแอปบนอุปกรณ์ที่แตกต่างกัน อาจเป็นกรณีที่แอปทำงานได้อย่างราบรื่นบนอุปกรณ์เครื่องหนึ่ง แต่ไม่ใช่บนอุปกรณ์อื่น เช่นเดียวกับผู้ขายที่แตกต่างกันของ Android อุปกรณ์ต่างๆ เราสามารถตรวจสอบแอปบนโทรศัพท์ Samsung, HTC และ Lenovo ได้ ในทำนองเดียวกัน แอปจะต้องได้รับการทดสอบด้วย RAM และข้อกำหนดโปรเซสเซอร์ที่แตกต่างกัน เช่น 1 GB หรือ 2 GB
  • การใช้งานร่วมกับแอปพลิเคชันอื่นๆ: เมื่อแอปที่อยู่ระหว่างการทดสอบทำงานคู่ขนานกับแอปอื่นๆ ก็ไม่ควรจะมีการรบกวนใดๆ วิธีที่ดีที่สุดในการตรวจสอบคือการสลับแอปที่อยู่ระหว่างการทดสอบและแอปอื่นๆ
  • แอปทำงานอยู่เบื้องหลัง: เมื่อเรียกใช้งานแอปพลิเคชันที่ทำงานอยู่เบื้องหลัง แอปนั้นควรคงสถานะเดิมไว้ หากไม่จัดการสถานการณ์นี้อย่างถูกต้อง ข้อมูลอาจสูญหายได้ กรณีวงจรชีวิตที่เกี่ยวข้องจะกล่าวถึงในหัวข้อถัดไป การทดสอบขัดจังหวะ.

ประสิทธิภาพของเซิร์ฟเวอร์/API

เมื่อแอปพลิเคชันสื่อสารกับเซิร์ฟเวอร์ผ่าน API เวลาตอบสนองจะมีความสำคัญต่อประสิทธิภาพการทำงาน สำหรับประสิทธิภาพของเซิร์ฟเวอร์ คุณควรตรวจสอบสิ่งต่อไปนี้:

  • การรับส่งข้อมูลเข้าและออกจากเซิร์ฟเวอร์: แอปควรจัดการข้อมูลที่ส่งมาจากเซิร์ฟเวอร์ได้อย่างมีประสิทธิภาพ การโหลดข้อมูลไม่ควรใช้เวลานานเกินไป ในบางแอป ข้อมูลจะถูกส่งมาในรูปแบบเฉพาะ ดังนั้นก่อนที่จะแสดงผลในแอป ข้อมูลนั้นจะต้องถูกแปลงให้เป็นรูปแบบที่เหมาะสมเสียก่อน ในกระบวนการนี้ บางครั้งแอปอาจทำงานช้าลงและเวลาตอบสนองก็จะนานขึ้น
  • การเรียกใช้ API ที่สร้างจากแอป: จำนวนการโทรจากแอปที่กำลังทดสอบไปยังเซิร์ฟเวอร์ที่สร้างจากแอปควรน้อยกว่านี้ ในบางกรณี มีการเรียก API หลายครั้งเพื่อการทำงานเดียวกัน เพื่อประสิทธิภาพที่ดีขึ้น ควรจัดการสิ่งนี้โดยมีจำนวนการโทรน้อยลง
  • เวลาที่เซิร์ฟเวอร์ปิดปรับปรุง: หากเซิร์ฟเวอร์ล่มหรือไม่สามารถเข้าถึงได้ด้วยเหตุผลใดก็ตาม เราสามารถบันทึกข้อมูลลงในฐานข้อมูลภายในได้ ดังนั้น เมื่อใดก็ตามที่เซิร์ฟเวอร์ล่ม เราสามารถแสดงข้อมูลที่จัดเก็บไว้ในฐานข้อมูลภายในได้ อีกวิธีหนึ่งคือการใช้เซิร์ฟเวอร์ฐานข้อมูลสำรอง (failover database servers) กล่าวคือ หากเซิร์ฟเวอร์ตัวใดตัวหนึ่งล่มหรืออยู่ในช่วงการบำรุงรักษา เซิร์ฟเวอร์สำรองควรพร้อมใช้งานเพื่อสลับไปใช้งาน เซิร์ฟเวอร์สำรองควรมีการจำลองและซิงโครไนซ์อย่างต่อเนื่องกับเซิร์ฟเวอร์หลัก

ประสิทธิภาพเครือข่าย

จำเป็นต้องวัดประสิทธิภาพของแอปบนเครือข่ายและคุณสมบัติของเครือข่ายที่แตกต่างกัน

สำหรับประสิทธิภาพของเครือข่าย คุณจะตรวจสอบสิ่งต่าง ๆ ดังต่อไปนี้

  • ความตื่นเต้น: เมื่อมีความล่าช้าในการรับข้อมูลบนเครือข่ายจะเรียกว่ากระวนกระวายใจ เป็นปัญหากับเครือข่ายไร้การเชื่อมต่อหรือเครือข่ายสวิตช์แพ็คเก็ต เมื่อข้อมูลถูกกระจายออกเป็นแพ็กเก็ต แพ็กเก็ตสามารถเดินทางด้วยเส้นทางที่ไม่เหมือนกันจากผู้ส่งไปยังผู้รับ เมื่อข้อมูลมาถึงตำแหน่งที่ต้องการ ข้อมูลก็จะถูกรบกวนมากกว่าที่ถูกส่งไปในตอนแรก ในกรณีของ Jitters แอพมือถือควรจะมีความสามารถเพียงพอที่จะจัดการได้

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

  • การสูญเสียแพ็คเก็ต: ในกรณีที่แพ็กเก็ตสูญหายทั้งหมด แอปควรสามารถส่งคำขอข้อมูลใหม่อีกครั้งหรือควรสร้างการแจ้งเตือนตามนั้น หากข้อมูลไม่ครบถ้วน ผู้ใช้จะไม่สามารถเข้าใจข้อมูลที่แสดงในแอปได้ ซึ่งอาจสร้างความเครียดให้กับผู้ใช้ ดังนั้น จึงควรแสดงข้อความที่เหมาะสมหรือแจ้งให้ผู้ใช้ลองอีกครั้ง
  • ความเร็วเครือข่าย: จำเป็นต้องตรวจสอบแอปบนเครือข่ายหลากหลายประเภทที่มีความเร็วแตกต่างกัน แอปควรได้รับการทดสอบบนเครือข่าย 3G, 4G และ 5G รวมถึงเครือข่าย Wi-Fi และเครือข่ายมือถือด้วย นอกจากนี้ ควรตรวจสอบพฤติกรรมของแอป โดยเฉพาะอย่างยิ่งเมื่อมีทั้งสองเครือข่ายใช้งานได้ และเมื่อมีการสลับไปมาระหว่างเครือข่ายต่างๆ

    ตัวอย่างเช่น ปัญหาอาจเกิดขึ้นในแอปสำหรับผู้ใช้ขณะเปลี่ยนเครือข่ายโทรศัพท์จาก 4G เป็น Wi-Fi และในทางกลับกัน ในกรณีนี้ แอปจะไม่ตอบสนองและอาจต้องรีสตาร์ทแอปเพื่อใช้งานอีกครั้ง

การแก้ไขปัญหาประสิทธิภาพของแอปพลิเคชันมือถือ

หลังจากค้นพบปัญหา/ปัญหาในขณะนั้น การทดสอบประสิทธิภาพถึงเวลาแล้วที่จะ tracและแก้ไขข้อผิดพลาด

ปัญหา 1) ความล่าช้าหรือการตอบสนองที่ช้าของแอพมือถือ

สาเหตุของความล่าช้านี้อาจเป็น RAM, Cache ฯลฯ

คุณต้องฆ่ากระบวนการที่ไม่จำเป็นหรือล้างแคช การแก้ไขปัญหาการเชื่อมต่ออาจช่วยแก้ปัญหาบางอย่างที่ทำให้เกิดความล่าช้าได้

ปัญหาที่ 2) แอปรีสตาร์ท ล็อคค้าง หรือไม่ตอบสนอง

อาจแก้ไขได้โดยทำตามขั้นตอนต่อไปนี้

  • การเพิ่มประสิทธิภาพรหัสแอปพลิเคชัน
  • ซอฟต์แวร์ควรได้รับการแพตช์และอัปเดต
  • คืนค่าอัตโนมัติ
  • การจัดการ RAM หรือ ROM ในบางกรณีขณะใช้การ์ดภายนอก
  • Wiping การแบ่งพาร์ติชันแคช
  • ตรวจสอบว่าแอปทำงานร่วมกับแอปและ API ของบุคคลที่สามอื่นๆ ได้หรือไม่
  • แผนที่แสดงที่ตั้งบริษัทping แอปพลิเคชันมือถือตามอุปกรณ์

เครื่องมือทดสอบแอปบนมือถือที่มีประโยชน์

เครื่องมือทดสอบแอปบนอุปกรณ์เคลื่อนที่ แตกต่างกันไปตามอุปกรณ์หรือระบบปฏิบัติการมือถือ เครื่องมือทดสอบประสิทธิภาพของแอพมือถือทั่วไปบางตัวได้แก่

ANDROID

  • Robotium มันก็เหมือนกับ Selenium สำหรับแอปบนมือถือ ผู้ทดสอบสามารถบันทึกและเล่นขั้นตอนต่างๆ ที่จำเป็นในการทดสอบได้
  • นักวิ่งลิง MonkeyRunner สามารถรันการทดสอบบนอุปกรณ์จริงที่เชื่อมต่อกับพีซีหรืออีมูเลเตอร์ เครื่องมือนี้มี API ซึ่งช่วยให้สามารถควบคุมสมาร์ทโฟน แท็บเล็ต หรือโปรแกรมจำลองจากภายนอกได้ Android รหัส.

⚠️ หมายเหตุเกี่ยวกับเวอร์ชัน: ทั้งสอง Android รายการเหล่านี้เป็นข้อมูลเก่า Robotium ไม่มีผลงานออกใหม่ตั้งแต่ปี 2016 และ Google ระบุว่า MonkeyRunner ไม่ได้รับการดูแลรักษาอีกต่อไป โดยแนะนำให้ทีมพัฒนาไปใช้ UI Automator และฟังก์ชันอื่นๆ แทน uiautomatorviewer แทนที่จะเป็นผู้ตรวจสอบ

APPLE

  • ระบบอัตโนมัติ (Mac) Automator คือแอปพลิเคชันที่พัฒนาโดย Apple สำหรับ macOSโปรแกรมนี้ใช้การคลิกเมาส์ (หรือลากและวาง) เพื่อสร้างเวิร์กโฟลว์สำหรับการทำงานซ้ำๆ โดยอัตโนมัติเป็นชุดๆ เพื่อการแก้ไขที่รวดเร็วยิ่งขึ้น ซึ่งช่วยประหยัดเวลาและแรงงานเมื่อเทียบกับการแก้ไขไฟล์แต่ละไฟล์ด้วยตนเอง

ชาเลนจ์ (Challenge)

ความท้าทายสำคัญที่ต้องเผชิญในขณะที่การทดสอบประสิทธิภาพ ได้แก่

  • การจัดระเบียบแพลตฟอร์มมือถือที่แตกต่างกันและระบบปฏิบัติการของพวกเขา
  • จำลองการเชื่อมต่อต่างๆ เช่น 3G, 4G, 5G หรือ Wi-Fi เป็นต้น
  • ข้อจำกัดของอุปกรณ์เคลื่อนที่ เช่น การใช้แบตเตอรี่และทรัพยากร
  • การใช้งานโทรศัพท์มือถือ
  • อุปกรณ์มือถือหลากหลายขนาดเพื่อเรียกใช้แอพเดียวกัน

ตั้งค่าสภาพแวดล้อมการทดสอบประสิทธิภาพของแอปบนมือถือ

ในการกำหนดค่าสภาพแวดล้อมการทดสอบ คุณต้อง-

  • ความเข้าใจเกี่ยวกับ Mobile App ที่ต้องทดสอบ
  • การระบุระบบปฏิบัติการต่างๆ ที่แอปจำเป็นต้องใช้
  • สร้างการตั้งค่าการทดสอบ
  • สร้างโปรแกรมจำลองหรือเครื่องจำลอง
  • ต้นแบบping ของการตั้งค่าจริง
  • การเลือกเครื่องมือที่เหมาะสมสำหรับการทดสอบ

รายการตรวจสอบการทดสอบประสิทธิภาพแอปบนมือถือ

การทดสอบประสิทธิภาพของแอปบนอุปกรณ์เคลื่อนที่ถือเป็นการวัดที่สำคัญก่อนเผยแพร่ การทดสอบประสิทธิภาพเสร็จสิ้นเพื่อตรวจสอบ

  • ต้องใช้ RAM เท่าใดในการใช้แอพนี้
  • เพื่อตรวจสอบความเร็วและเวลาตอบสนองของ APP ภายใต้เครือข่ายและสถานการณ์ที่แตกต่างกัน
  • รับประกันประสบการณ์ผู้ใช้ที่สมจริงภายใต้เงื่อนไขเครือข่ายต่างๆ
  • ตรวจสอบให้แน่ใจว่าได้รับผลลัพธ์ที่ต้องการในกรณีที่มีการเชื่อมต่อหลายรายการ
  • ตรวจสอบให้แน่ใจว่าแอปพลิเคชันไม่ขัดข้อง
  • ตรวจสอบให้แน่ใจว่าแอปพลิเคชันมือถือทำงานได้ดีในขณะที่ใช้ข้อมูล Wi-Fi หรือการเชื่อมต่ออื่นๆ
  • การตรวจสอบสถานะการออนไลน์และคอขวดการใช้งาน API บนมือถือ
  • เพื่อให้แน่ใจว่ามีผู้ใช้งานพร้อมกันได้สูงสุด
  • สุดท้ายนี้ เพื่อตรวจสอบขีดจำกัดของแอปมือถือ

คำถามที่พบบ่อย

โดยทั่วไปแล้วเป้าหมายสำหรับอุปกรณ์ระดับกลางคือเวลาตอบสนองต่ำกว่าสองวินาที ซึ่งสอดคล้องกับกฎที่กล่าวไว้ข้างต้น ควรวัดค่าเปอร์เซ็นไทล์ที่ 95 แทนที่จะเป็นค่าเฉลี่ย เพราะอุปกรณ์ที่ช้าเป็นสาเหตุหลักของข้อร้องเรียนในโลกแห่งความเป็นจริง

ANR ย่อมาจาก Application Not Responding ซึ่งเกิดขึ้นเมื่อแอปพลิเคชันไม่ตอบสนอง Android เธรดหลักถูกบล็อก อัตราการทำงานโดยไม่เกิดข้อผิดพลาด คือ สัดส่วนของเซสชันที่สิ้นสุดโดยไม่เกิดข้อผิดพลาด Google แอป Play จะลดลำดับความสำคัญของแอปที่เกินเกณฑ์ที่กำหนดไว้สำหรับทั้งสองอย่าง

อัตราเฟรม 60 เฟรมต่อวินาทีเป็นเกณฑ์พื้นฐานสำหรับการเลื่อนและการแสดงภาพเคลื่อนไหว และจอแสดงผลรุ่นใหม่ๆ ตั้งเป้าไว้ที่ 90 เฟรมต่อวินาทีขึ้นไป เฟรมที่หายไป หรือที่เรียกว่า "ภาพกระตุก" จะทำให้ภาพดูคุณภาพต่ำ แม้ว่าจะไม่มีอะไรผิดพลาดก็ตาม

การเรียนรู้ของเครื่องจะกำหนดค่าพื้นฐานของแต่ละตัวชี้วัดตามรุ่นของอุปกรณ์ ดังนั้นการถดถอยจะถูกระบุเมื่อเปรียบเทียบกับฮาร์ดแวร์ที่คล้ายคลึงกัน แทนที่จะเป็นตัวเลขโดยรวม นอกจากนี้ยังจัดกลุ่มค่าที่ทำงานช้าด้วย tracเช่น การจัดอันดับว่าปัญหาคอขวดใดส่งผลกระทบต่อเซสชันมากที่สุด

Copilot สร้างโครงสร้างพื้นฐานที่ซ้ำซ้อนได้ดี เช่น โครงร่างสคริปต์การโหลด หรือลูปที่เก็บตัวอย่างหน่วยความจำ ค่าเกณฑ์และการเลือกอุปกรณ์สะท้อนถึงผลิตภัณฑ์ของคุณ ดังนั้นควรตรวจสอบข้อความยืนยันที่สร้างขึ้นทุกข้อความก่อนที่จะเชื่อถือ

ใช้ทั้งสองอย่าง โปรแกรมจำลองช่วยให้สามารถใช้งานเครือข่ายและ API ซ้ำได้ในราคาประหยัดภายในไปป์ไลน์ ในขณะที่อุปกรณ์จริงจำเป็นสำหรับการทดสอบการใช้พลังงานแบตเตอรี่ การลดประสิทธิภาพเนื่องจากความร้อน และพฤติกรรมเฉพาะของผู้ผลิต ซึ่งโปรแกรมจำลองไม่สามารถจำลองได้อย่างแม่นยำ

JMeter เป็นเครื่องมือโอเพนซอร์สที่นิยมใช้กันทั่วไปสำหรับการจัดการคำขอพร้อมกันจำนวนมากที่ปลายทางเดียวกันกับที่แอปพลิเคชันใช้งาน โดยจะวัดความจุของเซิร์ฟเวอร์ ซึ่งเครื่องมือฝั่งอุปกรณ์ไม่เคยเห็น

มีการบันทึกขีดจำกัดสำหรับเวลาเริ่มต้น หน่วยความจำ หรือขนาดไฟล์ที่ระบบสร้างจะตรวจสอบโดยอัตโนมัติ หากเกินขีดจำกัดนี้ การสร้างจะล้มเหลว ทำให้ตรวจพบข้อผิดพลาดในระหว่างการรวมโค้ด แทนที่จะเป็นหลังจากปล่อยเวอร์ชันใหม่แล้ว

สรุปโพสต์นี้ด้วย: