การทดสอบมือถือ - Robotium Framework

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

Robotium สามารถใช้ได้ทั้งสำหรับการทดสอบแอปพลิเคชันที่มีซอร์สโค้ดและแอปพลิเคชันที่มีเฉพาะไฟล์ APK เท่านั้น

ประโยชน์ของ Robotium

  • เขียนง่ายโค้ดสั้นลง ใช้เวลาน้อยที่สุดในการเขียนกรณีทดสอบที่มั่นคง

  • คุณสามารถพัฒนากรณีทดสอบที่มีประสิทธิภาพโดยมีความรู้เพียงเล็กน้อยเกี่ยวกับแอปพลิเคชันที่อยู่ระหว่างการทดสอบ

  • เฟรมเวิร์กจะจัดการกิจกรรมต่างๆของ Android โดยอัตโนมัติ ความสามารถในการอ่านของกรณีทดสอบดีขึ้นอย่างมากเมื่อเทียบกับการทดสอบเครื่องมือวัดมาตรฐาน

  • เวลาอัตโนมัติและความล่าช้า

  • ติดตามกิจกรรมปัจจุบันโดยอัตโนมัติ

  • ค้นหามุมมองโดยอัตโนมัติ

  • ตัดสินใจเองโดยอัตโนมัติ (เช่นเมื่อใดควรเลื่อน ฯลฯ )

  • ไม่มีการปรับเปลี่ยนแพลตฟอร์ม Android

  • การดำเนินการทดสอบทำได้รวดเร็ว

  • กรณีทดสอบมีประสิทธิภาพมากขึ้นเนื่องจากการเชื่อมโยงเวลาทำงานกับส่วนประกอบ GUI

  • ผสานรวมกับ Maven หรือ Ant ได้อย่างราบรื่น

ข้อเสียของ Robotium

  • Robotium ไม่สามารถจัดการกับ Flash หรือส่วนประกอบของเว็บได้

  • จัดการได้ครั้งละหนึ่งแอปพลิเคชันเท่านั้น

  • ไม่สามารถจำลองการคลิกบนคีย์บอร์ดแบบนุ่มโดยใช้ Robotium (จำเป็นต้องใช้ 'enterText ()' เพื่อป้อนข้อความลงในช่อง EditText)

  • Robotium ไม่สามารถโต้ตอบกับการแจ้งเตือนแถบสถานะได้นั่นคือดึงพื้นที่การแจ้งเตือนลงมาและคลิกที่การแจ้งเตือนที่ระบุ

  • อาจช้าเล็กน้อยโดยเฉพาะการทำงานบนอุปกรณ์รุ่นเก่า

วิธีใช้ Robotium

Step 1- ข้อกำหนดเบื้องต้นในการใช้ Robotium คือ Java SDK (ขั้นต่ำ 1.6) หากคุณไม่ได้ติดตั้ง Java ในระบบของคุณให้ทำตามขั้นตอนที่ระบุด้านล่าง

  • ดาวน์โหลด JDK และ JRE จากOracle Technology Network

  • ยอมรับข้อตกลงใบอนุญาต

  • ติดตั้ง JDK และ JRE

  • ตั้งค่าตัวแปรสภาพแวดล้อมตามที่แสดงในภาพหน้าจอด้านล่าง

Step 2- ดาวน์โหลด Android Studio จากAndroid Studio

  • ดับเบิลคลิกที่ exe และเรียกใช้โปรแกรมติดตั้ง
  • ดำเนินการต่อด้วยตัวเลือกเริ่มต้นทั้งหมด
  • ตั้งค่า ANDROID_HOME

Step 3 - ติดตั้งภาพและเครื่องมือ Android

  • คลิกที่ SDK Manager -
  • เลือกแพ็คเกจที่จำเป็น ตัวอย่างเช่นหากเรากำลังสร้างแอปสำหรับ Android 4.4.2 ให้ตรวจสอบว่าได้ตรวจสอบแพ็คเกจต่อไปนี้แล้วในส่วนเครื่องมือ -

    • เครื่องมือ SDK Android rev 22.6.3
    • เครื่องมือแพลตฟอร์ม Android rev 19.0.1
    • เครื่องมือสร้าง SDK ของ Android rev 19.1.1

Step 4 - สร้างอุปกรณ์เสมือน Android

  • เปิด Android Studio แล้วคลิก AVD Manager ในแถบเครื่องมือ AVD ช่วยให้เราทดสอบและเรียกใช้แอพ Android ของเรา
  • ใช้การตั้งค่าต่อไปนี้สำหรับ Nexus5 AVD -

    • อุปกรณ์ - Nexus 5 (4.95, 1080 x 1920; xxhdpi)
    • เป้าหมาย - Google APIs x86 (Google Inc. ) - API ระดับ 19
    • (ตรวจสอบให้แน่ใจว่าคุณได้เลือกเป้าหมายด้วย Google API ในชื่อ)
    • ซีพียู - Intel Atom (x86)
    • ทำเครื่องหมายที่ช่อง Use Host GPU
    • คลิกตกลง
  • ตอนนี้คุณควรเห็น AVD ที่คุณสร้างขึ้นใน AVD Manager ซึ่งคุณสามารถเริ่มต้นลบหรือสร้างใหม่ได้!

Step 5- ไฟล์ Robotium Jar ดาวน์โหลดไฟล์ Robotium Jar จากRobotiumTech

ทดสอบแอปด้วย Robotium

ในการทดสอบแอพกับ Robotium ให้ทำตามขั้นตอนด้านล่าง -

Step 1 - สร้างโครงการทดสอบใน Android Studio ที่ชื่อว่า "RobotiumTest"

เลือกตัวเลือกเริ่มต้นทั้งหมดจนกว่าคุณจะไปถึงหน้าหลัก

Step 2 - คัดลอกไฟล์ Robotium jar ลงในโฟลเดอร์ Lib ของโครงการ

Step 3 - เพิ่มการอ้างอิงในไฟล์ build.gradle ภายใต้ src โฟลเดอร์

androidTestCompile 'com.jayway.android.robotium: robotium-solo-5.5.3'

Step 4 - ซิงค์ Gradle

Step 5 - สร้างคลาสทดสอบดังนี้ -

package com.example;

import com.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.EditText;
import android.widget.TextView;

public class MyTestClass extends ActivityInstrumentationTestCase2<TestActivity>{

   private Solo solo;

   public MyTestClass() {
      super(TestActivity.class);
   }

   public void setUp() throws Exception {
      solo = new Solo(getInstrumentation(), getActivity());
   }

   public void testCase() throws Exception {
      String vResult="TestExample";
      EditText vEditText = (EditText) solo.getView(R.id.edit1);
      solo.clearEditText(vEditText);
      solo.enterText(vEditText,"TestExample");
      solo.clickOnButton("Submit");
      assertTrue(solo.searchText(vResult));
      TextView textField = (TextView) solo.getView(R.id.txt1);
      //Assert to verify result with visible value
      assertEquals(vResult, textField.getText().toString());
   }

   @Override
   public void tearDown() throws Exception {
      solo.finishOpenedActivities();
   }
}

Step 6- บันทึกการเปลี่ยนแปลงทั้งหมด ตรวจสอบให้แน่ใจว่าไม่มีข้อผิดพลาด

Step 7- ตอนนี้เรียกใช้กรณีทดสอบ หากกรณีทดสอบสำเร็จคุณจะเห็นผลลัพธ์ต่อไปนี้!