Robotium ट्यूटोरियल: Android उदाहरण सहित परीक्षण ढांचा

⚡ स्मार्ट सारांश

Robotium एक खुला स्रोत है Android एक टेस्ट ऑटोमेशन फ्रेमवर्क जो नेटिव और हाइब्रिड ऐप्स को उनके यूजर इंटरफेस के माध्यम से संचालित करता है, जिससे टेस्टर कई क्षेत्रों में फैले कार्यात्मक, सिस्टम और स्वीकृति परिदृश्यों के लिए स्क्रिप्ट लिख सकता है। Android गतिविधियों.

  • 🔘 मुख्य कक्षा: सोलो क्लिक, सर्च, ड्रैग और असर्शन विधियों को उजागर करता है जो हर Robotium टेस्ट केस कॉल।
  • ब्लैक-बॉक्स के अनुकूल: टेस्ट रनटाइम पर यूआई घटकों से जुड़ते हैं, इसलिए एप्लिकेशन स्रोत के बारे में न्यूनतम ज्ञान की आवश्यकता होती है।
  • चार चरणों वाली प्रक्रिया: टेस्ट स्पेसिफिकेशन डिजाइन करें, टेस्ट प्रोग्राम लिखें, इसे किसी डिवाइस पर चलाएं, और फिर परिणाम एकत्र करें।
  • 🧪 उदाहरण सहित: एक संपूर्ण नमस्कारAndroidटेस्ट क्लास दृश्यमान टेक्स्ट, वर्तमान गतिविधि और स्टार्ट बटन की जांच करती है।
  • दो रन मोड: IDE से या टर्मिनल से adb shell am instrument कमांड का उपयोग करके परीक्षण शुरू करें।
  • ⚙️ वर्तमान स्थिति: Robotium 5.6.3 आखिरी रिलीज़ है, इसलिए नया Android प्रोजेक्ट आमतौर पर इसे इसके साथ जोड़ते हैं या प्रतिस्थापित करते हैं Espresso.

Robotium ट्यूटोरियल

एचएमबी क्या है? Robotium?

Robotium है एक Android एक परीक्षण ढांचा जो नेटिव और हाइब्रिड अनुप्रयोगों के लिए परीक्षण मामलों को स्वचालित करता है। Robotiumएक डेवलपर मजबूत स्वचालित जीयूआई परीक्षण मामले बना सकता है Android एप्लिकेशन। एक डेवलपर कई अनुप्रयोगों को कवर करने वाले कार्यात्मक, सिस्टम और स्वीकृति परीक्षण परिदृश्य भी लिख सकता है। Android गतिविधियों.

Robotium परीक्षण ढांचा

मानक Android परीक्षण ढांचे में नीचे सूचीबद्ध सीमाएँ हैं।

  • एकाधिक गतिविधियों को संभालने में असमर्थ
  • परीक्षण निष्पादन प्रदर्शन धीमा है
  • टेस्ट केस जटिल होते हैं और उन्हें लागू करना कठिन होता है।

RSI Robotium किसी उत्पाद पर परीक्षण करने के लिए फ्रेमवर्क बेहतर विकल्प है। Android आवेदन.

Robotium यह एक ओपन-सोर्स फ्रेमवर्क है और इसे का विस्तार माना जाता है। Android परीक्षण ढांचा। उपयोग करना Robotiumएक डेवलपर मजबूत स्वचालित जीयूआई परीक्षण मामले बना सकता है Android इसके अलावा, एक डेवलपर कई अनुप्रयोगों को कवर करने वाले कार्यात्मक, सिस्टम और स्वीकृति परीक्षण परिदृश्य लिख सकता है। Android गतिविधियों.

नीचे दी गई तालिका उन उन्नत विशेषताओं का सारांश प्रस्तुत करती है जो इन्हें अलग करती हैं। Robotium साधारण उपकरण ढांचे से।

की उन्नत सुविधाएँ Robotium मानक की तुलना में Android इंस्ट्रूमेंटेशन फ्रेमवर्क

की उन्नत सुविधाएँ Robotium

Robotium टेस्ट केस क्लासेस

Robotium यह परीक्षण के लिए कुछ चुनिंदा क्लास प्रदान करता है, और लेख का उदाहरण पुराने सिस्टम को आयात करता है। com.jayway.android.robotium.solo पैकेज। ये क्लास कई गतिविधियों में फैले टेस्ट केस को सपोर्ट करती हैं, और Solo के साथ एकीकृत किया गया है ActivityInstrumentationTestCase2.

नोट: वर्तमान Robotium रिलीज़ उसी वर्ग को छोटे प्रारूप में उजागर करती हैं। com.robotium.solo पैकेज, जबकि मेवन कोऑर्डिनेट स्थिर रहा। com.jayway.android.robotium:robotium-soloप्रोजेक्ट में वास्तव में जोड़ी गई JAR फ़ाइल के संस्करण के अनुसार इंपोर्ट को समायोजित करें।

नीचे दिया गया आरेख दर्शाता है कि सोलो क्लास इंस्ट्रूमेंटेशन टेस्ट केस के ऊपर कैसे स्थित है।

एक एकल कक्षा को ActivityInstrumentationTestCase2 के साथ एकीकृत किया गया है Robotium परीक्षण का मामला

का एकीकरण Robotium और गतिविधि उपकरण परीक्षण मामला 2

एक परीक्षक एप्लिकेशन डिज़ाइन की जानकारी के बिना भी टेस्ट केस लिख सकता है, जो इस दृष्टिकोण को एक प्रकार का बना देता है। ब्लैक बॉक्स परीक्षणसाधारण की तुलना में यह एक असाधारण लाभ है। Android परीक्षण केस कक्षाएं.

इसका उपयोग कैसे करें Robotium

उपयोग करने के लिए Robotium अपने में Android टेस्ट प्रोजेक्ट के लिए, आपको नीचे दिए गए चरणों का पालन करना होगा।

जोड़ने और उपयोग करने के लिए आवश्यक चरण Robotium अंदर a Android परीक्षण परियोजना

इसका उपयोग कैसे करें: Robotium

आपकी गुणवत्ता की गारंटी देने के लिए Android आवेदन करने के लिए, नीचे दी गई चार चरणों वाली प्रक्रिया का पालन करें।

  • परीक्षण विनिर्देश तैयार करें
  • परीक्षण कार्यक्रम विकसित करें
  • लक्ष्य डिवाइस पर परीक्षण केस निष्पादित करें
  • परीक्षा परिणाम एकत्र करें

नीचे दिए गए फ्लो चार्ट में उन चारों चरणों को क्रम से दर्शाया गया है।

चार चरणों वाली प्रक्रिया का फ्लो चार्ट Android आवेदन परीक्षण प्रक्रिया

Android आवेदन परीक्षण प्रक्रिया

चरण 1) परीक्षण विनिर्देश तैयार करें

यह आपके एप्लिकेशन के परीक्षण का पहला चरण है। इस चरण में आप परीक्षण किए जाने वाले लक्ष्य को परिभाषित करते हैं। Android एप्लिकेशन में कई लक्ष्य होते हैं जिनका परीक्षण करना आवश्यक होता है, जैसे कि यूआई, एक्टिविटीज़, कंपोनेंट्स और सर्विसेज़। लक्ष्य को स्पष्ट रूप से परिभाषित करने से व्यापक परीक्षण कवरेज प्राप्त करने में मदद मिलती है।

  • आयोजित किए जाने वाले परीक्षणों के प्रकारों की योजना बनाएं (यूनिट परीक्षण, कार्यात्मक परीक्षण, सिस्टम परीक्षण)।
  • प्रत्येक को डिज़ाइन करें परीक्षण का मामला अधिकतम कवरेज के लिए जबकिping टेस्ट केसों की संख्या कम रखें। आप जितना अधिक कोड टेस्ट करेंगे, बग का जल्दी पता चलने की संभावना उतनी ही अधिक होगी।

चरण 2) परीक्षण प्रोग्राम लिखें

यह अनुभाग आपको लेखन प्रक्रिया में मार्गदर्शन करता है। Android परीक्षण कार्यक्रम का उपयोग कर Android JUnit परीक्षण और Robotiumमान लीजिए कि आपने पहले ही एक विकसित कर लिया है। Android हेलो नाम का प्रोग्रामAndroidइस प्रोग्राम में नीचे वर्णित कार्य शामिल हैं।

  • स्क्रीन पर “हेलो वर्ल्ड!” टेक्स्ट प्रदर्शित करें।
  • हैलो प्रदर्शित करेंAndroid उपयोगकर्ता द्वारा "स्टार्ट" बटन दबाने पर संदेश प्रदर्शित होता है।

नीचे दिया गया स्क्रीनशॉट परीक्षण के तहत एप्लिकेशन को एक डिवाइस पर चलते हुए दिखाता है।

नमस्तेAndroid परीक्षण के तहत एप्लिकेशन में "हेलो वर्ल्ड" टेक्स्ट और "स्टार्ट" बटन दिखाई दे रहा है।

नमस्तेAndroid आवेदन

सिस्टम आवश्यकताएँ

  • RSI Android प्लेटफ़ॉर्म पहले से एकीकृत के साथ आता है JUnit 3 फ्रेमवर्क, जो कि है ActivityInstrumentationTestCase2 पर आधारित है।
  • बनाने के लिए ए Android परीक्षण परियोजना से Eclipseआपकी मशीन को एक कार्यशील स्थिति की आवश्यकता है। Android SDK इंस्टॉलेशन।
  • वर्तमान को स्थापित करें Android पिन किए गए पुराने रिलीज़ के बजाय प्लेटफ़ॉर्म SDK का उपयोग करें।

इस वॉकथ्रू में स्क्रीनशॉट का उपयोग किया गया है Eclipse एडीटी प्लगइन के साथ, जो उदाहरण लिखते समय मानक टूलचेन था। Eclipse ADT अब समर्थित नहीं है, इसलिए आधुनिक मशीन पर आपको डाउनलोड Android Studio इसके बजाय, उसी परीक्षण कोड का पुन: उपयोग करें Gradle मॉड्यूल।

के लिए Robotium टेस्टिंग फ्रेमवर्क डाउनलोड करें Robotium पुस्तकालय से Robotium परियोजना पृष्ठ.

एक बनाएं Android परीक्षण परियोजना

  • फ़ाइल -> नया -> अन्य पर क्लिक करें
  • चुनें Android -> Android नीचे दिए गए चित्र में दिखाए अनुसार प्रोजेक्ट का परीक्षण करें, फिर अगला चुनें।

Eclipse नए प्रोजेक्ट विज़ार्ड के साथ Android चयनित परीक्षण परियोजना

कोई नया बनाएं Android परीक्षण परियोजना

अपने टेस्ट प्रोजेक्ट का नाम लिखें। नामकरण के नियमानुसार, टेस्ट प्रोजेक्ट का नाम "हेलो" होना चाहिए।Androidपरीक्षा"।

Eclipse हेलो नामक परीक्षण परियोजना के साथ संवाद करेंAndroidनामकरण परंपरा का पालन करते हुए परीक्षण करें

नामकरण नियम के आधार पर परीक्षण परियोजना का नाम जोड़ें।

परीक्षण के लिए लक्षित एप्लिकेशन चुनें। इस मामले में यह Hello है।Androidफिर फिनिश पर क्लिक करें।

Eclipse विजार्ड चरण में हेलो का चयन करनाAndroid परीक्षण के तहत लक्षित एप्लिकेशन के रूप में

परीक्षण के लिए लक्षित एप्लिकेशन का चयन करें

टेस्ट सूट बनाएं

आपकी परीक्षण विशिष्टताओं के आधार पर, अब आप अपने परीक्षण प्रोग्राम के लिए परीक्षण सूट बनाते हैं। आप विभिन्न विकल्पों में से चुन सकते हैं। सॉफ्टवेयर परिक्षण यह ट्यूटोरियल मानक फ्रेमवर्क का उपयोग करता है। Android परीक्षण ढांचा ActivityInstrumentationTestCase2परीक्षण करने के लिए Robotium, जोड़ें Robotium लाइब्रेरी फ़ाइल को libs आपके प्रोजेक्ट फोल्डर के अंदर स्थित डायरेक्टरी।

टेस्ट केस एक ऐसा फिक्सचर परिभाषित करता है जिसका उपयोग कई टेस्ट चलाने के लिए किया जाता है। टेस्ट केस को परिभाषित करने के लिए, नीचे दिए गए प्रोग्राम स्ट्रक्चर का पालन करें।

  • TestCase का एक सबक्लास लागू करें।
  • फिक्स्चर की स्थिति को संग्रहीत करने वाले इंस्टेंस वेरिएबल को परिभाषित करें।
  • setUp() को ओवरराइड करके फिक्स्चर की स्थिति को प्रारंभ करें।
  • tearDown() को ओवरराइड करके परीक्षण के बाद सफाई करें।

नीचे दिया गया आरेख उस संरचना को उस परीक्षण प्रोग्राम पर दर्शाता है जिसे आप लिखने वाले हैं।

एक की संरचना Robotium सेटअप, परीक्षण विधियों और टियरडाउन को दर्शाने वाला परीक्षण प्रोग्राम

परीक्षण कार्यक्रम संरचना

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 क्लास बनाएं।
  • किसी विशेष गतिविधि का परीक्षण करने के लिए, उदाहरण के लिए हेलोAndroidActivityInstrumentationTestCase2 का विस्तार करते हुए एक टेस्ट केस बनाएं।Android>.
  • उस क्लास के अंदर, परीक्षक getActivity() विधि के माध्यम से परीक्षण के तहत गतिविधि प्राप्त करता है।
  • “test + मूल विधि का नाम” नामक एक विधि जोड़कर गतिविधि के लिए स्वतंत्र रूप से एक परीक्षण बनाएं।
  • परीक्षण विधि के अंदर, परीक्षक उपयोग कर सकता है Android JUnit वास्तविक मान की अपेक्षित मान से तुलना करने के लिए फ़ंक्शन। ये विधियाँ नीचे दर्शाई गई हैं।

नीचे दी गई तालिका में दोनों फ्रेमवर्क में सबसे अधिक उपयोग किए जाने वाले अभिकथन और अंतःक्रिया विधियों को सूचीबद्ध किया गया है।

उदाहरण विधियाँ Robotium एकल कक्षा और Android परीक्षण ढांचा

उदाहरण विधियाँ Robotium और Android परीक्षण ढांचा

उपरोक्त टेस्ट सूट यह सत्यापित करता है कि एप्लिकेशन के ग्राफिकल यूजर इंटरफेस पर "हेलो वर्ल्ड!" टेक्स्ट प्रदर्शित होता है और उसमें "स्टार्ट" नामक एक बटन मौजूद है।

चरण 3) परीक्षण चलाएँ

अपना टेस्ट प्रोग्राम लिखने के बाद, नीचे दिए गए चरणों का पालन करके टेस्ट चलाएँ।

  • एक कनेक्ट करें Android यदि कोई वास्तविक डिवाइस उपलब्ध नहीं है, तो उसे अपने पीसी से कनेक्ट करें या एमुलेटर शुरू करें।
  • अपने IDE में, टेस्ट प्रोजेक्ट पर राइट-क्लिक करें और Run As चुनें → Android इकाई परीक्षण।

नीचे दिया गया स्क्रीनशॉट IDE से टेस्ट रन शुरू होने को दर्शाता है।

लॉन्च हो रहा है Robotium परीक्षण कार्यक्रम के रूप में Android IDE से यूनिट टेस्ट

टेस्ट प्रोग्राम चलाना

IDE से टेस्ट चलाने के अलावा, आप इसे कमांड लाइन से भी चला सकते हैं। इस टेस्ट प्रोग्राम में टेस्ट पैकेज यह है: com.example.helloandroid.testलिनक्स टर्मिनल में, उस पैकेज में मौजूद सभी टेस्ट को चलाने के लिए निम्नलिखित कमांड का उपयोग करें।

$ adb shell am instrument -w -e package com.example.helloandroid.test

चरण 4) परीक्षा परिणाम प्राप्त करें

टेस्ट पूरा होने के बाद, आप टेस्ट के परिणाम एकत्र करते हैं।

इस टेस्ट प्रोग्राम में चार टेस्ट विधियाँ निष्पादित की जाती हैं। नीचे दिए गए रन में, सभी टेस्ट केस सफल रहे।

परीक्षण परिणाम आउटपुट चारों को दर्शाता है Robotium परीक्षण मामलों का उत्तीर्ण होना

सभी टेस्ट केस पास होने पर टेस्ट परिणाम आउटपुट

यदि कोई टेस्ट केस विफल हो जाता है, तो आउटपुट प्रदर्शित होता है और आपको दिखाता है कि कौन से टेस्ट केस विफल हुए हैं।

परीक्षण परिणाम आउटपुट में निम्नलिखित सूचीबद्ध हैं: Robotium असफल परीक्षण मामले

टेस्ट केस विफल होने पर टेस्ट परिणाम आउटपुट

स्रोत Code उदाहरण

इस लेख में स्रोत कोड के उदाहरण शामिल हैं जो आपको ट्यूटोरियल को अधिक स्पष्ट रूप से समझने और तकनीकी विवरणों को शीघ्रता से ग्रहण करने में मदद करते हैं।

यदि आप तुलना करना चाहते हैं Robotium इस क्षेत्र में उपलब्ध अन्य विकल्पों के लिए, देखें मोबाइल एप्लिकेशन परीक्षण गाइड, Appium ट्यूटोरियल और सारांश मोबाइल ऐप परीक्षण उपकरण.

अक्सर पूछे जाने वाले प्रश्न

Robotium 5.6.3 अंतिम प्रकाशित रिलीज़ है और इसका सक्रिय विकास कई वर्षों पहले बंद हो गया था। फ्रेमवर्क अभी भी चल रहा है और आर्टिफैक्ट अभी भी मेवन सेंट्रल पर उपलब्ध है, लेकिन नए संस्करण उपलब्ध नहीं हैं। Android परियोजनाएं आमतौर पर चुनती हैं Espresso, जिसे Google बनाए रखता है।

Robotium यह एक ब्लैक-बॉक्स फ्रेमवर्क है जो रनटाइम पर विजेट्स से जुड़ता है और इसे सोर्स कोड की बहुत कम जानकारी की आवश्यकता होती है। Espresso यह गूगल का व्हाइट-बॉक्स टूल है जो यूआई थ्रेड के साथ सिंक्रोनाइज़ होता है और एप्लिकेशन कोड तक पहुंच की अपेक्षा करता है।

Robotium यह एक समय में केवल एक ही एप्लिकेशन चलाता है, फ्लैश या वेबव्यू के बाहर की वेब सामग्री को विश्वसनीय रूप से हैंडल नहीं कर सकता, ओपन-सोर्स जार में कोई अंतर्निर्मित रिकॉर्डिंग सुविधा नहीं देता है, और अप्रचलित इंस्ट्रूमेंटेशन क्लास पर इसकी निर्भरता आधुनिक प्रक्रियाओं को जटिल बनाती है। Gradle बनाता है।

एलान androidTestImplementation 'com.jayway.android.robotium:robotium-solo:5.6.3' मॉड्यूल बिल्ड फ़ाइल में, या इसे हटा दें robotium-solo JAR में libs और इसे फ़ाइल निर्भरता के रूप में संदर्भित करें।

हां. Robotium ये परीक्षण सामान्य इंस्ट्रूमेंटेशन परीक्षण हैं, इसलिए एक ही APK एमुलेटर या वास्तविक हैंडसेट पर चलता है। जेस्चर, सेंसर और परफॉर्मेंस की जांच के लिए वास्तविक हार्डवेयर को प्राथमिकता दी जाती है, जहां एमुलेटर का समय अलग हो सकता है।

Robotium यह UI स्तर पर कार्यात्मक, सिस्टम और उपयोगकर्ता स्वीकृति परिदृश्यों के लिए उपयुक्त है। यह यूनिट परीक्षणों का विकल्प नहीं है, जो JVM पर तेज़ी से चलते हैं, और न ही व्यापक स्तर पर उपयुक्त है। सॉफ्टवेयर परीक्षण के प्रकार अभी भी एक विज्ञप्ति की आवश्यकता है।

लेआउट में बदलाव होने पर भी काम करने वाले सेल्फ-हीलिंग लोकेटर, रेंडरिंग संबंधी समस्याओं को पहचानने के लिए विज़ुअल तुलना और रीरन को रैंक करने के लिए फ़्लैकी-टेस्ट डिटेक्शन में मशीन लर्निंग का उपयोग किया जाता है। टूलिंग से रखरखाव कम हो जाता है, लेकिन व्यवहार का महत्व अभी भी मनुष्य ही तय करता है।

गिटहब कोपिलॉट एक एक्टिविटी क्लास से सोलो सेटअप, टियरडाउन और असर्शन मेथड्स को तैयार किया जा सकता है। Revसुझाव को ध्यानपूर्वक देखें, क्योंकि यह पुराने पैकेज आयात या ऐसे अभिकथन उत्पन्न कर सकता है जिन्हें ऐप कभी पूरा नहीं करता है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: