Robotium บทแนะนำ: ครั้งแรกของคุณ Android กรอบ

เป็นสิ่งที่ Robotium?

Robotium เป็นเฟรมเวิร์กสำหรับการทดสอบ Android เพื่อสร้างระบบอัตโนมัติในการทดสอบแอปพลิเคชันแบบเนทีฟและไฮบริด โดยใช้ Robotiumนักพัฒนาสามารถสร้างกรณีทดสอบ GUI อัตโนมัติที่มีประสิทธิภาพได้ Android การใช้งาน นอกจากนี้ นักพัฒนายังสามารถเขียนสถานการณ์การทดสอบการทำงาน ระบบ และการยอมรับ ซึ่งแพร่กระจายไปมากมาย Android กิจกรรม.

Robotium กรอบการทดสอบ

Standard Android กรอบการทดสอบมีข้อจำกัดบางประการดังนี้

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

Robotiumกรอบ เป็นทางเลือกที่ดีกว่าในการทำการทดสอบ Android ใบสมัคร

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

คุณสมบัติขั้นสูงของ Robotium
คุณสมบัติขั้นสูงของ Robotium

Robotium คลาสกรณีทดสอบ

Robotium ใช้ชุดคลาส (com.jayway.android.robotium.solo) สำหรับการทดสอบ คลาสนี้รองรับกรณีทดสอบที่ครอบคลุมหลายกิจกรรม Solo ถูกรวมเข้ากับ ActivityInstrumentationTestCase2

Robotium คลาสกรณีทดสอบ
บูรณาการ Robotium และ ActivityInstrumentationTestCase2

ผู้ทดสอบสามารถเขียนกรณีทดสอบได้โดยไม่ต้องมีความรู้เกี่ยวกับการออกแบบแอปพลิเคชัน (การทดสอบแบบกล่องดำ) โดยใช้ Robotium คลาสกรณีทดสอบ นี่เป็นคุณสมบัติที่โดดเด่นเมื่อเทียบกับ Android คลาสกรณีทดสอบ

วิธีใช้ Robotium

ในการใช้งาน Robotium ในของคุณ Android โครงการทดสอบ คุณต้องทำตามขั้นตอนด้านล่าง

ใช้ Robotium

การใช้ Robotium เพื่อดำเนินการทดสอบบน Android แอปพลิเคชัน. เพื่อรับประกันคุณภาพของคุณ Android การสมัครคุณควรปฏิบัติตามขั้นตอนด้านล่าง

  1. ข้อกำหนดการทดสอบการออกแบบ
  2. พัฒนาโปรแกรมทดสอบ
  3. ดำเนินงาน กรณีทดสอบ บนอุปกรณ์เป้าหมาย
  4. รวบรวมผลการทดสอบ
Android ใบสมัคร
Android ขั้นตอนการทดสอบแอปพลิเคชัน การทดสอบ ขั้นตอนการ

ขั้นตอนที่ 1) ข้อกำหนดการทดสอบการออกแบบ

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

ขั้นตอนที่ 2) เขียนโปรแกรม TEST

ส่วนนี้จะแนะนำวิธีการเขียน Android ทดสอบการใช้งานโปรแกรม Android จูนิต ทดสอบและ Robotiumสมมติว่าคุณได้พัฒนา... Android ชื่อโปรแกรม สวัสดีAndroid- โปรแกรมนี้มีฟังก์ชั่นบางอย่างที่อธิบายไว้ด้านล่าง:

  • แสดงข้อความ “สวัสดีชาวโลก!” บนหน้าจอ.
  • แสดงข้อความ สวัสดีAndroid เมื่อผู้ใช้กดปุ่ม “Start”
สวัสดีAndroid การใช้งาน
สวัสดีAndroid การใช้งาน

ความต้องการของระบบ

  • Android แพลตฟอร์มมาพร้อมกับการบูรณาการล่วงหน้า JUnit กรอบการทำงาน 3.0
  • เพื่อที่จะสร้าง Android ทดสอบโครงการจาก Eclipseคอมพิวเตอร์ของคุณต้องติดตั้งไว้:
  • รุ่นล่าสุด Android แพลตฟอร์ม (ปัจจุบัน Android 8.1)

คุณสามารถ ดาวน์โหลด Eclipse IDE พร้อม ADT ในตัว (Android เครื่องมือสำหรับนักพัฒนา). มันรวมถึงสิ่งที่จำเป็น Android ส่วนประกอบ SDK และเวอร์ชันของ Eclipse ไอดี

สำหรับ Robotium คุณต้องดาวน์โหลดเฟรมเวิร์กสำหรับการทดสอบ Robotium ห้องสมุดจาก Robotium เวปไซด์.

สร้างบัญชีตัวแทน Android โครงการทดสอบ

  • คลิกไฟล์ -> ใหม่ -> อื่น ๆ
  • เลือก: Android -> Android ทดสอบโครงการตามรูปด้านล่าง -> เลือกถัดไป
สร้างใหม่ Android โครงการทดสอบ
สร้างใหม่ Android โครงการทดสอบ

เขียนชื่อโครงการทดสอบของคุณ ตามแบบแผนการตั้งชื่อ โครงการทดสอบของคุณควรชื่อว่า "สวัสดีAndroidทดสอบ"

เพิ่มฐานชื่อโครงการทดสอบตามแบบแผนการตั้งชื่อ
เพิ่มฐานชื่อโครงการทดสอบตามแบบแผนการตั้งชื่อ

เลือกแอปพลิเคชันเป้าหมายภายใต้การทดสอบ ในกรณีนี้คือสวัสดีAndroid คลิกเสร็จสิ้น

Choose Target แอปพลิเคชันภายใต้การทดสอบ
เลือกแอปพลิเคชันเป้าหมายภายใต้การทดสอบ

สร้างชุดทดสอบ

ตามข้อกำหนดการทดสอบของคุณ คุณเริ่มสร้างชุดการทดสอบสำหรับโปรแกรมทดสอบของคุณ คุณสามารถเลือกกรอบการทดสอบต่างๆ ในบทช่วยสอนนี้ ฉันเลือกมาตรฐาน Android กรอบการทดสอบ กิจกรรมเครื่องมือวัดTestCase2คุณต้องเพิ่ม Robotium คัดลอกไฟล์ไลบรารีไปยังไดเร็กทอรี libs ในโฟลเดอร์โปรเจ็กต์ของคุณ ในกรณีที่คุณต้องการทดสอบ Robotium เฟรมเวิร์ก (คุณสร้างโฟลเดอร์ lib ในโฟลเดอร์โปรเจ็กต์ของคุณ)

กรณีทดสอบจะกำหนดฟิกซ์เจอร์เพื่อทำการทดสอบหลายรายการ เพื่อกำหนดกรณีทดสอบ คุณต้องปฏิบัติตามโครงสร้างของโปรแกรมด้านล่าง:

  • ใช้งานคลาสย่อยของ TestCase.
  • กำหนดตัวแปรอินสแตนซ์ที่เก็บสถานะของฟิกซ์เจอร์
  • เริ่มต้นสถานะของฟิกซ์เจอร์โดยการแทนที่ setUp()
  • ทำความสะอาดหลังการทดสอบโดยการแทนที่ TearDown()
โครงสร้างของโปรแกรมทดสอบ
โครงสร้างของโปรแกรมทดสอบ
package com.example.helloandroid.test;

import com.example.helloandroid.HelloAndroid;
import com.jayway.android.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.TextView;

public class HelloAndroidTest extends ActivityInstrumentationTestCase2 <HelloAndroid> {
    
	private HelloAndroid mActivity;
	private TextView mView;
	private String resourceString;
	private Solo solo;
	
	public HelloAndroidTest () {
		// TODO Auto-generated constructor stub
		super("com.example.helloandroid",HelloAndroid.class);	
	}
	
	 @Override
	protected void setUp() throws Exception {
		// TODO Auto-generated method stub
	//	super.setUp();
		 
	 	mActivity = this.getActivity();
		solo = new Solo(getInstrumentation(),getActivity());
		mView = (TextView) mActivity.findViewById(com.example.helloandroid.R.id.textview2);
		resourceString = mActivity.getString(com.example.helloandroid.R.string.hello_world);
		
	}
	 
	 @Override
	protected void tearDown() throws Exception {
		// TODO Auto-generated method stub
		//super.tearDown();
		solo.finishOpenedActivities();
	}
	
	public void testPrecondition() {
		assertNotNull(mView);
	}
	
	/* test Target application contains a text display "Hello World!"*/
	public void testSearchText() {
		assertEquals(resourceString,(String) mView.getText());
	}
	
	/* test HelloAndroid Activity on target application is exist*/
	public void testCurrentActivity() throws Exception  {
    	solo.assertCurrentActivity("wrong activity", HelloAndroid.class);
    }
    
	/* test Application UI contains "Start" button */
	/* send event click button to target application */
    public void testSearchButton() throws Exception {
    	boolean found = solo.searchButton("Start");
    	solo.clickOnButton("Start");
    	assertTrue(found);
    }

	

}

การเพิ่มกรณีทดสอบ

  • ในแพ็คเกจเดียวกันกับ TestSuite เราสร้างคลาส TestCase
  • เพื่อทดสอบกิจกรรมบางอย่าง เช่น สวัสดีAndroidสร้างขอบเขตกรณีทดสอบ ActivityInstrumentationTestCase2Android>
  • ในคลาสนี้ ผู้ทดสอบสามารถรับกิจกรรมการทดสอบผ่านเมธอด getActivity()
  • คุณสามารถสร้างการทดสอบสำหรับกิจกรรมการทดสอบได้อย่างอิสระโดยสร้างวิธีการชื่อ “ทดสอบ + ชื่อวิธีการดั้งเดิม”
  • ในวิธีทดสอบ ผู้ทดสอบสามารถใช้ได้ Android JUnit ฟังก์ชั่นเพื่อเปรียบเทียบมูลค่าจริงและมูลค่าที่คาดหวัง วิธีการเหล่านี้แสดงไว้ด้านล่าง
ตัวอย่างวิธีการของ Robotium และ Android กรอบการทดสอบ
ตัวอย่างวิธีการของ Robotium และ Android กรอบการทดสอบ

ชุดทดสอบข้างต้นตรวจสอบแล้วว่า Application GUI ต้องแสดงข้อความ “Hello World!” และมีชื่อปุ่ม “Start”

ขั้นตอนที่ 3) เรียกใช้การทดสอบ

หลังจากคุณเขียนโปรแกรมทดสอบเสร็จแล้ว ให้รันการทดสอบตามขั้นตอนด้านล่าง

  • ติดตามเราได้ที่ Android ไปยังพีซีของคุณ (หรือเริ่ม Emulator ในกรณีที่คุณไม่มีอุปกรณ์จริง)
  • ใน IDE ของคุณ คลิกขวาที่ àRun asàAndroid การทดสอบหน่วย
โปรแกรมทดสอบการทำงาน
กำลังรันโปรแกรมทดสอบ

นอกจากการรันการทดสอบบน IDE แล้ว คุณยังสามารถรันการทดสอบบนบรรทัดคำสั่งได้อีกด้วย ในโปรแกรมทดสอบนี้ แพ็คเกจการทดสอบคือ com.example.helloandroid.test ลินุกซ์ เทอร์มินัล คุณสามารถใช้คำสั่งต่อไปนี้เพื่อรันการทดสอบทั้งหมดในแพ็คเกจนี้:

$ adb shell am instrument -w -e แพ็กเกจ com.example.helloandroid.test

ขั้นตอนที่ 4) รับผลการทดสอบ

หลังจากดำเนินการทดสอบ คุณจะได้รับผลการทดสอบ

ในโปรแกรมทดสอบนี้ มีวิธีทดสอบ 4 วิธี ในกรณีนี้ กรณีทดสอบทั้งหมดจะผ่าน

ผลการทดสอบในกรณีที่ผ่านการทดสอบทุกกรณี
ผลการทดสอบในกรณีที่กรณีการทดสอบทั้งหมดผ่าน

ในกรณีที่กรณีทดสอบล้มเหลว เอาต์พุตจะแสดงขึ้นและแสดงให้คุณเห็นว่ากรณีทดสอบใดล้มเหลว

ผลการทดสอบในกรณีที่กรณีการทดสอบทั้งหมดล้มเหลว
ผลการทดสอบในกรณีที่กรณีการทดสอบทั้งหมดล้มเหลว

ตัวอย่างซอร์สโค้ด

บทความนี้มีแหล่งข้อมูลบางส่วน Code ตัวอย่างที่จะช่วยให้คุณเข้าใจบทเรียนได้ชัดเจนยิ่งขึ้นและเรียนรู้ความรู้ทางเทคนิคได้อย่างรวดเร็ว

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