Kiểm thử ứng dụng di động với Selendroid


Trước đây hay đi viết article thuê cho trang Guru99.com, nên giờ dịch tạm 1 bài để đăng  blog vậy

Bạn đã bao giờ phát triển một ứng dụng, đưa lên Google Play? Và bạn sẽ làm gì khi người dùng đưa ra nhận xét thế này:
https://potato.fsoft.com.vn/wp-content/uploads/2016/06/verge-16IMG_6599.0.0.jpg
Ứng dụng này có quá nhiều bug, Tôi không thích nó!
Khi công bố một ứng dụng trên Google Play, nó phải được kiểm thử rất tốt để tránh những bug tiềm tàng. Có hàng đống những kịch bản nên được thực hiện trước khi công bố một ứng dụng. Để tiết kiệm công sức, bạn cần một công cụ kiểm thử và một trong những công cụ tốt nhất hiện giờ là Selendroid

Selendroid là gì?

Selendroid là một framework kiểm thử tự động cho nhiều loại ứng dụng di động: ứng dụng native và hybrid; mobile web.

Bạn có thể viết các phần kiểm thử bằng cách sử dụng API Selenium 2 client, bởi Selendroid vẫn tái sử dụng lại những hạ tầng Selenium cho website.
Selendroid là một công cụ kiểm thử tốt và có thể được sử dụng trên giả lập hoặc thiết bị thực tế.

Tại sao chúng ta cần Selendroid?

Selendroid là một công cụ kiểm thử tuyệt với nhưng bạn có thể vẫn sẽ nghi hoặc về tính hữu dụng của nó
Phần này sẽ giới thiệu tầm quan trọng của các chức năng của Selendroid để trả lời câu hỏi tại sao bạn cần Selendroid.



Bạn có thể kiểm thử ứng dụng bằng cách sử dụng Selendroid mà không cần bất cứ biến đổi nào trong ứng dụng. Bạn chỉ cần tệp binary (APK) được cài đặt trên máy tính. Để cài đặt tệp binary trên thiết bị, ứng dụng kiểm thử và ứng dụng di động phải được đăng ký với cùng một key đăng ký.

Ứng dụng kiểm thử Selendroid có thể tương tác với nhiều thiết bị cùng lúc. Đây là một công dụng tuyệt vời của Selendroid. Bạn có thể kiểm thử ứng dụng của mình với nhiều thiết bị Android khác để kiểm tra sự tương thích.
Bạn có thể thay đổi phần cứng thiết bị (plug hay unplug) trong thời gian kiểm thử mà không cần khởi động lại hay dừng việc kiểm thử. Selendroid có thể tự động nhận ra thiết bị mới.
Selendroid có thể mô phỏng hành động của người dùng trên ứng dụng, ví dụ như chạm, trượt, kéo-thả trên thiết bị.
Tương thích với phiên bản API Android, Selendroid cũng hỗ tợ các API Android mới (từ API 10 tới API 9)
Selendroid cũng có các công cụ inspector tích hợp bên trong để giúp bạn xác định yếu tố UI của ứng dụng khi kiểm thử. Ví dụ ID của nút ấn, trường văn bản,

Cấu trúc Selendroid

Selendroid được dựa trên framework instrumentation. Kiểm thử trong Selendroid được viết dựa trên API Selenium Web driver client, do đó nó hỗ trợ việc tích hợp đầy đủ với framework Selenium hiện tại.
Hình dưới đây thể hiện kiến trúc của Selendroid
Selendroid chứa 4 thành phần chính



Web Driver Client – Thư viện Java client dựa trên Selenium. Thư viện này nên được cài đặt trên máy tính (dùng để phát triển các test case) Selendroid-Server – Máy chủ chạy trong ứng dụng khi kiểm thử trên thiết bị Android. Đây là phần chính của cấu trúc Selendroid. Android Driver-App – Android driver tích hợp trong, một ứng dụng Web View để kiểm thử ứng dụng di động Selendroid-Standalone – Thành phần này được sử dụng để cài đặt Selendroid server và ứng dụng kiểm thử

Bắt đầu với Selendroid

Bạn đã hiểu tầm quan trọng của Selendroid, giờ hãy bắt tay vào việc.
Có 3 bước bạn cần làm trước khi kiểm thử bằng Selendroid

Thiết lập môi trường Selendroid

Selendroid có thể làm việc trên Windows, Linux và Mac OS. Trong phần này, chúng ta sẽ cài đặt Selendroid trên Windows OS. Trước khi sử dụng Selendroid, bạn cần cài đặt các gói này trước
Java SDK (nhỏ nhất là 1.6)
 
Bạn phải đồng ý với thỏa thuận và download Java Installer (Chọn x64 hoặc x86 dựa vào trình duyệt của bạn)
Tải về và cài đặt Java SDK như phần mềm thông thường
Phiên bản mới nhất của Android SDK Máy tính của bạn phải có ít nhất 1 Android Virtual Device (AVD), hoặc thiết bị Android thật được nối với PC Selendroid Standalone with dependencies Selendroid Standalone with dependencies, Selendroid Client và Selenium Client Phần mềm Eclipse Cài đặt JAVA_HOME và ANDROID_HOME
Bước 1) Trên Windows, click chuột phải vào Computer, đi đến Properties->Advance System Setting
Bước 2) Cửa sổ System Properties sẽ hiện ra, chọn tab Advanced->Environment Variables
Bước 3) Cửa sổ The Environment xuất hiện, click New-> Thêm vào một variable ANDROID_HOME như dưới đây
Giá trị biến (variable) là đường dẫn tới android-sdks mà bạn đã cài đặt.
Tìm biến hệ thống Path -> Edit -> Thêm dòng dưới đây:
Tương tự với ANDROID_HOME, thêm biến mới JAVA_HOME với giá trị như dưới đây
Giá trị là đường dẫn tới Java JDK
Bước 4) Khởi động lại máy và bạn đã hoàn thành

Mở Selendroid

Bước 1) Lấy một ứng dụng kiểm thử 
Bạn có thể sử dụng một ứng dụng kiểm thử có sẵn trong Selendroid để kiểm tra xem Selendroid hoạt động thể nào (Link tới ứng dụng mẫu)
Một khi đã tải xong, copy APK này và  tệp Selendroid Standalone jar tới thư mục có tên “Guru99”
Bước 2) Mở Selendroid
Mở terminal trên Windows và đi tới thư mục Guru 99 đã được tạo trong bước 1
Chạy câu lệnh dưới đây:
Kết quả sẽ được hiển thị như sau:
Sau khi chạy câu lệnh này, Selendroid-standalone http server sẽ bắt đầu! Số cổng mặc định của máy chủ này là 4444. Tất cả thiết bị phần cứng cũng như Android Virtual Device sẽ được quét và nhận dạng tự động. Selendroid sẽ tự xác định các phiên bản của Android và kích thước màn hình của thiết bị.
Để kiểm tra phiên bản Android cũng như thông tin của thiết bị, bạn cần chép URL dưới đây vào trình duyệt:

Lệnh cơ bản trong Selendroid

Phần này sẽ giới thiệu về vài dòng lệnh căn bản trong Selendroid-Standalone. Bạn có thể sử dụng chúng để cài đặt môi trường kiểm thử của Selendroid.
Cài đặt cổng cho Selendroid
Cổng mặc định là 4444, nhưng bạn có thể đổi bằng cách thêm các parameter vào lệnh để khởi động Selendroid.
Parameter: -port [port number]
Ví dụ:
Trong dòng lệnh trên, 5555 là công mới.
URL để kiểm tra phiên bản Android được đổi sang: http://localhost:5555/wd/hub/status
Cụ thể hóa vị trí của ứng dụng kiểm thử (tệp binary APK). Selendroid thường đòi hỏi đường dẫn tới tệp.
Parameter: -app [file path]
Ví dụ:
Trong dòng lệnh trên, Selendroid tự động tìm tệp binary dựa trên  “C:\Guru99App.apk” để lấy thông tin về ứng dụng kiểm thử
Khi vào URL này http://localhost:4444/wd/hub/status, bạn sẽ thấy thông tin:
Đổi cổng mà Selendroid sử dụng để giao tiếp với instrumentation server. Selendroid sử dụng cổng 8080 mặc định
Parameter:  -selendroidServerPort [port number]
Ví dụ:
Cổng hiện giờ đã được đổi sang 9000
Đổi timeout để bắt đầu giả lập. Đơn vị là milli giây
Parameter: -timeoutEmulatorStart
Selendroid sẽ đợi mặc định là 300,000 milli giây đến khi giả lập bắt đầu. Bạn có thể thay đổi, sang 200,000 chẳng hạn.
Sau khi phần timeout hết hạn, nếu phần giả lập không thể khởi động, Selendroid sẽ vứt lỗi ngoại lệ này (Lỗi xảy ra khi tìm kiếm thiết bị/giả lập) và ngừng chạy.
Khi bạn khởi động lệnh Selendroid trên terminal, bạn sẽ thấy khung trên màn hình. Bạn có thể thay đổi loại khung bạn nhìn thấy bằng cách thêm vào các parameter sau.
Parameter: -logLevel [type of log]
Các giá trị log level là : ERROR, WARNING, INFO, DEBUG and VERBOSE. Mặc định: ERROR.
Ví dụ, đặt Selendroid chỉ đưa ra khung WARNING, bạn nên dùng lệnh này.
Selendroid sẽ chỉ đưa ra khung WARNING
Powered by Blogger.