Tìm hiểu về Selendroid (Phần 2)
This post hasn't been updated for 3 years
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:
Bước 1. Tạo một Java project trên Eclipse
Mở Eclipse => File => new project => Nhập tên project là Guru99test
Bước 2. Add selenium và Selendroid jar file
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
Bước 3. Tạo package
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:
Bước 4: Install TestNG
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
Bước 5: Copy Guru99App.apk vào project
Bước 6: Lấy ID của file APK
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:
Bước 7: Nhập appID
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
Bước 8: Khởi động Test session
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:
Bước 9: Lấy ID của element
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"
Bước 10. Viết scrip
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();
}
Bước 11. Connect Android device tới PC thông qua USB cable
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
Bước 12. Run test app
Right click Guru99test -> Run as -> TestNG test
Script start executed hiện ra như sau:
Bước 13: Test report
Tổng kết
- 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
All Rights Reserved