Kullanıcı Arayüzü/Uygulama Uygulayan Maymun

Monkey, emülatörünüzde veya cihazınızda çalışan bir programdır ve tıklama, dokunma veya hareketler gibi kullanıcı etkinliklerinin sahte rastgele akışlarını ve sistem düzeyindeki çeşitli etkinlikleri oluşturur. Monkey'i, geliştirmekte olduğunuz uygulamalara rastgele ancak tekrarlanabilir bir şekilde stres testi yapmak için kullanabilirsiniz.

Genel bakış

Monkey, herhangi bir emülatör örneğinde veya cihazda çalıştırabileceğiniz bir komut satırı aracıdır. Sisteme kullanıcı etkinliklerinin sahte rastgele bir akışı gönderilir. Bu akış, geliştirdiğiniz uygulama yazılımı üzerinde bir stres testi görevi görür.

Maymun bir dizi seçenek sunar, ancak bunlar dört ana kategoriye ayrılır:

  • Denenecek etkinlik sayısını ayarlama gibi temel yapılandırma seçenekleri.
  • Testin tek bir paketle kısıtlanması gibi operasyonel kısıtlamalar.
  • Etkinlik türleri ve sıklıkları.
  • Hata ayıklama seçenekleri.

Maymun çalıştığında etkinlikler oluşturur ve sisteme gönderir. Ayrıca, test edilmekte olan sistemi izler ve özel olarak ele aldığı üç koşulu arar:

  • Monkey'i bir veya daha fazla belirli pakette çalışacak şekilde sınırlandırdıysanız diğer paketlere gitme denemelerini izler ve bunları engeller.
  • Uygulamanız kilitlenirse veya işlenmemiş herhangi bir istisna alırsa Maymun durup hatayı bildirir.
  • Uygulamanız uygulama yanıt vermiyor hatası oluşturursa Monkey durup hatayı bildirir.

Seçtiğiniz ayrıntı düzeyine bağlı olarak, Monkey'in ilerleme durumu ve oluşturulan etkinliklerle ilgili raporları da görürsünüz.

Maymun'un basit kullanımı

Monkey'i, geliştirme makinenizdeki bir komut satırını kullanarak veya bir komut dosyasından başlatabilirsiniz. Monkey, emülatör/cihaz ortamında çalıştığından bu ortamdaki bir kabuktan başlatmanız gerekir. Bu işlemi her komutun adb shell önüne ekleyerek veya kabuk girip doğrudan Maymun komutlarını girerek yapabilirsiniz.

Temel söz dizimi şöyledir:

$ adb shell monkey [options] <event-count>

Herhangi bir seçenek belirtilmeden Monkey, sessiz (ayrıntılı olmayan) modda başlatılır ve etkinlikleri, hedefinizde yüklü tüm paketlere (ve tüm) gönderir. Aşağıda, uygulamanızı başlatacak ve ona 500 sözde rastgele etkinlik gönderecek daha tipik bir komut satırı verilmiştir:

$ adb shell monkey -p your.package.name -v 500

Komut seçenekleri referansı

Aşağıdaki tabloda Monkey komut satırına ekleyebileceğiniz tüm seçenekler listelenmiştir.

Kategori Option Açıklama
Genel --help Basit bir kullanım kılavuzu yazdırır.
-v Komut satırındaki her -v, ayrıntı düzeyini artırır. 0. Düzey (varsayılan); başlangıç bildirimi, testin tamamlanması ve nihai sonuçlar dışında çok az bilgi sağlar. 1. Düzey, devam eden test hakkında daha fazla ayrıntı (örneğin, etkinliklerinize gönderilen ayrı etkinlikler) sağlar. 2. Düzey, test için seçilen veya seçilmeyen etkinlikler gibi daha ayrıntılı kurulum bilgileri sağlar.
Etkinlikler -s <seed> Yapay rastgele sayı oluşturma aracı için çekirdek değeri. Monkey'i aynı çekirdek değeriyle yeniden çalıştırırsanız aynı etkinlik dizisini oluşturur.
--throttle <milliseconds> Etkinlikler arasına sabit bir gecikme süresi ekler. Maymun'u yavaşlatmak için bu seçeneği kullanabilirsiniz. Belirtilmezse gecikme olmaz ve etkinlikler mümkün olan en hızlı şekilde oluşturulur.
--pct-touch <percent> Dokunma etkinliklerinin yüzdesini ayarlayın. (Dokunma etkinlikleri, ekranın tek bir yerinde aşağı yukarı açılan etkinliklerdir.)
--pct-motion <percent> Hareket etkinliklerinin yüzdesini ayarlayın. (Hareket etkinlikleri, ekranın bir yerindeki bir aşağı etkinliği, bir dizi sözde rastgele hareket ve bir yukarı etkinliği içerir.)
--pct-trackball <percent> Trackball etkinliklerinin yüzdesini ayarlayın. (Trackball etkinlikleri, bazen bir tıklama izleyen bir veya daha fazla rastgele hareketten oluşur.)
--pct-nav <percent> "Temel" gezinme etkinliklerinin yüzdesini ayarlayın. (Gezinme etkinlikleri, yön giriş cihazından giriş olarak yukarı/aşağı/sol/sağdan oluşur.)
--pct-majornav <percent> "Ana" gezinme etkinliklerinin yüzdesini ayarlayın. (Bunlar, genellikle kullanıcı arayüzünüzde işlemlere neden olan gezinme etkinlikleridir (ör. 5 yönlü tuş, geri tuşu veya menü tuşu gibi).
--pct-syskeys <percent> "Sistem" önemli etkinliklerinin yüzdesini ayarlayın. (Bunlar, genellikle Ana Ekran, Geri, Arama Başlat, Aramayı Sonlandır veya Ses seviyesi kontrolleri gibi sistem tarafından kullanılmak üzere ayrılmış tuşlardır.)
--pct-appswitch <percent> Aktivite başlatma yüzdesini ayarlayın. Monkey, rastgele aralıklarla bir startActivity() çağrısı yapar. Bu çağrı, paketinizdeki tüm etkinliklerin kapsamını en üst düzeye çıkarmanın bir yoludur.
--pct-anyevent <percent> Diğer etkinlik türlerinin yüzdesini ayarlayın. Bu, tuşlara basma ve cihazdaki daha az kullanılan diğer düğmeler gibi diğer tüm etkinlik türlerinin tümünü kapsar.
Kısıtlamalar -p <allowed-package-name> Bu şekilde bir veya daha fazla paket belirtirseniz Monkey yalnızca sistemin bu paketler içindeki etkinlikleri ziyaret etmesine izin verir. Uygulamanız diğer paketlerdeki etkinliklere erişim gerektiriyorsa (ör. kişi seçmek için) bu paketleri de belirtmeniz gerekir. Hiçbir paket belirtmezseniz Monkey, sistemin tüm paketlerde etkinlikleri başlatmasına izin verir. Birden fazla paket belirtmek için -p seçeneğini birden çok kez kullanın (paket başına bir -p seçeneği).
-c <main-category> Bu şekilde bir veya daha fazla kategori belirtirseniz Maymun yalnızca belirtilen kategorilerden biriyle listelenen etkinlikleri ziyaret etmesine izin verir. Herhangi bir kategori belirtmezseniz Monkey, Intent.CATEGORY_LAUNCHER veya Intent.CATEGORY_MONKEY kategorisiyle listelenen etkinlikleri seçer. Birden fazla kategori belirtmek için -c seçeneğini birden çok kez kullanın (her kategori için bir -c seçeneği).
Hata ayıklama --dbg-no-events Bu parametre belirtildiğinde Maymun, ilk lansmanı bir test etkinliği olarak gerçekleştirir, ancak başka etkinlik oluşturmaz. En iyi sonuçlar için -v, bir veya daha fazla paket kısıtlaması ve sıfır olmayan bir kısıtlama ile birleştirerek Maymun'un 30 saniye veya daha uzun süre çalışmasını sağlayın. Bu, uygulamanız tarafından çağrılan paket geçişlerini izleyebileceğiniz bir ortam sağlar.
--hprof Ayarlanırsa bu seçenek, Monkey etkinlik dizisinden hemen önce ve sonra profil oluşturma raporları oluşturur. Bu işlem büyük (~5 Mb) veri/çeşitli dosyalar oluşturacağından dikkatli kullanın. Profil oluşturma raporlarını analiz etme hakkında daha fazla bilgi için Uygulamanızın performansını profil oluşturma bölümüne bakın.
--ignore-crashes Normalde Monkey, uygulama çöktüğünde veya işlenmemiş herhangi bir istisnayla karşılaştığında durur. Bu seçeneği belirlerseniz Monkey, sayım tamamlanana kadar etkinlikleri sisteme göndermeye devam eder.
--ignore-timeouts Normalde Maymun, uygulama "Uygulama Yanıt Vermiyor" iletişim kutusu gibi herhangi bir tür zaman aşımı hatasıyla karşılaştığında durur. Bu seçeneği belirlerseniz Monkey, sayım tamamlanana kadar sisteme etkinlik göndermeye devam eder.
--ignore-security-exceptions Normalde Maymun, uygulama herhangi bir izin hatasıyla karşılaştığında (örneğin, belirli izinler gerektiren bir etkinliği başlatmaya çalıştığında) durur. Bu seçeneği belirtirseniz Monkey, sayı tamamlanana kadar sisteme etkinlik göndermeye devam eder.
--kill-process-after-error Normalde, Maymun bir hata nedeniyle durduğunda, başarısız olan uygulama çalışır durumda kalır. Bu seçenek ayarlandığında, hatanın oluştuğu işlemi durdurması için sisteme sinyal gönderilir. Normal (başarılı) bir tamamlanma altında, başlatılan işlemlerin durdurulmadığını ve cihazın son etkinlikten sonraki son durumda bırakıldığını unutmayın.
--monitor-native-crashes Android sisteminin yerel kodunda meydana gelen kilitlenmeleri izler ve raporlar. --kill-process- after-error ayarlanırsa sistem durur.
--wait-dbg Monkey'in yürütülmesini, hata ayıklayıcı eklenene kadar durdurur.