Eski monkeyrunner
aracı, API'yi kullanarak bir öğeyi denetleyen
Android kodu dışındaki bir Android cihaz veya emülatör.
monkeyrunner
aracı özellikle uygulamaları ve cihazları test etmek için tasarlanmıştır
fonksiyonel/çerçeve seviyesinde ve birim test paketlerini çalıştırmak için
başka amaçlar için kullanıyor. monkeyrunner
ile Python programı yazabilirsiniz
Android uygulaması veya test paketi yükleyen, çalıştıran, tuş vuruşu gönderen ve
kullanıcı arayüzünün ekran görüntülerini alır ve ekran görüntülerini iş istasyonunda saklar.
Dikkat: monkeyrunner
API'si yönetilmiyor. Şunu kullanmanızı öneririz:
Uygulama Tarayıcısı aracı veya
Kullanıcı Arayüzü Otomatikleştirici
test çerçevesi oluşturabilirsiniz.
monkeyrunner
aracı,
Kullanıcı Arayüzü/Uygulama Alıştırması Yapan Maymun,
monkey
aracı olarak da bilinir. monkey
aracı,
adb
kabuğu doğrudan
kullanıcı ve sistem etkinliklerinin sözde rastgele akışları oluşturur. Buna kıyasla,
monkeyrunner
aracı bir iş istasyonundaki cihazları ve emülatörleri kontrol ederek
API'den belirli komutlar ve etkinlikler.
monkeyrunner
aracı, Android testleri için şu özellikleri sağlar:
-
Birden fazla cihaz kontrolü:
monkeyrunner
API bir veya daha fazla cihaz uygulayabilir birden fazla cihaz veya emülatörde test paketi oluşturabilirsiniz. Tüm cihazları fiziksel olarak bağlayabilirsiniz. veya tüm emülatörleri (ya da ikisini birden) aynı anda başlatıp sırasıyla her birine bağlayın yapabilir ve ardından bir veya daha fazla test çalıştırabilirsiniz. Bir emülatör de başlatabilirsiniz yapılandırma, bir veya daha fazla test çalıştırma ve ardından emülatörü kapatma. -
İşlevsel test:
monkeyrunner
, otomatik bir başlangıç - bitiş testi yapabilir test kullanıcısı yaptık. Tuş vuruşlarıyla veya dokunma etkinlikleriyle ve görünümle giriş değerleri sağlarsınız bunları ekran görüntüsü olarak kaydeder. -
Regresyon testi:
monkeyrunner
, ve çıkış ekran görüntülerini, kullandığı çok modlu akım ekran görüntüsüyle doğru. -
Genişletilebilir otomasyon:
monkeyrunner
bir API araç seti olduğundan şunları yapabilirsiniz: Android cihazları yönetmek için Python tabanlı modül ve programlar içeren bir sistem geliştirme cihazlar.monkeyrunner
API'nin kendisini kullanmanın yanı sıra, Pythonos
vesubprocess
çağrılarını Android araçlarına çağırmak için Android Debug Bridge.Ayrıca
monkeyrunner
API'ye kendi sınıflarınızı da ekleyebilirsiniz. Bu daha ayrıntılı olarak Monkeyrunner'ı eklentilerle genişletin bölümü.
monkeyrunner
aracı,
Jython, Java programlama dilini kullanan bir Python uygulamasıdır. Jython
monkeyrunner
API, Android çerçevesiyle kolayca etkileşime girer. Jython ile
API'nin sabit değerlerine, sınıflarına ve yöntemlerine erişmek için Python söz dizimini kullanabilir.
Basit bir maymun avcısı programı
Burada, bir cihaza bağlanarak yeni bir monkeyrunner
oluşturmak için
MonkeyDevice
nesnesini tanımlayın. Program, MonkeyDevice
nesnesini kullanarak bir Android uygulaması yükler
bir etkinliği çalıştırır ve önemli etkinlikleri etkinliğe gönderir.
Program daha sonra sonucun ekran görüntüsünü alır ve
MonkeyImage
nesne algılandı.
Program, bu nesneden ekran görüntüsünü içeren bir PNG dosyası yazar.
# Imports the monkeyrunner modules used by this program. from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice # Connects to the current device, returning a MonkeyDevice object. device = MonkeyRunner.waitForConnection() # Installs the Android package. Notice that this method returns a boolean, so you can test # whether the installation worked. device.installPackage('myproject/bin/MyApplication.apk') # Sets a variable with the package's internal name. package = 'com.example.android.myapplication' # Sets a variable with the name of an Activity in the package. activity = 'com.example.android.myapplication.MainActivity' # Sets the name of the component to start. runComponent = package + '/' + activity # Runs the component. device.startActivity(component=runComponent) # Presses the Menu button. device.press('KEYCODE_MENU', MonkeyDevice.DOWN_AND_UP) # Takes a screenshot. result = device.takeSnapshot() # Writes the screenshot to a file. result.writeToFile('myproject/shot1.png','png')
monkeyrunner API'si
monkeyrunner
API,
com.android.monkeyrunner
paketi:
-
MonkeyRunner
:monkeyrunner
programları için bir yardımcı program yöntemleri sınıfı. Bu sınıf birmonkeyrunner
öğesini bir cihaza veya emülatöre bağlama yöntemi. Ayrıcamonkeyrunner
programı için kullanıcı arayüzleri oluşturma ve yerleşik yardım. -
MonkeyDevice
: Bir cihazı veya emülatörü temsil eder. Bu sınıfta, yükleme ve paketleri kaldırma, bir Etkinlik başlatma ve klavye veya dokunma etkinliklerini uygulamasını indirin. Bu sınıfı test paketlerini çalıştırmak için de kullanırsınız. -
MonkeyImage
: Ekran görüntüsü sağlar. Bu sınıf, ekranları yakalamaya yönelik yöntemler sağlar, bit eşlem resimlerini çeşitli biçimlere dönüştürerek ikiMonkeyImage
nesnesini karşılaştırır ve bir resim dosyası oluşturmuşsunuzdur.
Python programlarında her sınıfa Python modülü olarak erişirsiniz. monkeyrunner
aracı bu modülleri otomatik olarak içe aktarmaz. Bir modülü içe aktarmak için
Python from
ifadesi:
from com.android.monkeyrunner import <module>
Burada <module>
, içe aktarmak istediğiniz sınıf adıdır. Daha fazla öğeyi içe aktarabilirsiniz
birden fazla modülün adlarını birbirinden ayırarak aynı from
virgül kullanarak yapabilirsiniz.
Monkeyrunner'ı çalıştır
monkeyrunner
programlarını bir dosyadan veya
monkeyrunner
ekstre
ele alacağız. Her ikisini de monkeyrunner
komutunu çağırarak yaparsınız.
Bu URL, SDK dizininizin tools/
alt dizininde bulunur.
Bağımsız değişken olarak bir dosya adı sağlarsanız monkeyrunner
komutu
dosyanın içeriğini bir Python programı olarak çalıştırır; Aksi takdirde etkileşimli bir oturum başlatır.
Aşağıda monkeyrunner
komutunun söz dizimi verilmiştir:
monkeyrunner -plugin <plugin_jar> <program_filename> <program_options>
Tablo 1'de monkeyrunner
işaretleri ve bağımsız değişkenleri açıklanmaktadır.
Bağımsız değişken | Açıklama |
---|---|
-plugin <plugin_jar>
|
(İsteğe bağlı) Şu dosya için eklenti içeren bir JAR dosyasını belirtir:
monkeyrunner
monkeyrunner eklentileri hakkında daha fazla bilgi edinmek için
Monkeyrunner'ı eklentilerle genişletin bölümünü.
Birden fazla dosya belirtmek için bağımsız değişkeni birden çok kez ekleyin.
|
<program_filename>
|
Bu bağımsız değişkeni sağlarsanız monkeyrunner komutu içeriği çalıştırır
dosyayı Python programı olarak kullanabilirsiniz. Aksi takdirde, komut
inceleyeceğiz.
|
<program_options>
|
(İsteğe bağlı) <program_file> içindeki programın işaretleri ve bağımsız değişkenleri |
monkeyrunner yerleşik yardım
Aşağıdaki komutu çalıştırarak monkeyrunner
için API referansı oluşturabilirsiniz:
monkeyrunner help.py <format> <outfile>
Bağımsız değişkenler şunlardır:
-
<format>
, düz metin çıkışı içintext
değerine sahiptir veya HTML çıkışı içinhtml
. -
<outfile>
, çıkış dosyası için yol nitelikli bir addır.
Monkeyrunner'ı eklentilerle genişletme
monkeyrunner
API'yi, Java'da yazdığınız sınıflarla genişletebilirsiniz
bir veya daha fazla JAR dosyası halinde oluşturabilirsiniz. Bu özelliği kullanarak
kendi sınıflarınızla veya mevcut sınıfların kapsamını genişletmek için monkeyrunner
API'yi kullanabilirsiniz. Siz
bu özelliği monkeyrunner
ortamını başlatmak için de kullanabilir.
monkeyrunner
işlevine eklenti sağlamak için monkeyrunner
komutunu çağırın
şu sayfada açıklanan -plugin <plugin_jar>
bağımsız değişkeniyle:
tablo 1.
Eklenti kodunuzda ana monkeyrunner
sınıflarını içe aktarabilir ve genişletebilirsiniz
MonkeyDevice
, MonkeyImage
ve MonkeyRunner
com.android.monkeyrunner
(monkeyrunner
API ile ilgili bölüme bakın).
Eklentilerin Android SDK'ya erişmenize olanak sağlamadığını unutmayın. Paketleri içe aktaramazsınız
com.android.app
gibi. Bunun nedeni, monkeyrunner
ürününün
çerçeve API'leri seviyesinin altında olması gerekir.
Eklenti başlangıç sınıfı
Bir eklentinin JAR dosyası, ilk olarak örneklenen bir sınıfı belirtebilir.
komut dosyası işleme başlar. Bu sınıfı belirtmek için anahtarı ekleyin
JAR dosyasına MonkeyRunnerStartupRunner
manifest'ini kullanabilirsiniz. Değer için başlangıçta çalıştırılacak sınıfın adını kullanın. Aşağıdakiler
snippet, bunun bir ant
derleme komut dosyasında nasıl yapılacağını gösterir:
<jar jarfile="myplugin" basedir="${build.dir}"> <manifest> <attribute name="MonkeyRunnerStartupRunner" value="com.myapp.myplugin"/> </manifest> </jar>
Başlangıç sınıfı, monkeyrunner
aracının çalışma zamanı ortamına erişmek için
com.google.common.base.Predicate<PythonInterpreter>
. Örneğin,
sınıfı, varsayılan ad alanında bazı değişkenleri ayarlar:
Kotlin
package com.android.example import com.google.common.base.Predicate import org.python.util.PythonInterpreter class Main: Predicate<PythonInterpreter> { override fun apply(anInterpreter: PythonInterpreter): Boolean { /* * Examples of creating and initializing variables in the monkeyrunner environment's * namespace. During execution, the monkeyrunner program can refer to the variables * "newtest" and "use_emulator" * */ anInterpreter.set("newtest", "enabled") anInterpreter.set("use_emulator", 1) return true } }
Java
package com.android.example; import com.google.common.base.Predicate; import org.python.util.PythonInterpreter; public class Main implements Predicate<PythonInterpreter> { @Override public boolean apply(PythonInterpreter anInterpreter) { /* * Examples of creating and initializing variables in the monkeyrunner environment's * namespace. During execution, the monkeyrunner program can refer to the variables "newtest" * and "use_emulator" * */ anInterpreter.set("newtest", "enabled"); anInterpreter.set("use_emulator", 1); return true; } }