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

Monkey, emülatörünüzde veya cihazınızda çalışan bir programdır. Sistem düzeyindeki çeşitli etkinliklerin yanı sıra tıklamalar, dokunmalar veya hareketler gibi kullanıcı etkinlikleri hakkında sözde rastgele akışlar oluşturur. Maymun'u, geliştirmekte olduğunuz uygulamalara rastgele ancak tekrarlanabilir bir şekilde stres testi uygulamak için kullanabilirsiniz.

Genel bakış

The 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 sözde rastgele bir akışı gönderilir ve bu akış, geliştirdiğiniz uygulama yazılımı üzerinde bir stres testi görevi görür.

Maymun bir dizi seçenek içerir, 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 koştuğunda etkinlikler oluşturur ve sisteme gönderir. Ayrıca, sistemi test edilen izler ve özel olarak işlediği üç koşulu arar:

  • Monkey'i bir veya daha fazla belirli pakette çalışacak şekilde kısıtladıysanız uygulama diğer paketlere gitme girişimlerini 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ı verirse Monkey durup hatayı bildirir.

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

Maymunun temel kullanımı

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

Temel söz dizimi şöyledir:

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

Herhangi bir seçenek belirtilmeden Monkey, sessiz (ayrıntılı olmayan) bir modda başlatılır ve etkinlikleri hedefinizde yüklü tüm paketlere (veya hepsine) 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 öğesi 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ı (ör. etkinliklerinize gönderilen bağımsız 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 aracını aynı çekirdek değeri ile yeniden çalıştırırsanız aynı etkinlik dizisini oluşturur.
--throttle <milliseconds> Etkinlikler arasına sabit bir gecikme ekler. Maymunu yavaşlatmak için bu seçeneği kullanabilirsiniz. Belirtilmezse gecikme olmaz ve etkinlikler mümkün olduğunca hızlı oluşturulur.
--pct-touch <percent> Dokunma etkinliklerinin yüzdesini ayarlayın. (Dokunma etkinlikleri, ekranda tek bir yerde aşağı yukarı hareket etme etkinlikleridir.)
--pct-motion <percent> Hareket etkinliklerinin yüzdesini ayarlayın. (Hareket etkinlikleri, ekranın bir yerinde aşağı etkinlik, bir dizi sahte rastgele hareket ve bir yukarı etkinlikten oluşur.)
--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. (Navigasyon etkinlikleri, yön giriş cihazından giriş olarak yukarı/aşağı/sol/sağ yönlerden 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. Örneğin, 5 yönlü tuşun ortasındaki düğme, geri tuşu veya menü tuşu buna örnek gösterilebilir.)
--pct-syskeys <percent> "Sistem" önemli etkinliklerinin yüzdesini ayarlayın. (Bunlar genellikle Ana Ekran, Geri, Arama Başlat, Aramayı Sonlandır veya Ses kontrolleri gibi sistem tarafından kullanılmak üzere ayrılmış tuşlardır.)
--pct-appswitch <percent> Lansmanların yüzdesini ayarlayın. Maymun, rastgele aralıklarla bir startActivity() çağrısı yayınlar. 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 cihazda daha az kullanılan diğer düğmeler gibi diğer tüm etkinlik türleri için geçerli bir özelliktir.
Kısıtlamalar -p <allowed-package-name> Bu şekilde bir veya daha fazla paket belirtirseniz Maymun, 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. Herhangi 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 fazla 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 Maymun, 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 (kategori başına 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 dışında 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 Bu seçenek ayarlanırsa Monkey etkinlik dizisinden hemen önce ve sonra profil oluşturma raporları oluşturulur. Bu işlem, verilerde/çeşitli öğelerde büyük boyutlu (~5Mb) 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ın profilini oluşturma bölümüne bakın.
--ignore-crashes Normalde Maymun, uygulama çöktüğünde veya işlenmemiş herhangi bir istisnayla karşılaştığında durur. Bu seçeneği belirtirseniz sayı tamamlanana kadar Maymun, sisteme etkinlik 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 belirtirseniz sayı tamamlanana kadar Maymun, sisteme etkinlik göndermeye devam eder.
--ignore-security-exceptions Normalde Maymun, uygulama her tür 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, sayı tamamlanana kadar Maymun, sisteme etkinlik göndermeye devam eder.
--kill-process-after-error Normalde, Maymun bir hata nedeniyle durduğunda, başarısız olan uygulama çalışmaya devam eder. Bu seçenek ayarlandığında, hatanın meydana geldiği işlemi durdurması için sisteme sinyal gönderir. Normal (başarılı) tamamlama durumunda, başlatılan işlemlerin durdurulmadığını ve cihazın yalnızca son etkinlikten sonraki son durumda bırakıldığını unutmayın.
--monitor-native-crashes Android sisteminin yerel kodunda meydana gelen kilitlenmeleri izler ve bildirir. --kill-Process-after-error ayarlanırsa sistem durur.
--wait-dbg Monkey'in çalışmasını, hata ayıklayıcı eklenene kadar durdurur.