Tìm hiểu về Selendroid (Phần 2)
Phần một của bài viết về Selendroid đã giới thiệu tổng quan và hướng dẫn cài đặt Selendroid, dưới đây là phần 2 sẽ tiếp tục hướng chi tiết từng bước để kiểm thử một ứng dụng andorid bằng Selendroid Giả sử rằng bạn có một file APK cần test có tên là Guru99App. Ứng dụng Guru99App cần test có một text ...
Phần một của bài viết về Selendroid đã giới thiệu tổng quan và hướng dẫn cài đặt Selendroid, dưới đây là phần 2 sẽ tiếp tục hướng chi tiết từng bước để kiểm thử một ứng dụng andorid bằng Selendroid Giả sử rằng bạn có một file APK cần test có tên là Guru99App. Ứng dụng Guru99App cần test có một text field và một button tên là Show Text như hình dưới:
Giả sử chúng ta cần execute các Test Case sau với Selendroid:
Mở Eclipse => File => new project => Nhập tên project là Guru99test
2.1.
Right click Guru99Test Project -> Build Path -> Add External Archives
2.2.
Folder lưu jar file hiện ra, add vào các file sau:
- selendroid-client-0.10.0.jar : Selendroid java client library
- selendroid-standalone-0.11.0-with-dependencies :Selendroid standalone server library
- selenium-java-2.40.0.jar : Selenium Web Driver library
3.1.
Right Click Guru99Test -> New -> Package
3.2.
Nhập tên package là com.guru.test sau đó click Finish
3.3.
Cấu trúc thư mục trong Project sẽ như sau:
Trong Eclipse mở mục Help -> Install New Software -> click Add và nhập text như sau:
- Name: TestNG
- Location: http://beust.com/eclipse Nhấn OK => tiến hành cài đặt TestNG
6.1. Chạy dòng command dưới dây 6.2. Mở link: http://localhost:4444/wd/hub/status. 6.3. Copy appID như hình dưới:
Việc cung cấp appID giúp tạo một test session với Selendroid. Nếu không set giá trị này hoặc giá trị này không mapping với Adroid device, test session sẽ bị lỗi hoặc không thể khởi động Sau khi tìm được device, Selendroid tạo một customized selendroid-server và cài đặt server trên device Sau khi xác định được test session, test command được khởi động và execute trên device
Launch Selendroid server sử dụng câu lệnh như ở bước 6: Mở file Guru99Test.java sau đó double click vào line 77: Start session bằng cách nháy phải vào Guru99Test project -> Debug As -> Testng Test. Một test session sẽ như sau:
Sau khi khởi động test session thành công, bạn mở link: http://localhost:4444/inspector trên browser Bạn sẽ nhìn thấy ứng dụng test được lauch như sau:
Đưa chuột hover tới từng UI element của AUT (Button, TextField, Text Label), ID của từng element sẽ được hightlight ở cửa sổ bên phải:
Ta sẽ lấy được ID của từng UI element như sau:
- Button Show Text ID : "btnShow"
- Text Field ID: "edtText"
- Label Text ID: "txtView"
Chương trình test bao gồm 3 session
10.1. Setup Test
Mục đích trong trường hợp test case phát sinh error, selendroid sẽ ném một exception (ngoại lệ) và app test sẽ được stop Scrips:
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); }
10.2. Execute test
Kịch bản như sau: 1 Nhập text "Hello world" 2. Click button Text Button 3. Chờ vài giây 4. Verify text được hiển thị xem có giống như text đã nhập ở bước 1 là "Hello world" hay không
/** * 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()); }
10.3. Finish Test
Đoạn code sau sẽ hoàn thành việc test và Stop Selendroid driver:
/** * Stop the Selendroid driver * */ @AfterSuite public void tearDown() { driver.quit(); }
Lưu ý:
- Đảm bảo rằng device không thiết lập khóa màn hình
- Device phải được kết nối với máy tính mà selendroid- standalone component chạy qua
- Device được cài đặt Android Target Version API 10 trở lên
Right click Guru99test -> Run as -> TestNG test
Script start executed hiện ra như sau:
- Selendroid là một công cụ rất mạnh để test ứng dụng Android cũng như là ứng dụng web.
- Nó có thể kiểm thử với thiết bị thật và simulator
- Cho phép kiểm thử song song cùng lúc trên nhiều device
- Selendroid bao gồm 4 phần: Web Driver client, Selendroid-Server, Android Driver App Selendroid-stand alone
- Để sử dụng Selendroid bạn cần có Java JDK, Android SDK và Eclipse.
Nguồn: https://www.guru99.com/introduction-to-selendroid.html