Robotium กวดวิชา: Android กรอบการทดสอบพร้อมตัวอย่าง
⚡ สรุปอย่างชาญฉลาด
Robotium เป็นโอเพ่นซอร์ส Android เฟรมเวิร์กสำหรับการทดสอบอัตโนมัติที่ขับเคลื่อนแอปพลิเคชันแบบเนทีฟและไฮบริดผ่านทางส่วนติดต่อผู้ใช้ ช่วยให้ผู้ทดสอบสามารถเขียนสคริปต์สถานการณ์การทดสอบด้านฟังก์ชัน ระบบ และการยอมรับ ซึ่งครอบคลุมหลายด้าน Android กิจกรรม.
ความหมายของ Robotium?
Robotium เป็น Android เฟรมเวิร์กสำหรับการทดสอบที่ทำการทดสอบอัตโนมัติสำหรับแอปพลิเคชันแบบเนทีฟและไฮบริด โดยใช้ Robotiumนักพัฒนาสามารถสร้างกรณีทดสอบ GUI อัตโนมัติที่มีประสิทธิภาพได้ Android แอปพลิเคชันต่างๆ นักพัฒนาสามารถเขียนสถานการณ์ทดสอบการทำงาน ระบบ และการยอมรับ ซึ่งครอบคลุมหลายด้านได้เช่นกัน Android กิจกรรม.
Robotium กรอบการทดสอบ
มาตรฐาน Android กรอบการทดสอบมีข้อจำกัดดังที่ระบุไว้ด้านล่าง
- ไม่สามารถจัดการหลายกิจกรรมได้
- ประสิทธิภาพการดำเนินการทดสอบช้า
- กรณีทดสอบมีความซับซ้อนและยากต่อการนำไปใช้
การขอ Robotium เฟรมเวิร์กเป็นตัวเลือกที่ดีกว่าสำหรับการทำการทดสอบบน Android แอพลิเคชัน
Robotium เป็นเฟรมเวิร์กโอเพนซอร์สและถือเป็นส่วนขยายของ Android เฟรมเวิร์กการทดสอบ โดยใช้ Robotiumนักพัฒนาสามารถสร้างกรณีทดสอบ GUI อัตโนมัติที่มีประสิทธิภาพได้ Android แอปพลิเคชันต่างๆ นอกจากนี้ นักพัฒนาสามารถเขียนสถานการณ์ทดสอบการทำงาน ระบบ และการยอมรับที่ครอบคลุมหลายด้านได้ Android กิจกรรม.
ตารางด้านล่างนี้สรุปคุณสมบัติขั้นสูงที่แตกต่างออกไป Robotium จากกรอบการทำงานของเครื่องมือวัดแบบพื้นฐาน
คุณสมบัติขั้นสูงของ Robotium
Robotium คลาสกรณีทดสอบ
Robotium บทความนี้ได้นำเข้าคลาสจำนวนเล็กน้อยสำหรับการทดสอบ และตัวอย่างในบทความนี้ได้นำเข้าคลาสรุ่นเก่า com.jayway.android.robotium.solo แพ็คเกจ คลาสเหล่านี้รองรับกรณีทดสอบที่ครอบคลุมกิจกรรมหลายอย่าง และ Solo ถูกรวมเข้ากับ ActivityInstrumentationTestCase2.
หมายเหตุ ปัจจุบัน Robotium การเผยแพร่เผยให้เห็นคลาสเดียวกันภายใต้รูปแบบที่สั้นกว่า com.robotium.solo แพ็คเกจ ในขณะที่พิกัด Maven ยังคงอยู่ com.jayway.android.robotium:robotium-soloปรับการนำเข้าให้ตรงกับเวอร์ชัน JAR ที่คุณเพิ่มลงในโปรเจ็กต์จริง
แผนภาพด้านล่างแสดงให้เห็นว่าคลาส Solo อยู่เหนือเคสทดสอบการวัดประสิทธิภาพอย่างไร
การบูรณาการ Robotium และ ActivityInstrumentationTestCase2
ผู้ทดสอบสามารถเขียนกรณีทดสอบได้โดยไม่ต้องมีความรู้เกี่ยวกับการออกแบบแอปพลิเคชัน ซึ่งทำให้แนวทางนี้เป็นรูปแบบหนึ่งของ การทดสอบกล่องดำนั่นเป็นข้อได้เปรียบที่โดดเด่นเมื่อเทียบกับแบบธรรมดา Android คลาสกรณีทดสอบ
วิธีใช้ Robotium
ในการใช้งาน Robotium ในของคุณ Android สำหรับโปรเจ็กต์ทดสอบ คุณต้องทำตามขั้นตอนด้านล่างนี้
วิธีใช้ Robotium
เพื่อรับประกันคุณภาพของคุณ Android หากต้องการสมัคร ให้ทำตามขั้นตอนทั้งสี่ด้านล่างนี้
- ออกแบบข้อกำหนดการทดสอบ
- พัฒนาโปรแกรมทดสอบ
- ดำเนินการทดสอบบนอุปกรณ์เป้าหมาย
- รวบรวมผลการทดสอบ
แผนผังด้านล่างแสดงขั้นตอนทั้งสี่ตามลำดับ
Android ขั้นตอนการทดสอบแอปพลิเคชัน
ขั้นตอนที่ 1) ออกแบบข้อกำหนดการทดสอบ
นี่คือขั้นตอนแรกในการทดสอบแอปพลิเคชันของคุณ ในขั้นตอนนี้ คุณจะกำหนดเป้าหมายที่จะทดสอบ Android แอปพลิเคชันมีเป้าหมายหลายอย่างที่ต้องทดสอบ เช่น ส่วนติดต่อผู้ใช้ (UI), กิจกรรม (Activity), ส่วนประกอบ (Component) และบริการ (Service) การกำหนดเป้าหมายอย่างชัดเจนจะช่วยให้คุณครอบคลุมการทดสอบได้อย่างกว้างขวาง
- วางแผนประเภทของการทดสอบที่ควรดำเนินการ (การทดสอบหน่วย การทดสอบฟังก์ชัน การทดสอบระบบ)
- ออกแบบแต่ละชิ้น กรณีทดสอบ เพื่อให้ครอบคลุมสูงสุดในขณะที่รักษาping จำนวนกรณีทดสอบน้อย ยิ่งคุณทดสอบโค้ดมากเท่าไหร่ โอกาสที่จะตรวจพบข้อผิดพลาดตั้งแต่เนิ่นๆ ก็ยิ่งสูงขึ้นเท่านั้น
ขั้นตอนที่ 2) เขียนโปรแกรมทดสอบ
ส่วนนี้จะแนะนำขั้นตอนการเขียนให้คุณ Android ทดสอบการใช้งานโปรแกรม Android JUnit การทดสอบและ Robotiumสมมติว่าคุณได้พัฒนา... Android โปรแกรมชื่อ HelloAndroidโปรแกรมนี้มีฟังก์ชันต่างๆ ดังที่อธิบายไว้ด้านล่าง
- แสดงข้อความ “Hello world!” บนหน้าจอ
- แสดงข้อความสวัสดีAndroid ข้อความจะปรากฏขึ้นเมื่อผู้ใช้กดปุ่ม "เริ่ม"
ภาพหน้าจอต่อไปนี้แสดงแอปพลิเคชันที่กำลังทดสอบทำงานอยู่บนอุปกรณ์
สวัสดีAndroid ใบสมัคร
ความต้องการของระบบ
- การขอ Android แพลตฟอร์มนี้จัดส่งมาพร้อมกับระบบที่ผสานรวมไว้ล่วงหน้า JUnit กรอบงาน 3 ข้อ ซึ่งคืออะไร
ActivityInstrumentationTestCase2สร้างขึ้นบน - เพื่อสร้าง Android โครงการทดสอบจาก Eclipseเครื่องของคุณต้องการการทำงาน Android การติดตั้ง SDK
- ติดตั้งเวอร์ชันปัจจุบัน Android ใช้ SDK ของแพลตฟอร์มแทนที่จะใช้เวอร์ชันเก่าที่ตรึงไว้
ภาพหน้าจอในคำแนะนำนี้ใช้ Eclipse โดยใช้ปลั๊กอิน ADT ซึ่งเป็นชุดเครื่องมือมาตรฐานในขณะที่เขียนตัวอย่างนี้ Eclipse ADT ไม่ได้รับการสนับสนุนอีกต่อไป ดังนั้นในเครื่องคอมพิวเตอร์รุ่นใหม่ คุณจะต้อง... ดาวน์โหลด Android Studio แต่ให้นำโค้ดทดสอบเดียวกันมาใช้ซ้ำภายใน Gradle โมดูล.
สำหรับ Robotium ดาวน์โหลดเฟรมเวิร์กการทดสอบ Robotium ห้องสมุดจาก Robotium หน้าโครงการ.
สร้าง Android โครงการทดสอบ
- คลิกไฟล์ -> ใหม่ -> อื่น ๆ
- Choose Android -> Android ทดสอบโปรเจ็กต์ตามที่แสดงในรูปด้านล่าง จากนั้นเลือก ถัดไป
สร้างใหม่ Android โครงการทดสอบ
เขียนชื่อโปรเจ็กต์ทดสอบของคุณ ตามหลักการตั้งชื่อ โปรเจ็กต์ทดสอบควรมีชื่อว่า “Hello”Androidทดสอบ".
เพิ่มชื่อโปรเจ็กต์ทดสอบตามหลักเกณฑ์การตั้งชื่อ
เลือกแอปพลิเคชันเป้าหมายที่ต้องการทดสอบ ในกรณีนี้คือแอปพลิเคชัน HelloAndroidจากนั้นคลิก เสร็จสิ้น
เลือกแอปพลิเคชันเป้าหมายที่ต้องการทดสอบ
สร้างชุดทดสอบ
จากข้อกำหนดการทดสอบของคุณ คุณจะต้องสร้างชุดทดสอบสำหรับโปรแกรมทดสอบของคุณ คุณสามารถเลือกจากตัวเลือกต่างๆ ได้ การทดสอบซอฟต์แวร์ เฟรมเวิร์ก บทช่วยสอนนี้ใช้เฟรมเวิร์กมาตรฐาน Android กรอบการทดสอบ ActivityInstrumentationTestCase2เพื่อทดสอบด้วย Robotiumเพิ่ม Robotium ไฟล์ไลบรารีไปยัง libs ไดเร็กทอรีภายในโฟลเดอร์โปรเจ็กต์ของคุณ
กรณีทดสอบกำหนดชุดข้อมูลที่ใช้ในการรันการทดสอบหลายรายการ ในการกำหนดกรณีทดสอบ ให้ทำตามโครงสร้างโปรแกรมด้านล่าง
- สร้างคลาสย่อยของ 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); } }
การเพิ่มกรณีทดสอบ
- สร้างคลาส TestCase ในแพ็กเกจเดียวกันกับชุดทดสอบ
- เพื่อทดสอบการทำงานบางอย่าง เช่น การทักทายAndroidสร้างกรณีทดสอบที่ขยายจาก ActivityInstrumentationTestCase2Android>.
- ภายในคลาสดังกล่าว ผู้ทดสอบจะได้รับกิจกรรมที่ต้องการทดสอบผ่านทางเมธอด getActivity()
- สร้างการทดสอบสำหรับกิจกรรมได้อย่างอิสระโดยการเพิ่มเมธอดชื่อ “test + ชื่อเมธอดเดิม”
- ภายในวิธีการทดสอบ ผู้ทดสอบสามารถใช้ได้ Android JUnit ฟังก์ชันที่ใช้เปรียบเทียบค่าจริงกับค่าที่คาดหวัง วิธีการเหล่านี้แสดงไว้ด้านล่าง
ตารางด้านล่างแสดงรายการวิธีการยืนยันและการโต้ตอบที่ใช้บ่อยที่สุดในทั้งสองเฟรมเวิร์ก
ตัวอย่างวิธีการของ Robotium และ Android กรอบการทดสอบ
ชุดทดสอบข้างต้นตรวจสอบว่า GUI ของแอปพลิเคชันแสดงข้อความ “Hello World!” และมีปุ่มชื่อ “Start”
ขั้นตอนที่ 3) เรียกใช้การทดสอบ
หลังจากเขียนโปรแกรมทดสอบเสร็จแล้ว ให้รันการทดสอบโดยทำตามขั้นตอนด้านล่าง
- เชื่อมต่อ a Android เชื่อมต่ออุปกรณ์เข้ากับพีซีของคุณ หรือเริ่มใช้งานโปรแกรมจำลองหากไม่มีอุปกรณ์จริง
- ใน IDE ของคุณ คลิกขวาที่โปรเจ็กต์ทดสอบ แล้วเลือก Run As → Android การทดสอบหน่วย (Unit Test)
ภาพหน้าจอด้านล่างแสดงการเริ่มการทดสอบจาก IDE
กำลังเรียกใช้โปรแกรมทดสอบ
นอกจากการรันการทดสอบจาก IDE แล้ว คุณยังสามารถรันจากบรรทัดคำสั่งได้อีกด้วย ในโปรแกรมทดสอบนี้ แพ็กเกจทดสอบคือ com.example.helloandroid.testในเทอร์มินัล Linux ให้ใช้คำสั่งต่อไปนี้เพื่อเรียกใช้การทดสอบทั้งหมดในแพ็กเกจนั้น
$ adb shell am instrument -w -e package com.example.helloandroid.test
ขั้นตอนที่ 4) รับผลการทดสอบ
หลังจากทำการทดสอบเสร็จสิ้น คุณจะต้องรวบรวมผลการทดสอบ
ในโปรแกรมทดสอบนี้ มีการเรียกใช้เมธอดทดสอบสี่เมธอด ในการทดสอบด้านล่างนี้ กรณีทดสอบทั้งหมดผ่านหมด
ผลลัพธ์การทดสอบเมื่อผ่านการทดสอบทุกกรณี
หากกรณีทดสอบใดล้มเหลว ระบบจะแสดงผลลัพธ์และระบุว่ากรณีทดสอบใดบ้างที่ล้มเหลว
ผลลัพธ์การทดสอบที่แสดงเมื่อกรณีทดสอบล้มเหลว
แหล่ง Code ตัวอย่าง
บทความนี้มีตัวอย่างโค้ดต้นฉบับที่จะช่วยให้คุณทำตามบทช่วยสอนได้ชัดเจนยิ่งขึ้นและเข้าใจรายละเอียดทางเทคนิคได้อย่างรวดเร็ว
- สวัสดีAndroid: แอปพลิเคชันที่กำลังทดสอบ
- สวัสดีAndroidเอกสาร: โปรแกรมทดสอบโดยใช้ Android กรอบการทดสอบ
ถ้าอยากเปรียบเทียบ Robotium สำหรับตัวเลือกอื่นๆ ในพื้นที่นี้ โปรดดูที่ การทดสอบแอปพลิเคชันมือถือ มัคคุเทศก์ Appium เกี่ยวกับการสอน และการสรุปโดยรวมของ เครื่องมือทดสอบแอพมือถือ.

.png)
.png)
.png)



.png)

.png)
.png)

.png)
.png)