Showing posts with label mobile app automation. Show all posts
Showing posts with label mobile app automation. Show all posts

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.

How to install android sdk without android studio

Như các bạn đã biết, hiện tại trang chủ android không còn cách hướng dẫn cài android sdk 1 cách đầy đủ nữa, vì đã phát triển qua nhiều thế hệ, sdk được tích hợp sâu vào android studio nên cài android sdk khó khăn hơn.
Bài viết này chúng ta sẽ tìm cách cài Android SDK để có thể sử dụng 1 số tool của nó để phục vụ việc auto test app bằng Appium
Phần 1: cài Android SDK
Trước tiên, chúng ta cần cài JDK vào máy tính của mình, xem cách cài tại bài này
Tiếp theo, tải và cài đặt Android SDK tại đây (bản này hơi cũ 1 xíu, nhưng không sao). chúng ta có thể để nó cài mặc định, hoặc tùy chọn vào 1 ổ đĩa khác (cách này mình khuyên dùng, vì sau này cài lại win thì vẫn còn)


Sau khi cài xong thì chạy nó lên, nó đã tự tích sẵn cho chúng ta vài cái như sau:

Ở ảnh này, nó đã tự chọn sẵn cần update như :
  • Android SDK tools, 
  • Android SDK Platform-tools 
  •  Android SDK Build-tools

Ở ảnh này, nó cũng tự chịn giúp chúng ta, nhưng chúng ta chỉ cần SDK Platform của 1 phiên bản android bất kỳ, ví dụ Android 6 hay 7 hoặc 8 gì đó. Sau đó chọn cài đặt các packge như trong ảnh. 
Tiếp theo thì chờ nó tải về và tự giải nén.
Tại sao chỉ cần SDK Platform thôi? vì chúng ta không cần tạo máy ảo = chính android SDK nên không cần mấy cái còn lại, nếu mà tạo máy ảo bằng chính android SDK thì sẽ cần cài.
Trong các bài hướng dẫn tiếp theo về Appium, mình sẽ dùng máy ảo BlueStask để chạy code.
Phần 2: cài Path cho Android SDK
Việc add Path để làm gì?
Để mỗi khi cần gõ lệnh adb, thì không phải vào tận thư mục gốc mà chạy nó, chỉ cần mở cmd ở bất cứ đâu, cứ gõ adb là ok :D
Các bạn xem hướng dẫn cài Path ở bài viết này, và chúng ta sẽ thêm dòng này vào Path:
E:\AndroidSDK\tools;E:\AndroidSDK\platform-tools
Trong đó: E:\AndroidSDK là nơi tôi cài đặt Android SDK ở phần 1
Để kiểm tra xem việc add path đã đúng chưa, hãy mở cmd và gõ adb 

Vậy là qua bài viết này, chúng ta đã biết cài android SDK 1 cách đơn giản. Thực ra mấy năm trước, cài cũng đơn giản lắm, nhưng hiện nay google nó dần tích hợp sdk vào trong android studio để tiện lợi cho việc phát triển phần mềm trên android, nhưng chúng ta thì chỉ cần sdk là đủ, còn việc dùng IDE nào để viết code auto test cho android, thì là sở thích mỗi người, có thể là eclipse, intellij IDEA...
Bài sau chúng ta sẽ cài Appium và viết những dòng code đầu tiên nhé.