2010-02-22 8 views
9

के लिए उदाहरण मुझे रोबोटियम नामक इंस्ट्रुमेंटेशन टेस्टिंग के लिए एक उपकरण मिला। यह एंड्रॉइड अनुप्रयोगों के ब्लैक बॉक्स परीक्षण के लिए आसान और सरल है।रोबोटियम

solo.clickOnText("Other"); 
    solo.clickOnButton("Edit"); 
    assertTrue(solo.searchText("Edit Window")); 
    solo.enterText(1, "Some text for testing purposes") 
    solo.clickOnButton("Save"); 
    assertTrue(solo.searchText("Changes have been made successfully")); 
    solo.clickOnButton("Ok"); 
    assertTrue(solo.searchText("Some text for testing purposes")); 

शरीर के किसी भी इसके बारे में अधिक विचार हो सकता है: इस प्रकार हम इसका इस्तेमाल कर सकते हैं? कर सकते हैं किसी भी एक कृपया बताओ कैसे हम WebViews और listviews आदि के लिए उपयोग कर सकते हैं

उत्तर

15

कृपया आम सवाल और क्या Robotium का समर्थन करता है पर जवाब के लिए गुणवत्ता आश्वासन विकि पृष्ठ देखें: http://code.google.com/p/robotium/wiki/QuestionsAndAnswers

इसके अलावा, कृपया आरंभ करना पृष्ठ पर जाने के लिए : http://code.google.com/p/robotium/wiki/Getting_Started

वहां आपको एक उदाहरण परीक्षण प्रोजेक्ट मिलेगा जिसे आप डाउनलोड करते हैं और विचारों को देखते हैं। आप इस समय javadoc भी डाउनलोड कर सकते हैं: http://code.google.com/p/robotium/downloads/list यह देखने के लिए कि इस समय क्या कार्यक्षमता है।

ट्यूटोरियल के लिए कृपया देखें: http://code.google.com/p/robotium/wiki/RobotiumTutorials

निष्ठा से, Renas

2

searchText विधि भी listviews खोज करता है। आप यह सुनिश्चित करने के लिए दावा कर सकते हैं कि आपकी सूची दृश्य में सही सामग्री

1

सूची क्लिक करने के लिए है। यदि आपकी गतिविधि ListActivity प्रकार है तो आप एक पैरामीटर के साथ clickInList का उपयोग कर सकते हैं जो कि लाइन की अनुक्रमणिका है जिसे क्लिक किया जाना चाहिए। अन्य मामलों में क्लिक पैरालिस्ट का उपयोग दो पैरामीटर के साथ करें - सूचीदृश्य स्क्रीन इंडेक्स और लाइन नंबर। वेब व्यू के लिए यदि आप कोई पृष्ठ लोड करते हैं तो आपको सामग्री की जांच करने के लिए प्रतीक्षाफॉरटेक्स्ट() मैथोड का उपयोग करना चाहिए।

अधिक उदाहरण: http://bitbar.com/blog/54/automated-ui-testing-android-applications-robotium

14

मैं कह सकता हूँ, क्या आप Robotium :)

  1. क्रॉस क्रियाएँ परीक्षण के साथ ऐसा करने में सक्षम नहीं हैं, Robotium समान प्रमाणपत्र अनुप्रयोग के साथ ही काम करने में सक्षम है, अन्यथा आप ईवेंट अपवाद इंजेक्ट करेंगे (उदाहरण के लिए आप स्क्रीन कीबोर्ड पर क्लिक करने में सक्षम नहीं हैं)

  2. रोबोटियम में अपेक्षित/अप्रत्याशित अलर्ट/पॉपस/संवादों को संभालने के लिए कोई तंत्र नहीं है। उदाहरण के लिए आईओएस जावास्क्रिप्ट परीक्षणों में अलर्ट हैंडलिंग के लिए बहुत ही सरल बुलियन ध्वज और कॉलबैक

  3. रोबोटियम में ऑटो स्क्रॉलिंग विधियों (संभवतः वर्तमान में यह तय है) के साथ बड़ी समस्या है उदाहरण के लिए यदि आप पाठ की तलाश में हैं, जो दिखाया नहीं गया है, रोबोटियम स्क्रॉल व्यू के अंत में ढेर होगा और स्क्रॉलिंग रोकने के लिए जोर दें (झूठा)

  4. रोबोटियम ने कुछ एनम मूल्य या बुलियन (सफलता/असफल) लौटने की बजाय समस्याओं/अप्रत्याशित परिस्थितियों की रिपोर्ट करने के लिए जोर (झूठा) तर्क दिया है। इसलिए एक अच्छा तनाव परीक्षण जो 24/7 चलाए जाते हैं, आपको अपनी खुद की विधियों को जोड़ने की ज़रूरत है जो परीक्षण को रोक नहीं पाएंगे, बस 'विधि क्लिक करने में विफल' विधि को संभाल लें 'परिणाम मूल्य

  5. स्क्रॉल/सूची दृश्य में आइटम क्लिक करने के लिए आपको कुछ तर्क लागू करने की आवश्यकता होगी।वजह से Robotium दृश्य के मध्य में क्लिक करता है, तो आप हमेशा

दिखाया सामान्य Robotium में केवल 20% हिस्से के साथ क्लिक करने के लिए जब कोशिश दृश्य अपवाद या assertTrue (गलत) मिल जाएगा बहुत शांत और उपयोगी है और मुझे पसंद है यह बहुत ज्यादा :) और मैं इस महान पुस्तकालय के बिना जीवन की कल्पना नहीं कर सकता!

+2

आप रोबोटियम त्रुटियों का उपयोग कर पकड़ सकते हैं: कोशिश करें {...} पकड़ें (त्रुटि त्रुटि) {..} // इस तरह रोबोटियम आपके परीक्षण को क्रैश नहीं करेगा। – user643154

+1

आप मूल दृश्य प्राप्त कर सकते हैं और उस पर क्लिक कर सकते हैं, कभी-कभी यह छवि या टेक्स्ट से कहीं अधिक बड़ा होता है। उम्मीद है कि यह किसी की मदद करेगा। – zest

0
  • दृश्य

listviews आप निम्न विधि solo.getCurrentListViews() उपयोग कर सकते हैं जो वर्तमान स्क्रीन पर सूची दृश्य के एक नंबर लौटने के लिए, और उसके बाद के माध्यम से पुनरावृति या उन से अन्य वस्तु प्रकार (एंड्रॉयड विगेट्स) पाने के लिए

ArrayList<ListView> lw = solo.getCurrentListViews(); // get all list views 
// logging to logcat 
Log.i("stats", "number of list views on the current screen: " + aLw.size()); 
if (aLw.size() != 0) 
for (ListView l: aLw) { 
    // Take all image views from list and click each 
    ArrayList <ImageView> aIw = solo.getCurrentImageViews(l); 
    Log.i("stats", "list view " + l + " contains " + iw.size() + " image views."); 
    if (aIw.size() != 0) 
    for (int i = 0; i < aIw.size();) { 
     // clicking 
     solo.clickOnView(aIw.get(i)); 
     Log.i("click", "image view " + i " clicked."); 
    } 
} 
: उदाहरण के लिए आप जो किसी अन्य गतिविधि पर रीडायरेक्ट नहीं है और केवल अन्य वस्तुओं की स्थिति बदलने स्क्रीन पर सभी सूचियों से क्लिक करने के लिए छवि विचारों की जरूरत

आप संपादित करें टेक्स्ट पर टेक्स्ट टाइप कर सकते हैं या टेक्स्ट व्यू से टेक्स्ट प्राप्त कर सकते हैं। आप रोबोटियम को जावा और एंड्रॉइड एपीआई के साथ जोड़ सकते हैं।) स्क्रीन getVisibility (का उपयोग कर विधि पर छवियों का नमूना चैक दृश्यता और तीन प्रमुख राज्यों View.GONE, View.VISIBLE, View.INVISIBLE से तुलना के लिए। या आप अपने परीक्षण निष्पादन से पहले जावा विधि HttpURLrequest का उपयोग कर कनेक्शन जांच सकते हैं।

  • अन्य

आप स्रोत है, तो आप अपनी आईडी जानते हुए भी किसी भी लेआउट से वस्तुओं ले जा सकते हैं! solo.waitForActivity(), solo.assertMemoryNotLow(), solo.takeScreenShot() जैसी कई शानदार सामग्री भी मौजूद हैं।

रोबोटियम उपयोग के बारे में अधिक उदाहरण Robotium community में शामिल होकर आप यहां देख सकते हैं।

संबंधित मुद्दे