Monkey là chương trình chạy trên trình mô phỏng hoặc thiết bị và tạo ra các luồng sự kiện người dùng giả ngẫu nhiên như lượt nhấp, thao tác nhấn hoặc cử chỉ, cũng như một số hệ thống sự kiện theo cấp. Bạn có thể sử dụng Monkey để kiểm tra ứng dụng mà bạn đang phát triển, theo cách lặp lại ngẫu nhiên.
Tổng quan
Monkey là một công cụ dòng lệnh mà bạn có thể chạy trên bất kỳ phiên bản trình mô phỏng nào hoặc trên thiết bị. Công cụ này gửi một luồng sự kiện người dùng giả ngẫu nhiên vào hệ thống, hoạt động như một quy trình kiểm thử nghiêm ngặt đối với phần mềm ứng dụng mà bạn đang phát triển.
Monkey bao gồm một số tùy chọn, nhưng chúng chia thành bốn danh mục chính:
- Các tùy chọn cấu hình cơ bản, chẳng hạn như đặt số lần phát sự kiện.
- Các ràng buộc về hoạt động, chẳng hạn như hạn chế thử nghiệm trong một gói duy nhất.
- Các loại và tần suất sự kiện.
- Các tùy chọn gỡ lỗi.
Khi Monkey chạy, Monkey sẽ tạo sự kiện và gửi chúng đến hệ thống. Nội dung này cũng xem hệ thống đang thử nghiệm và tìm kiếm ba điều kiện mà hệ thống xử lý đặc biệt:
- Nếu bạn đã buộc Monkey chỉ chạy được một hoặc nhiều gói cụ thể, thì Monkey sẽ tìm cách tìm đường đến những gói khác và chặn chúng.
- Nếu ứng dụng của bạn gặp sự cố hoặc nhận được bất kỳ loại ngoại lệ nào chưa xử lý, Monkey sẽ dừng và báo cáo lỗi.
- Nếu ứng dụng của bạn tạo lỗi ứng dụng không phản hồi, thì Monkey sẽ dừng và báo cáo lỗi.
Tùy thuộc vào mức độ chi tiết mà bạn đã chọn, bạn cũng sẽ thấy các báo cáo về tiến độ của Monkey và các sự kiện đang được tạo.
Hoạt động sử dụng cơ bản của Monkey
Bạn có thể khởi chạy Monkey bằng cách dùng một dòng lệnh trên máy phát triển hoặc từ một tập lệnh.
Vì Monkey chạy trong môi trường trình mô phỏng/thiết bị, nên bạn phải chạy nó từ một màn hình trong môi trường đó. Bạn có thể thực hiện việc này bằng cách đặt adb shell
vào từng lệnh
hoặc nhập trực tiếp vào vỏ và nhập lệnh Monkey.
Cú pháp cơ bản là:
$ adb shell monkey [options] <event-count>
Không có tùy chọn nào được chỉ định, Monkey sẽ khởi chạy ở chế độ yên tĩnh (không chi tiết) và sẽ gửi sự kiện đến bất kỳ (và tất cả) gói được cài đặt mục tiêu của bạn. Dưới đây là một dòng lệnh tiêu biểu hơn. Dòng lệnh này sẽ chạy ứng dụng của bạn và gửi 500 sự kiện giả ngẫu nhiên đến ứng dụng đó:
$ adb shell monkey -p your.package.name -v 500
Tham chiếu tùy chọn lệnh
Bảng dưới đây liệt kê tất cả các tùy chọn mà bạn có thể đưa vào dòng lệnh Monkey.
Danh mục | Lựa chọn | Mô tả |
---|---|---|
Chung | --help |
In một bản hướng dẫn sử dụng đơn giản. |
-v |
Mỗi -v trên dòng lệnh sẽ làm tăng mức độ chi tiết. Cấp 0 (mặc định) cung cấp ít thông tin ngoài thông báo khởi động, hoàn thành thử nghiệm và kết quả cuối cùng. Cấp 1 cung cấp thêm thông tin chi tiết về thử nghiệm trong thử nghiệm, chẳng hạn như các sự kiện riêng lẻ đang được gửi đến hoạt động của bạn. Cấp 2 cung cấp thông tin thiết lập chi tiết hơn, chẳng hạn như các hoạt động đã chọn hoặc chưa được chọn để thử nghiệm. | |
Sự kiện | -s <seed> |
Giá trị gốc của trình tạo số giả ngẫu nhiên. Nếu bạn chạy lại Monkey có cùng giá trị gốc, thì mã sẽ tạo một chuỗi sự kiện giống nhau. |
--throttle <milliseconds> |
Chèn một độ trễ cố định giữa các sự kiện. Bạn có thể dùng tùy chọn này để làm chậm Monkey. Nếu bạn không chỉ định thì không có độ trễ và các sự kiện được tạo nhanh nhất có thể. | |
--pct-touch <percent> |
Điều chỉnh tỷ lệ phần trăm của sự kiện nhấn. (Sự kiện nhấn là sự kiện thả xuống ở một nơi duy nhất trên màn hình.) | |
--pct-motion <percent> |
Điều chỉnh tỷ lệ phần trăm của sự kiện chuyển động. (Sự kiện chuyển động bao gồm một sự kiện giảm giá ở nơi nào đó trên màn hình, một loạt các bước giả ngẫu nhiên và một sự kiện lên trên.) | |
--pct-trackball <percent> |
Điều chỉnh tỷ lệ phần trăm sự kiện bi xoay. (Sự kiện bi xoay bao gồm một hoặc nhiều chuyển động ngẫu nhiên, đôi khi có thể nhấp chuột.) | |
--pct-nav <percent> |
Điều chỉnh tỷ lệ phần trăm của sự kiện di chuyển "cơ bản". (Sự kiện điều hướng bao gồm lên/xuống/trái/phải, làm phương thức nhập từ thiết bị đầu vào định hướng). | |
--pct-majornav <percent> |
Điều chỉnh tỷ lệ phần trăm của sự kiện điều hướng "chính". (Đây là những sự kiện điều hướng thường gây ra các thao tác trong giao diện người dùng, chẳng hạn như nút giữa trong bàn phím 5 chiều, phím quay lại hoặc phím trình đơn.) | |
--pct-syskeys <percent> |
Điều chỉnh tỷ lệ phần trăm của sự kiện chính trong "hệ thống". (Đây là những khóa thường được hệ thống đặt trước để sử dụng, chẳng hạn như Màn hình chính, Quay lại, Bắt đầu cuộc gọi, Kết thúc cuộc gọi hoặc Điều khiển âm lượng.) | |
--pct-appswitch <percent> |
Điều chỉnh tỷ lệ phần trăm hoạt động khởi chạy. Vào các khoảng thời gian ngẫu nhiên, Monkey sẽ phát lệnh gọi startActivity() như một cách tối đa hóa mức độ phù hợp của tất cả hoạt động trong gói của bạn. | |
--pct-anyevent <percent> |
Điều chỉnh tỷ lệ phần trăm của các loại sự kiện khác. Đây là tổng hợp cho tất cả các loại sự kiện khác như nhấn phím, các nút ít được sử dụng khác trên thiết bị, v.v. | |
Giới hạn | -p <allowed-package-name> |
Nếu bạn chỉ định một hoặc nhiều gói theo cách này, Monkey sẽ chỉ cho phép hệ thống truy cập vào các hoạt động trong những gói đó. Nếu ứng dụng của bạn yêu cầu quyền truy cập vào các hoạt động trong các gói khác (ví dụ: để chọn một mục liên hệ), bạn cũng cần phải chỉ định các gói đó. Nếu bạn không chỉ định bất kỳ gói nào, Monkey sẽ cho phép hệ thống triển khai các hoạt động trong tất cả các gói. Để chỉ định nhiều gói, hãy sử dụng tùy chọn -p nhiều lần — một tùy chọn -p cho mỗi gói. |
-c <main-category> |
Nếu bạn chỉ định một hoặc nhiều danh mục theo cách này, Monkey sẽchỉ cho phép hệ thống truy cập các hoạt động được liệt kê với một trong các danh mục được chỉ định. Nếu bạn không chỉ định bất kỳ danh mục nào, Monkey sẽ chọn các hoạt động được liệt kê với danh mục Intent.TOPIC_LAUNCHER hoặc Intent.ClaimReview_MONKEY. Để chỉ định nhiều danh mục, hãy sử dụng tùy chọn -c nhiều lần — một tùy chọn -c cho mỗi danh mục. | |
Gỡ lỗi | --dbg-no-events |
Khi được chỉ định, Monkey sẽ thực hiện hoạt động khởi chạy lần đầu vào một hoạt động thử nghiệm, nhưng sẽ không tạo thêm sự kiện nào nữa. Để có kết quả tốt nhất, hãy kết hợp với -v, một hoặc nhiều ràng buộc cho gói hàng và nút điều khiển khác 0 để giúp Monkey chạy trong 30 giây trở lên. Thao tác này cung cấp một môi trường mà trong đó bạn có thể theo dõi các quá trình chuyển đổi gói do ứng dụng của mình gọi. |
--hprof |
Nếu được đặt, tùy chọn này sẽ tạo các báo cáo tạo hồ sơ ngay trước và sau chuỗi sự kiện Monkey. Tùy chọn này sẽ tạo ra các tệp có kích thước lớn (~5Mb) trong dữ liệu/sai lệch, vì vậy, hãy cẩn thận khi sử dụng. Để biết thông tin về cách phân tích báo cáo cấu hình, hãy xem phần Hồ sơ về hiệu suất của ứng dụng. | |
--ignore-crashes |
Thông thường, Monkey sẽ dừng khi ứng dụng gặp sự cố hoặc gặp bất kỳ loại ngoại lệ nào chưa được xử lý. Nếu bạn chỉ định tùy chọn này, Monkey sẽ tiếp tục gửi các sự kiện vào hệ thống cho đến khi đếm xong. | |
--ignore-timeouts |
Thông thường, Monkey sẽ dừng lại khi ứng dụng gặp bất kỳ loại lỗi hết thời gian chờ nào, chẳng hạn như hộp thoại "Ứng dụng không phản hồi". Nếu bạn chỉ định tùy chọn này, Monkey sẽ tiếp tục gửi sự kiện tới hệ thống cho đến khi đếm xong. | |
--ignore-security-exceptions |
Thông thường, Monkey sẽ dừng lại khi ứng dụng gặp bất kỳ lỗi nào về quyền, ví dụ như nếu ứng dụng cố khởi chạy một hoạt động yêu cầu một số quyền nhất định. Nếu bạn chỉ định tùy chọn này, Monkey sẽ tiếp tục gửi các sự kiện đến hệ thống cho đến khi số đếm hoàn tất. | |
--kill-process-after-error |
Thông thường, khi Monkey dừng lại do lỗi, ứng dụng không thành công sẽ không hoạt động được nữa. Khi bạn đặt tùy chọn này, tùy chọn sẽ báo hiệu cho hệ thống dừng quy trình xảy ra lỗi. Lưu ý: trong khi quá trình hoàn tất (thành công) thông thường, (các) quy trình phát hành không bị dừng lại và thiết bị chỉ còn ở trạng thái cuối cùng sau sự kiện cuối cùng. | |
--monitor-native-crashes |
Theo dõi và báo cáo các sự cố xảy ra trong mã gốc của hệ thống Android. Nếu bạn đặt--lỗi-xử-lý-sau-lỗi, hệ thống sẽ ngừng hoạt động. | |
--wait-dbg |
Ngăn Monkey thực thi cho đến khi gắn trình gỡ lỗi. |