Selendroid Hướng dẫn cho người mới bắt đầu với ví dụ
Bạn đã bao giờ phát triển một Android ứng dụng và xuất bản nó lên Google Play? Bạn sẽ làm gì nếu nhận được đánh giá của người dùng như –
Khi bạn xuất bản một ứng dụng lên Google Play, ứng dụng đó phải được kiểm tra kỹ lưỡng để tránh các lỗi tiềm ẩn. Có rất nhiều kịch bản thử nghiệm cần được thực hiện trước khi xuất bản một ứng dụng. Để lưu Kiểm tra nỗ lực, bạn cần một công cụ kiểm tra. Một trong những công cụ kiểm tra tốt nhất cho Android ứng dụng là Selendroid.
Là gì Selendroid?
Selendroid là một khung tự động hóa thử nghiệm cho nhiều loại ứng dụng di động: tự nhiên và lai Android ứng dụng và di động web.
Bạn có thể viết bài kiểm tra bằng cách sử dụng Selenium 2 API khách hàng. Bởi vì Selendroid vẫn tái sử dụng những gì hiện có Selenium cơ sở hạ tầng cho web
Selendroid là một công cụ kiểm tra mạnh mẽ. Nó có thể được sử dụng trên giả lập và thực thiết bị
Tại sao chúng ta cần Selendroid?
Selendroid là một công cụ kiểm tra tuyệt vời. Nhưng bạn vẫn có thể nghi ngờ về tính hữu dụng của nó.
Phần này sẽ giới thiệu những tính năng quan trọ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 tra ứng dụng đang được kiểm tra bằng cách sử dụng Selendroid mà không cần bất kỳ sửa đổi nào của ứng dụng. Bạn chỉ cần tệp nhị phân (aPK) được cài đặt trên máy tính. Để cài đặt tệp nhị phân trên thiết bị, ứng dụng thử nghiệm và ứng dụng di động phải được ký bằng cùng một khóa ký
- Selendroid ứng dụng thử nghiệm có thể tương tác với nhiều thiết bị hoặc trình mô phỏng cùng lúc. Đó là một lợi thế lớn của Selendroid. Vì vậy, bạn có thể thử nghiệm ứng dụng của mình với nhiều Android thiết bị để kiểm tra tính tương thích.
- Selendroid có thể mô phỏng hành động của con người trên một ứng dụng, chẳng hạn như chạm, vuốt, kéo và thả trên thiết bị
- Bạn có thể thay đổi các thiết bị phần cứng (Cắm và rút phích cắm) trong quá trình kiểm tra mà không cần khởi động lại hoặc dừng kiểm tra. Selendroid tự động nhận ra các thiết bị mới
- Tương ứng với Android Phiên bản API lên, Selendroid cũng hỗ trợ cái mới Android API (Từ API 10 đến API 19)
- Selendroid cũng có một số công cụ kiểm tra tích hợp sẵn để giúp bạn xác định thành phần UI của ứng dụng đang được thử nghiệm. Ví dụ: nút ID, trường văn bản, chế độ xem văn bản…
Selendroid Archikiến trúc
Selendroid được dựa trên Android khung thiết bị đo đạc. Selendroid các bài kiểm tra được viết dựa trên Selenium API máy khách trình điều khiển web, do đó nó hỗ trợ tích hợp đầy đủ với hiện tại Selenium các khuôn khổ.
Hình sau đây mô tả kiến trúc của Selendroid
Selendroid gồm 4 thành phần chính:
- Máy khách trình điều khiển web – The Java thư viện khách hàng dựa trên Selenium. Thư viện này nên được cài đặt trên máy tính (được sử dụng để phát triển các trường hợp thử nghiệm)
- Selendroid-Server – Máy chủ chạy trong ứng dụng đang được thử nghiệm Android thiết bị hoặc trình mô phỏng. Đây là thành phần chính của một Selendroid kiến trúc
- Android Driver-App – Tích hợp sẵn Android driver, ứng dụng Web View để kiểm tra web di động.
- Selendroid-Standalone – Thành phần này được sử dụng để cài đặt Selendroid máy chủ và ứng dụng đang được thử nghiệm (AUT)
Bắt đầu với Selendroid
Bạn đã biết tầm quan trọng của Selendroid. Bây giờ chúng ta hãy làm bẩn tay mình với Selendroid.
Có 3 bước cần được thực hiện trước lần thử nghiệm đầu tiên với Selendroid
Thiết lập một Selendroid môi trường
Selendroid có thể làm việc trên Window, Linux và hệ điều hành Mac. Trong hướng dẫn này, chúng tôi sẽ thiết lập Selendroid trong hệ điều hành Window.
Trước khi sử dụng Selendroid, trước tiên bạn cần cài đặt gói sau
- Java SDK (tối thiểu 1.6)
Bạn phải chấp nhận thỏa thuận cấp phép và tải xuống trình cài đặt java (Chọn x64 hoặc x86 dựa trên hệ điều hành 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 một Android Thiết bị ảo (AVD) hoặc thiết bị thực Android thiết bị cắm vào PC.
- Selendroid Độc lập với sự phụ thuộc, Selendroid Khách hàngvà Selenium Khách hàng
- Eclipse phần mềm
- Thiết lập JAVA_HOME và ANDROID_HOME
Bước 1) Trên Window, nhấp chuột phải vào Máy tính -> Bất động sản -> Cài đặt hệ thống nâng cao
Bước 2) Cửa sổ System Properties hiển thị, chọn tab Advanced -> Biến môi trường
Bước 3) Cửa sổ Môi trường hiển thị, nhấp vào Mới -> Nhập biến ANDROID_HOME như sau
Giá trị biến là đường dẫn đến android-sdks mà bạn đã cài đặt.
Tìm đường dẫn biến hệ thống -> Chỉnh sửa -> Thêm dòng sau vào sau dòng hiện tại
Tương tự như ANDROID_HOME, thêm biến mới JAVA_HOME với giá trị như bên dưới
Giá trị là Đường dẫn đến của bạn Java cài đặt JDK
Bước 4) Khởi động lại PC của bạn -> Thực hiện
Cách khởi chạy Selendroid
Bước 1) Bắt một ứng dụng đang được thử nghiệm
Bạn có thể sử dụng hiện có Selendroid ứng dụng thử nghiệm để kiểm tra xem làm thế nào Selendroid làm (liên kết để lấy mẫu ứng dụng đang được thử nghiệm)
Sau khi quá trình tải xuống hoàn tất, hãy sao chép APK này và các tệp ở trên Selendroid Bình độc lập tập tin vào một thư mục có tên “Đạo sư99″
Bước 2) Khởi chạy Selendroid
Mở terminal trên Windows & điều hướng đến thư mục Guru99 đã tạo ở bước 1.
Chạy lệnh sau
Đầu ra sẽ hiển thị như sau
Sau khi chạy lệnh này, Selendroid-máy chủ HTTP độc lập 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 Thiết bị ảo, sẽ được quét và nhận dạng tự động. Selendroid sẽ xác định Android phiên bản mục tiêu và kích thước màn hình thiết bị.
Để kiểm tra Android phiên bản mục tiêu cũng như thông tin thiết bị, bạn có thể khởi chạy URL sau trên trình duyệt: http://localhost:4444/wd/hub/status
.
Selendroid lệnh cơ bản
Phần này giới thiệu cho bạn một số thông tin cơ bản Selendroid-Dòng lệnh độc lập. Bạn có thể sử dụng chúng để thiết lập Selendroid môi trường thử nghiệm
- Thiết lập cổng của Selendroid
Cổng mặc định của Selendroid là 4444. Nhưng bạn có thể thay đổi sang cổng khác bằng cách thêm tham số vào lệnh khởi chạy Selendroid
Tham số: -port [số cổng]
Ví dụ:
Trong lệnh trên, 5555 là cổng mới.
Vì vậy, URL để kiểm tra Android phiên bản mục tiêu được thay đổi thành: http://localhost:5555/wd/hub/status
- Chỉ định vị trí của ứng dụng đang được thử nghiệm (tệp APK nhị phân). Selendroid thường yêu cầu đường dẫn tuyệt đối cho tập tin này
Tham số: -app [đường dẫn tập tin]
Ví dụ:
Trong lệnh trên, Selendroid tự động tìm tệp nhị phân dựa trên “C:\Guru99App.apk” để lấy thông tin của ứng dụng đang được thử nghiệm.
Kiểm tra URL
http://localhost:4444/wd/hub/status
, bạn sẽ thấy thông tin này - Thay đổi cổng Selendroid sử dụng để giao tiếp với máy chủ thiết bị đo đạc. Selendroid sử dụng cổng 8080 làm mặc định
Tham số: -selendroidServerPort [số cổng]
Ví dụ
Cổng bây giờ được đổi thành 9000
- Thay đổi thời gian chờ để khởi động trình mô phỏng. Đơn vị là mili giây.
Tham số: -timeoutEmulatorStart
Theo mặc định, Selendroid sẽ đợi 300,000 mili giây cho đến khi trình mô phỏng khởi động. Bạn có thể thay đổi sang thời gian chờ mới (200,000 ms) bằng lệnh
Sau thời gian này, chúng tôi đã hết hạn, nếu trình mô phỏng không thể khởi động, Selendroid sẽ đưa ra lỗi ngoại lệ (Đã xảy ra lỗi khi tìm kiếm thiết bị/trình giả lập.) rồi ngừng chạy
- Khi bạn bắt đầu Selendroid lệnh trên terminal, bạn sẽ thấy một bản ghi được in ra trên màn hình. Bạn có thể thay đổi loại bản ghi bạn thấy bằng cách thêm tham số sau
Tham số: -logLevel [loại nhật ký]
Các giá trị cấp độ nhật ký là LỖI, CẢNH BÁO, THÔNG TIN, GỠ LỖI và ĐỘNG TỪ. Mặc định: LỖI.
Ví dụ, đặt Selendroid để chỉ in nhật ký CẢNH BÁO, bạn có thể sử dụng lệnh này
Selendroid chỉ in nhật ký CẢNH BÁO
Bắt đầu thử nghiệm đầu tiên của bạn với Selendroid
Phần này là hướng dẫn từng bước để tạo tập lệnh thử nghiệm đầu tiên của bạn bằng cách sử dụng Selendroid
Giả sử chúng ta có một Android ứng dụng dưới tên thử nghiệm Guru99App. Ứng dụng này bao gồm một trường văn bản và tên nút “Hiển thị văn bản”.
Chúng ta cần thực hiện những điều sau Trường hợp thử nghiệm sử dụng Selendroid
Các trường hợp kiểm tra | Điều kiện | Sản lượng mong đợi |
---|---|---|
|
Tệp nhị phân của ứng dụng đang được thử nghiệm có sẵn
Một thiết bị được kết nối với PC |
Dòng chữ “Text Show here” được đổi thành văn bản
người dùng nào nhập vào trường văn bản |
Bước 1) Tạo ra một Java dự án trong Eclipse
Bước 2) Thêm selen và Selendroid tệp jar trong môi trường eclipse
Nhấp chuột phải vào Dự án Guru99Test -> Xây dựng đường dẫn -> Thêm bên ngoài Archives
Điều hướng đến thư mục lưu trữ tệp jar
Có 3 file jar nên được thêm vào
- selendroid-client-0.10.0.jar: Selendroid thư viện máy khách java
- selendroid-standalone-0.11.0-with-dependencies: Selendroid thư viện máy chủ độc lập
- selenium-java-2.40.0.jar: Selenium Thư viện trình điều khiển web
Chọn tất cả -> Chọn Open để thêm file jar vào dự án
Bước 3) sau khi thêm thư viện trên, các thư viện đó sẽ được thêm vào Thư viện tham khảo của dự án thử nghiệm. Người thử nghiệm có thể sử dụng API của các thư viện đó để phát triển chương trình thử nghiệm
Tạo gói “com.guru.test” và thêm file java “Guru99Test.java” như bên dưới
Nhấp chuột phải vào Guru99Test -> Mới -> Bưu kiện
Nhập com.guru.test vào trường Tên trên Mới Java Hộp thoại gói à Kết thúc
Eclipse sẽ tạo các thư mục danh sách và thư mục con như thế này trong cấu trúc mã nguồn
Bước 4) đặt TestNG cho Eclipse
In Eclipse, Trợ giúp -> Cài đặt phần mềm mới, trong hộp thoại cài đặt, nhấp vào Thêm và nhập thông tin sau
- Tên: TestNG
- Vị trí: https://github.com/selendroid/selendroid
nhấn OK -> Tiếp theo để cài đặt TestNG
Bước 5) Copy Guru99App.apk vào thư mục Test App
Bước 6) Lấy ID của ứng dụng đang được thử nghiệm.
Giả sử chúng ta có tên tệp APK Guru99App.apk. Thực hiện theo bước được mô tả trong phần trước, thực hiện lệnh trên terminal
Mở liên kết sau trong trình duyệt: http://localhost:4444/wd/hub/status
.
Thông tin của thiết bị được hiển thị, sao chép giá trị appId “com.guru99app:1.0”
Bước 7) Mở tệp Guru99Test.java (trong mã mẫu) và thay đổi như sau
Để tạo một phiên thử nghiệm mới với Selendroid, bạn phải cung cấp id ứng dụng ở định dạng: com.guru99app:1.0. Id ứng dụng này có thể được xác định ở bước 6. Nếu bạn không đặt Id ứng dụng khớp với Android thiết bị, phiên kiểm tra sẽ báo lỗi và không bắt đầu.
Sau khi khởi tạo thiết bị tìm thấy, Selendroid tạo một selendroid-server tùy chỉnh và cài đặt Selendroid máy chủ trên đó
Selendroid cũng cài đặt ứng dụng đang thử nghiệm và khởi động selendroid-server trên thiết bị
Sau khi khởi tạo phiên kiểm tra thành công, lệnh kiểm tra sẽ bắt đầu thực thi trên thiết bị. (chẳng hạn như nhập văn bản, nhấn nút…). Nếu quá trình kiểm thử thêm phiên kiểm thử, trình mô phỏng sẽ tự động dừng
Bước 8) Bắt đầu buổi kiểm tra mới
Khởi động Selendroid máy chủ sử dụng lệnh sau trên thiết bị đầu cuối như bước 6
Sau Selendroid Server đã khởi động, mở dự án thử nghiệm mẫu Guru99test trên Eclipse, đặt điểm dừng tại dòng 77 trên tệp Guru99Test.java bằng cách nhấp đúp vào dòng 77 -> Một dấu chấm sẽ hiển thị như bên dưới
Bắt đầu phiên kiểm tra bằng cách nhấp chuột phải vào dự án Guru99Test -> Gỡ lỗi dưới dạng -> Kiểm tra Thử nghiệm.
Một buổi kiểm tra sẽ bắt đầu như dưới đây
Bước 9) Lấy Id của phần tử GUI của ứng dụng đang được thử nghiệm
Sau khi phiên kiểm tra bắt đầu thành công, hãy mở trình duyệt, điều hướng đến URL http://localhost:4444/inspector
Bạn sẽ thấy Ứng dụng đang được thử nghiệm được khởi chạy như bên dưới
Sử dụng di chuột tới từng thành phần UI của AUT (Button, TextField, Text Label), ID của từng thành phần sẽ nổi bật ở khung bên phải
Sau bước này, bạn có thể lấy ID của từng thành phần UI ở trên
- Nút Hiển thị ID văn bản: “btnShow"
- ID trường văn bản: “edtText"
- ID văn bản nhãn: “txtView"
Những ID đó sẽ được sử dụng trong bước tiếp theo
Bước 10) Nhập chương trình kiểm tra như bên dưới
Một chương trình thử nghiệm sử dụng Selendroid bao gồm 3 phần
Kiểm tra thiết lập:
Sau đây là mã để thiết lập thử nghiệm, nó sẽ thiết lập điều kiện cho phiên thử nghiệm. Trong trường hợp xảy ra lỗi, Selendroid sẽ ném ngoại lệ và ứng dụng thử nghiệm sẽ dừng lại.
Mã này bao gồm các nhận xét để giải thích từng câu lệnh.
package com.guru.test; import io.selendroid.SelendroidCapabilities; import io.selendroid.SelendroidConfiguration; import io.selendroid.SelendroidDriver; import io.selendroid.SelendroidLauncher; import io.selendroid.device.DeviceTargetPlatform; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.testng.Assert; import org.testng.annotations.AfterSuite; import org.testng.annotations.BeforeSuite; import org.testng.annotations.Test; /** * @author Guru99 Test App using Selendroid * Application under test: Guru99App * */ public class Guru99Test { //Declare web driver variable private WebDriver driver; /** * Setup the environment before testing * @throws Exception */ @BeforeSuite public void setUp() throws Exception { //Start selendroid-standalone during test SelendroidConfiguration config = new SelendroidConfiguration(); // Add the selendroid-test-app to the standalone server config.addSupportedApp("Guru99App.apk"); //start the standalone server SelendroidLauncher selendroidServer = new SelendroidLauncher(config); selendroidServer.launchSelendroid(); // Create the selendroid capabilities SelendroidCapabilities capa = new SelendroidCapabilities(); // Specify to use selendroid's test app capa.setAut("com.guru99app:1.0"); // Specify to use the Android device API 19 capa.setPlatformVersion(DeviceTargetPlatform.ANDROID19); // Don't request simulator, use real device capa.setEmulator(false); //capa.wait(10000000); // Create instance of Selendroid Driver driver = new SelendroidDriver(capa); }
Thực thi kiểm tra
Dưới đây là mã để thực hiện kiểm tra. Mã bao gồm các ý kiến
Đây là các bước kiểm tra một lần nữa
- Nhập dòng chữ “Xin chào Thầy”
- Nhấp vào nút Hiển thị văn bản
- Đợi một lúc
- Xác minh rằng ứng dụng hiển thị văn bản khi người dùng nhập vào trường văn bản (Ví dụ: Hiển thị văn bản “Xin chào Guru”)
/** * Start execute the test case * 01. Enter the text "Selendroid" to the textfield * 02. Press OK button * @throws Exception */ @Test public void selendroidTest() throws Exception { // Print the log System.out.print("Start executing test"); // Find the input text field on screen // The id of this text field was get from step 9 WebElement inputField = driver.findElement(By.id("edtText")); // Verify that the text field enabled so user can enter text Assert.assertEquals("true", inputField.getAttribute("enabled")); // Enter a text to text field inputField.sendKeys("Hello Guru"); // click Show Text button // The id of this button was get from step 9 WebElement button = driver.findElement(By.id("btnShow")); button.click(); // Delay time to take effect Thread.sleep(5000); //Find the label "Text Show Here" on screen // The id of this label was get from step 9 WebElement txtView = driver.findElement(By.id("txtView")); //Get the text display on screen String expected = txtView.getText(); // Verify that the text which user enter on text field is same as text display on screen Assert.assertEquals(expected, inputField.getText()); }
Kết thúc bài kiểm tra
Đoạn mã sau sẽ hoàn tất bài kiểm tra bằng cách dừng Selendroid người lái xe.
/** * Stop the Selendroid driver * */ @AfterSuite public void tearDown() { driver.quit(); }
Bạn có thể xem chi tiết trong mã mẫu có trong bài viết này.
Bước 10) Kết nối Android thiết bị với PC thông qua cáp USB. Những điểm cần quan sát –
- Hãy đảm bảo rằng thiết bị chưa được cấu hình khóa màn hình.
- Các thiết bị phải được cắm qua USB vào máy tính có thành phần selendroid-standalone đang chạy trên đó.
- Thiết bị nên cài đặt ít nhất Android Target Phiên bản API 10
Bước 11) Chạy ứng dụng thử nghiệm: Nhấp chuột phải vào Guru99test -> Chạy như -> TestNG thử nghiệm
Bước 10) Script bắt đầu được thực thi như sau
Bước 12) Sau khi thực hiện kiểm thử xong, TestNG tự động tạo báo cáo thử nghiệm như sau
Làm tốt lắm, bây giờ bạn đã hoàn thành bài kiểm tra.
Tổng kết
- Selendroid là một công cụ rất mạnh để thử nghiệm Android ứng dụng gốc, ứng dụng kết hợp cũng như ứng dụng web.
- Nó có thể được sử dụng trên các thiết bị thực cũng như trình mô phỏng.
- Nó cũng cho phép bạn chạy thử nghiệm song song bằng cách chạy thử nghiệm trên nhiều thiết bị.
- Toàn bộ Selendroid bộ gồm có bốn thành phần:
- Máy khách Trình điều khiển Web,
- Selendroid-Máy chủ,
- Android Ứng dụng trình điều khiển
- Selendroid-đứng một mình
- sử dụng Selendroid bạn cần Java JDK, Android SDK và Eclipse cài đặt.