การทดสอบมือถือ - 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- ตอนนี้เรียกใช้กรณีทดสอบ หากกรณีทดสอบสำเร็จคุณจะเห็นผลลัพธ์ต่อไปนี้!