First Android Test with appium and java

Chào các bạn!
Trong bài trước, chúng ta đã cài android sdk. Bài này chúng ta sẽ làm ví dụ đơn giản để test app cho android với appium và java qua các bước cơ bản sau:

1. Cài Appium 

Tải tại http://appium.io và chạy nó lên, nhấn Start Server. Ở chỗ này, hãy chú ý Port 4723. bạn có thể sửa port tùy ý muốn nhưng mình nghĩ nên để mặc định.

2. Cài 1 máy ảo android

Tải và cài 1 máy ảo android tùy chọn, có thể là BlueStacks hoặc Genymotion, rồi chạy máy ảo đó lên

3. Tạo 1 project Maven mới

Sau khi tạo project Maven mới, hãy thêm các dependency sau: Ở đây mình dùng IntelliJ IDEA

<!-- https://mvnrepository.com/artifact/io.appium/java-client -->
<dependency>
    <groupId>io.appium</groupId>
    <artifactId>java-client</artifactId>
    <version>4.1.2</version>
</dependency>


<!-- https://mvnrepository.com/artifact/org.testng/testng --><dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>6.11</version>
    <scope>test</scope>
</dependency>

4. Viết những dòng code đầu tiên

Đoạn  code sau đây sẽ mở ứng dụng calculator mặc định của android lên, và làm phép tính đơn giản


public class haibgit {

    AndroidDriver driver;

    @BeforeClass
    public void Setup() throws MalformedURLException {

        DesiredCapabilities cap = new DesiredCapabilities();
        cap.setCapability("platformName", "ANDROID");
        cap.setCapability("deviceName", "192.168.210.101:5555");
        cap.setCapability("appPackage", "com.android.calculator2");
        cap.setCapability("appActivity","com.android.calculator2.Calculator");
        //cap.setCapability("avd", "Test");

        driver = new AndroidDriver(new URL(
                "http://localhost:4723/wd/hub"), cap);
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

    }

    @Test
    public void SimpleTest() {
        driver.findElementById("com.android.calculator2:id/digit_9").click();
        driver.findElementById("com.android.calculator2:id/op_add").click();
        driver.findElementById("com.android.calculator2:id/digit_6").click();
        Assert.assertEquals("15", driver.findElementById("com.android.calculator2:id/result").getText());
    }
}
5. Giải thích code:

 Sau đây chúng ta sẽ xem những dòng code cần thiết
  • cap.setCapability("deviceName", "192.168.210.101:5555"); dòng này, đoạn IP phía sau là tên của máy ảo, lấy tên máy ảo bằng cách nào? Lấy bằng cách sử dụng lệnh adb devices  
 
  • Lấy appPackage và appActivity của app: Trước tiên cần mở app trên máy ảo, sau đó qua cmd, chạy lệnh adb shell , rồi chạy tiếp dumpsys window windows | grep -E 'mCurrentFocus'


    Chỗ gạch chân đỏ tương ứng với appPackage và appActivity của app
  • driver.findElementById("com.android.calculator2:id/digit_9").click(); 
 Để xác định được các ID của element, thì cần :
1. mở app calculator của android lên,
2. sau đó chạy file uiautomatorviewer.bat tại F:\Anroid_SDK\tools\bin (đường dẫn này là nơi mà bạn để Android SDK), nhấn vào icon như ảnh dưới


Click vào 1 phần tử mà bạn muốn lấy ID của nó


Kết quả chạy code, cùng tận hưởng cảm giác tuyệt vời này :D


Vậy là chúng ta đã viết đoạn code đầu tiên để test app cho android , sử dụng appium + java.
Hẹn gặp các bạn bài tiếp theo.

0 comments:

Post a Comment