Robotium Φροντιστήριο: Android Πλαίσιο Δοκιμών με Παράδειγμα

⚡ Έξυπνη Σύνοψη

Robotium είναι ανοιχτού κώδικα Android πλαίσιο αυτοματισμού δοκιμών που οδηγεί εγγενείς και υβριδικές εφαρμογές μέσω της διεπαφής χρήστη τους, επιτρέποντας σε ένα σενάριο δοκιμών λειτουργικά, σενάρια συστήματος και αποδοχής που εκτείνονται σε πολλά Android δραστηριοτήτων.

  • 🔘 Βασική τάξη: Το Solo αποκαλύπτει τις μεθόδους κλικ, αναζήτησης, μεταφοράς και διεκδίκησης που κάθε Robotium κλήσεις δοκιμαστικών περιπτώσεων.
  • ☑️ Φιλικό προς το μαύρο κουτί: Οι δοκιμές συνδέονται με στοιχεία του UI κατά τον χρόνο εκτέλεσης, επομένως απαιτείται ελάχιστη γνώση του πηγαίου κώδικα της εφαρμογής.
  • Διαδικασία τεσσάρων βημάτων: Σχεδιάστε την προδιαγραφή δοκιμής, γράψτε το πρόγραμμα δοκιμής, εκτελέστε το σε μια συσκευή και, στη συνέχεια, συλλέξτε το αποτέλεσμα.
  • 🧪 Λειτουργικό παράδειγμα: Ένα ολοκληρωμένο Γεια σαςAndroidΗ κλάση δοκιμής ελέγχει το ορατό κείμενο, την τρέχουσα δραστηριότητα και το κουμπί Έναρξη.
  • Δύο τρόποι λειτουργίας: Εκκινήστε δοκιμές από το IDE ή από ένα τερματικό με την εντολή adb shell am instrument.
  • ⚙️ Τρέχουσα κατάσταση: Robotium Η έκδοση 5.6.3 παραμένει η τελευταία έκδοση, επομένως νέα Android τα έργα συνήθως το συνδυάζουν ή το αντικαθιστούν με Espresso.

Robotium Εκμάθηση

Τι είναι Robotium?

Robotium Το Ultherapy είναι μια θεραπεία εγκεκριμένη από τον FDA. Χρησιμοποιεί εστιασμένο υπέρηχο για τη θεραπεία συγκεκριμένων περιοχών όπως το πρόσωπο και ο λαιμός. Android πλαίσιο δοκιμών που αυτοματοποιεί τις περιπτώσεις δοκιμών για εγγενείς και υβριδικές εφαρμογές. Χρησιμοποιώντας Robotium, ένας προγραμματιστής μπορεί να δημιουργήσει ισχυρές αυτοματοποιημένες δοκιμαστικές περιπτώσεις GUI για Android εφαρμογές. Ένας προγραμματιστής μπορεί επίσης να γράψει σενάρια λειτουργικών, συστημικών και δοκιμών αποδοχής που καλύπτουν πολλά Android δραστηριοτήτων.

Robotium Πλαίσιο δοκιμών

Το πρότυπο Android Το πλαίσιο δοκιμών φέρει τους περιορισμούς που αναφέρονται παρακάτω.

  • Δεν είναι δυνατός ο χειρισμός πολλαπλών δραστηριοτήτων
  • Η απόδοση εκτέλεσης της δοκιμής είναι αργή
  • Οι δοκιμαστικές περιπτώσεις είναι πολύπλοκες και δύσκολες στην εφαρμογή

The Robotium Το πλαίσιο είναι η καλύτερη επιλογή για τη διεξαγωγή δοκιμών σε ένα Android . To

Robotium είναι ένα πλαίσιο ανοιχτού κώδικα και θεωρείται επέκταση του Android πλαίσιο δοκιμών. Χρησιμοποιώντας Robotium, ένας προγραμματιστής μπορεί να δημιουργήσει ισχυρές αυτοματοποιημένες δοκιμαστικές περιπτώσεις GUI για Android εφαρμογές. Επιπλέον, ένας προγραμματιστής μπορεί να γράψει σενάρια λειτουργικών, συστημικών και δοκιμών αποδοχής που καλύπτουν πολλαπλά Android δραστηριοτήτων.

Ο παρακάτω πίνακας συνοψίζει τα προηγμένα χαρακτηριστικά που διαχωρίζουν Robotium από το απλό πλαίσιο οργάνων.

Προηγμένες δυνατότητες του Robotium σε σύγκριση με το πρότυπο Android πλαίσιο οργάνων

Προηγμένες δυνατότητες του Robotium

Robotium Μαθήματα δοκιμαστικών περιπτώσεων

Robotium αποστέλλει ένα μικρό σύνολο κλάσεων για δοκιμή και το παράδειγμα του άρθρου εισάγει το παλαιότερο com.jayway.android.robotium.solo πακέτο. Αυτές οι κλάσεις υποστηρίζουν δοκιμαστικές περιπτώσεις που καλύπτουν πολλαπλές δραστηριότητες και Solo είναι ενσωματωμένο με ActivityInstrumentationTestCase2.

Σημείωση: ρεύμα Robotium οι κυκλοφορίες εκθέτουν την ίδια κλάση κάτω από το μικρότερο com.robotium.solo πακέτο, ενώ η συντεταγμένη του Maven παρέμεινε com.jayway.android.robotium:robotium-soloΠροσαρμόστε την εισαγωγή ώστε να ταιριάζει με την έκδοση JAR που προσθέτετε στο έργο.

Το παρακάτω διάγραμμα δείχνει πώς η κλάση Solo τοποθετείται πάνω από την περίπτωση δοκιμής οργάνων.

Ενσωματωμένη τάξη μονόκλινου με το ActivityInstrumentationTestCase2 σε ένα Robotium περίπτωση δοκιμής

Ενσωμάτωση του Robotium και Οργανολογία ΔραστηριότηταςTestCase2

Ένας δοκιμαστής μπορεί να γράψει δοκιμαστικές περιπτώσεις χωρίς γνώση του σχεδιασμού της εφαρμογής, γεγονός που καθιστά την προσέγγιση μια μορφή δοκιμή μαύρου κουτιούΑυτό είναι ένα εξαιρετικό πλεονέκτημα σε σύγκριση με το απλό Android τάξεις δοκιμαστικών περιπτώσεων.

Πώς να το χρησιμοποιήσετε: Robotium

Χρησιμοποιώ Robotium σε σας Android δοκιμαστικό έργο, πρέπει να ακολουθήσετε τα παρακάτω βήματα.

Απαιτούμενα βήματα για την προσθήκη και τη χρήση Robotium μέσα σε ένα Android δοκιμαστικό έργο

Πώς να το χρησιμοποιήσετε: Robotium

Για να εγγυηθούμε την ποιότητα του Android αίτηση, ακολουθήστε την παρακάτω διαδικασία τεσσάρων σταδίων.

  • Σχεδιάστε τις προδιαγραφές δοκιμής
  • Αναπτύξτε το πρόγραμμα δοκιμών
  • Εκτελέστε την δοκιμαστική περίπτωση στη συσκευή-στόχο
  • Συλλέξτε το αποτέλεσμα της δοκιμής

Το παρακάτω διάγραμμα ροής τοποθετεί αυτά τα τέσσερα στάδια με τη σειρά.

Διάγραμμα ροής του τετραβάθμιου Android διαδικασία δοκιμής εφαρμογής

Android διαδικασία δοκιμής εφαρμογής

ΒΗΜΑ 1) Προδιαγραφή Δοκιμής Σχεδιασμού

Αυτό είναι το πρώτο βήμα στη δοκιμή της εφαρμογής σας. Σε αυτό το βήμα ορίζετε τον στόχο που θα δοκιμαστεί. Android Η εφαρμογή έχει πολλούς στόχους που πρέπει να δοκιμαστούν, όπως το περιβάλλον χρήστη, οι δραστηριότητες, τα στοιχεία και οι υπηρεσίες. Ο σαφής ορισμός του στόχου σάς βοηθά να επιτύχετε ευρεία κάλυψη δοκιμών.

  • Σχεδιάστε τους τύπους δοκιμών που θα πρέπει να διεξαχθούν (δοκιμή μονάδας, λειτουργική δοκιμή, δοκιμή συστήματος).
  • Σχεδιάστε το καθένα περίπτωση δοκιμής για μέγιστη κάλυψη ενώ διατηρείτεping ο αριθμός των δοκιμαστικών περιπτώσεων είναι μικρός. Όσο περισσότερο κώδικα δοκιμάζετε, τόσο μεγαλύτερη είναι η πιθανότητα έγκαιρης ανίχνευσης σφαλμάτων.

ΒΗΜΑ 2) Σύνταξη προγράμματος δοκιμής

Αυτή η ενότητα σας καθοδηγεί στη συγγραφή ενός Android δοκιμαστικό πρόγραμμα χρησιμοποιώντας Android JUnit δοκιμές και Robotium. Ας υποθέσουμε ότι έχετε ήδη αναπτύξει ένα Android πρόγραμμα με το όνομα HelloAndroidΑυτό το πρόγραμμα έχει τις λειτουργίες που περιγράφονται παρακάτω.

  • Εμφανίστε το κείμενο «Γεια σου κόσμε!» στην οθόνη.
  • Εμφάνιση ενός Γεια σαςAndroid μήνυμα όταν ο χρήστης πατήσει το κουμπί «Έναρξη».

Το παρακάτω στιγμιότυπο οθόνης δείχνει την εφαρμογή υπό δοκιμή που εκτελείται σε μια συσκευή.

Γεια σαςAndroid εφαρμογή υπό δοκιμή που εμφανίζει το κείμενο "Γεια σου κόσμε" και το κουμπί "Έναρξη"

Γεια σαςAndroid εφαρμογή

Απαιτήσεις συστήματος

  • The Android η πλατφόρμα διαθέτει προ-ενσωματωμένο JUnit 3 πλαίσιο, το οποίο είναι αυτό που ActivityInstrumentationTestCase2 βασίζεται.
  • Για να δημιουργήσετε ένα Android δοκιμαστικό έργο από Eclipse, το μηχάνημά σας χρειάζεται λειτουργία Android Εγκατάσταση SDK.
  • Εγκαταστήστε το ρεύμα Android SDK πλατφόρμας αντί για μια καρφιτσωμένη παλαιότερη έκδοση.

Τα στιγμιότυπα οθόνης σε αυτήν την αναλυτική παρουσίαση χρησιμοποιούνται Eclipse με το πρόσθετο ADT, το οποίο ήταν η τυπική αλυσίδα εργαλείων όταν γράφτηκε το παράδειγμα. Eclipse Το ADT δεν υποστηρίζεται πλέον, επομένως σε ένα σύγχρονο μηχάνημα θα κατεβάσετε Android Studio αντί αυτού και επαναχρησιμοποιήστε τον ίδιο κώδικα δοκιμής μέσα σε ένα Gradle μονάδα μέτρησης.

Για την Robotium πλαίσιο δοκιμών, κατεβάστε το Robotium βιβλιοθήκη από το Robotium σελίδα του έργου.

Δημιουργία ενός Android Δοκιμαστική εργασία

  • Κάντε κλικ στο Αρχείο -> Νέο -> Άλλο
  • Επιλέξτε Android -> Android Δοκιμάστε το έργο όπως φαίνεται στο παρακάτω σχήμα και, στη συνέχεια, επιλέξτε Επόμενο

Eclipse Οδηγός νέου έργου με Android Επιλέχθηκε δοκιμαστικό έργο

Δημιουργήστε ένα νέο Android δοκιμαστικό έργο

Γράψτε το όνομα του έργου δοκιμής σας. Σύμφωνα με τη σύμβαση ονομασίας, το έργο δοκιμής θα πρέπει να ονομάζεται "Γεια".AndroidΔοκιμή".

Eclipse παράθυρο διαλόγου με το δοκιμαστικό έργο με το όνομα HelloAndroidΔοκιμή σύμφωνα με τη σύμβαση ονομασίας

Προσθέστε το όνομα του δοκιμαστικού έργου με βάση τη σύμβαση ονομασίας

Επιλέξτε την εφαρμογή-στόχο που βρίσκεται υπό δοκιμή. Σε αυτήν την περίπτωση, είναι το Hello.Androidκαι, στη συνέχεια, κάντε κλικ στο Τέλος.

Eclipse βήμα οδηγού που επιλέγει το Γεια σαςAndroid ως η υπό δοκιμή εφαρμογή-στόχος

Επιλέξτε την εφαρμογή-στόχο που βρίσκεται υπό δοκιμή

Δημιουργήστε δοκιμαστικές σουίτες

Με βάση τις προδιαγραφές δοκιμής σας, τώρα δημιουργείτε σουίτες δοκιμών για το πρόγραμμα δοκιμών σας. Μπορείτε να επιλέξετε από διάφορα δοκιμές λογισμικού πλαίσια. Αυτό το σεμινάριο χρησιμοποιεί το πρότυπο Android πλαίσιο δοκιμών ActivityInstrumentationTestCase2Για δοκιμή με Robotium, πρόσθεσε το Robotium αρχείο βιβλιοθήκης σε ένα libs κατάλογο μέσα στον φάκελο του έργου σας.

Μια δοκιμαστική περίπτωση ορίζει το εξάρτημα που χρησιμοποιείται για την εκτέλεση πολλαπλών δοκιμών. Για να ορίσετε μια δοκιμαστική περίπτωση, ακολουθήστε την παρακάτω δομή προγράμματος.

  • Υλοποιήστε μια υποκλάση του TestCase.
  • Ορίστε μεταβλητές στιγμιότυπου που αποθηκεύουν την κατάσταση του fixture.
  • Αρχικοποιήστε την κατάσταση του εξαρτήματος παρακάμπτοντας την 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.
  • Για να δοκιμάσετε μια συγκεκριμένη δραστηριότητα, για παράδειγμα HelloAndroid, δημιουργήστε μια δοκιμαστική περίπτωση που επεκτείνει το ActivityInstrumentationTestCase2Android>.
  • Μέσα σε αυτήν την κλάση, ο ελεγκτής λαμβάνει την υπό δοκιμή δραστηριότητα μέσω της μεθόδου getActivity().
  • Δημιουργήστε ελεύθερα ένα τεστ για τη δραστηριότητα προσθέτοντας μια μέθοδο με το όνομα "test + original method name".
  • Μέσα στη μέθοδο δοκιμής, ο ελεγκτής μπορεί να χρησιμοποιήσει Android JUnit συναρτήσεις για να συγκρίνουν την πραγματική τιμή με την αναμενόμενη τιμή. Αυτές οι μέθοδοι εμφανίζονται παρακάτω.

Ο παρακάτω πίνακας παραθέτει τις μεθόδους ισχυρισμού και αλληλεπίδρασης που χρησιμοποιούνται συχνότερα στα δύο πλαίσια.

Παραδείγματα μεθόδων του Robotium Ατομικό μάθημα και το Android πλαίσιο δοκιμών

Παραδείγματα μεθόδων Robotium και την Android πλαίσιο δοκιμών

Η παραπάνω σουίτα δοκιμών επαληθεύει ότι το γραφικό περιβάλλον χρήστη της εφαρμογής εμφανίζει το κείμενο "Hello World!" και περιέχει ένα κουμπί με το όνομα "Start".

ΒΗΜΑ 3) Εκτελέστε τη δοκιμή

Αφού ολοκληρώσετε τη σύνταξη του προγράμματος δοκιμών σας, εκτελέστε το τεστ ακολουθώντας τα παρακάτω βήματα.

  • Συνδέστε ένα Android συσκευή στον υπολογιστή σας ή ξεκινήστε έναν εξομοιωτή εάν δεν υπάρχει διαθέσιμη πραγματική συσκευή.
  • Στο IDE σας, κάντε δεξί κλικ στο δοκιμαστικό έργο και επιλέξτε Εκτέλεση ως → Android Δοκιμή Μονάδας.

Το παρακάτω στιγμιότυπο οθόνης δείχνει την εκτέλεση της δοκιμής που ξεκινά από το IDE.

Εκκίνηση του Robotium πρόγραμμα δοκιμών ως Android Δοκιμή μονάδας από το IDE

Εκτέλεση του δοκιμαστικού προγράμματος

Εκτός από την εκτέλεση της δοκιμής από το IDE, μπορείτε να την εκτελέσετε και από τη γραμμή εντολών. Σε αυτό το πρόγραμμα δοκιμών, το πακέτο δοκιμών είναι com.example.helloandroid.testΣε ένα τερματικό Linux, χρησιμοποιήστε την ακόλουθη εντολή για να εκτελέσετε κάθε δοκιμή σε αυτό το πακέτο.

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

ΒΗΜΑ 4) Λάβετε το αποτέλεσμα της εξέτασης

Αφού εκτελεστεί η δοκιμή, συλλέγετε τα αποτελέσματα της δοκιμής.

Σε αυτό το πρόγραμμα δοκιμών εκτελούνται τέσσερις μέθοδοι δοκιμών. Στην παρακάτω εκτέλεση, όλες οι περιπτώσεις δοκιμών ολοκληρώθηκαν με επιτυχία.

Έξοδος αποτελέσματος δοκιμής που δείχνει και τα τέσσερα Robotium περνώντας τις δοκιμαστικές περιπτώσεις

Έξοδος αποτελέσματος δοκιμής όταν όλες οι περιπτώσεις δοκιμής περάσουν

Εάν μια δοκιμαστική περίπτωση αποτύχει, εμφανίζεται η έξοδος και σας δείχνει ποιες δοκιμαστικές περιπτώσεις απέτυχαν.

Έξοδος αποτελέσματος δοκιμής που απαριθμεί το Robotium δοκιμαστικές περιπτώσεις που απέτυχαν

Έξοδος αποτελέσματος δοκιμής όταν μια δοκιμαστική περίπτωση αποτύχει

Πηγή Code Παραδείγματα

Αυτό το άρθρο περιλαμβάνει παραδείγματα πηγαίου κώδικα που σας βοηθούν να παρακολουθήσετε το σεμινάριο με μεγαλύτερη σαφήνεια και να κατανοήσετε γρήγορα τις τεχνικές λεπτομέρειες.

Αν θέλετε συγκρίνετε Robotium με τις άλλες επιλογές σε αυτόν τον χώρο, δείτε το δοκιμή εφαρμογών για κινητά οδηγός, ο Appium φροντιστήριο και η συλλογή των εργαλεία δοκιμής εφαρμογών για κινητά.

Συχνές Ερωτήσεις

Robotium Η έκδοση 5.6.3 παραμένει η τελευταία δημοσιευμένη έκδοση και η ενεργή ανάπτυξη σταμάτησε πριν από χρόνια. Το framework εξακολουθεί να εκτελείται και το artifact βρίσκεται ακόμα στο Maven Central, αλλά είναι νέο. Android τα έργα συνήθως επιλέγουν Espresso, Το οποίο Google διατηρεί.

Robotium είναι ένα πλαίσιο μαύρου κουτιού που συνδέεται με γραφικά στοιχεία κατά τον χρόνο εκτέλεσης και απαιτεί ελάχιστη γνώση του πηγαίου κώδικα. Espresso is GoogleΤο εργαλείο λευκού κουτιού του που συγχρονίζεται με το νήμα του UI και αναμένει πρόσβαση στον κώδικα της εφαρμογής.

Robotium οδηγεί μία εφαρμογή κάθε φορά, δεν μπορεί να χειριστεί Flash ή περιεχόμενο ιστού εκτός ενός WebView με αξιοπιστία, δεν προσφέρει ενσωματωμένη εγγραφή στο JAR ανοιχτού κώδικα και η εξάρτησή του από παρωχημένες κλάσεις οργάνων περιπλέκει τις σύγχρονες Gradle χτίζει.

Δηλώνω androidTestImplementation 'com.jayway.android.robotium:robotium-solo:5.6.3' στο αρχείο δημιουργίας της ενότητας ή αποθέστε το robotium-solo JAR σε libs και να το αναφέρετε ως εξάρτηση αρχείου.

Ναί. Robotium Οι δοκιμές είναι συνηθισμένες δοκιμές οργάνων, επομένως το ίδιο APK εκτελείται σε έναν εξομοιωτή ή σε μια φυσική συσκευή. Προτιμάται το πραγματικό υλικό για ελέγχους χειρονομιών, αισθητήρων και απόδοσης, όπου ο χρονισμός του εξομοιωτή μπορεί να διαφέρει.

Robotium ταιριάζει σε λειτουργικά, συστημικά και σενάρια αποδοχής χρηστών σε επίπεδο UI. Δεν υποκαθιστά τις δοκιμές μονάδας, οι οποίες εκτελούνται πιο γρήγορα στο JVM, ούτε το ευρύτερο είδη δοκιμών λογισμικού χρειάζεται ακόμα μια έκδοση.

Η μηχανική μάθηση χρησιμοποιείται για αυτοεπιδιορθούμενους εντοπιστές που επιβιώνουν από αλλαγές διάταξης, οπτική σύγκριση που επισημαίνει παλινδρομήσεις απόδοσης και ανίχνευση ασταθών δοκιμών που κατατάσσει επαναλήψεις. Τα εργαλεία μειώνουν τη συντήρηση, αλλά ένας άνθρωπος εξακολουθεί να αποφασίζει ποια συμπεριφορά έχει σημασία.

GitHub Copilot μπορεί να δημιουργήσει μια εγκατάσταση Solo, μια μέθοδο tearDown και μια μέθοδο assertion από μια κλάση δραστηριοτήτων. RevΕξετάστε προσεκτικά την πρόταση, επειδή ενδέχεται να εκπέμψει την εισαγωγή παλαιού πακέτου ή ισχυρισμούς που η εφαρμογή δεν ικανοποιεί ποτέ.

Συνοψίστε αυτήν την ανάρτηση με: