HomeOur Team
Giới thiệu Automation test cho mobile
Testing
Giới thiệu Automation test cho mobile
long.dang
long.dang
March 26, 2021
4 min

1 Mở đầu

Automation testing những năm gần đây đang dần trở thành 1 xu thế mới khi Agile ngày càng được áp dụng rộng rãi và phổ biến với những công ty phát triển phần mềm. Trong nội dung bài viết này, sẽ khái lược về automation cho Application trên Mobile, hướng dẫn cài đặt và sử dụng Appnium Studio để thực hiện việc automation test.

2 Automation cho mobile

Trên thị trường hiện nay có nhiều tools được sử dụng cho testing automation các native app, mobile web app và hybrid app trên nền tảng iOS và Android. Appium là một trong số đó. Với lợi thế là một cross-platform, cho phép test trên đa nền tảng, sử dụng chung api và một source code lại được dùng cho nhiều nền tảng.

Về kiến trúc, appium là một máy chủ HTTP được viết bằng NODE.JS, tạo và xử lý nhiều Webdriver cho các nền tảng khác nhau như iOS và Android. Appium khởi động một testcase trên thiết bị mà có một máy chủ lắng nghe các lệnh proxy từ máy chủ appium là chính. Mỗi platform iOS hoặc Android có một cơ chế khác nhau để chạy testcase trên thiết bị sau khi nhận được các lệnh từ máy chủ Appium

2.1 Android

Appium uỷ quyền cho tập lệnh UIAutomator. UIAutomator là framework của android hỗ trợ chạy các testcase trực tiếp bằng JUnit trên thiết bị từ dòng lệnh. Nó sử dụng Java nhưng appium sẽ làm cho nó chạy từ bất kỳ ngôn ngữ nào hỗ trợ Webdriver

appium2

Khi ta thực thi các tệp lệnh, sẽ có một yêu cầu http dạng JSON đến máy chủ appium. Sau đó, Appium server gửi lệnh tới UIAutomator cần bootstrap.jar. Để nghe lệnh của chúng, ta cần một máy chủ TCP. Vì vậy, bootstrap.jar hoạt động như máy chủ TCP. Và sau đó nó thực thi lệnh trên các thiết bị Android và trả về kết quả. Chu kì này tiếp tục cho đến khi tất cả các lệnh được thực thi.

2.2 iOS

Appium uỷ quyền cho UIAutomation chạy trong môi trường MAC. Apple cung cấp ứng dụng này có tên là Instrustments, được sử dụng để thực hiện nhiều hoạt động như lập hồ sơ, điều khiển và build ứng dụng iOS. Nhưng nó cũng có một thành phần tự động hoá để chúng ta có thể viết một số lệnh trong javascript sử dụng API UIAutomation để tương tác với UI App. Appium sử dụng các thư việc để tương tự để tự động hoá ứng dụng iOS.

appium1

Khi chúng ta thực thi các tập lệnh, sẽ có một yêu cầu HTTP ở định dạng JSON đến máy chủ appium. Sau đó, máy chủ appium gửi lệnh tới instrustments được viết bằng node.js. Thực thi lệnh trong bootstrap.js trong môi trường instrustments iOS. Khi lệnh được thực thi, máy khách lệnh sẽ gửi lại thông điệp đến máy chủ Appium để ghi lại mọi thứ liên quan đến lệnh trong console của nó. Chu kì này sẽ tiếp tục cho đến khi tất cả cá lệnh được thực thi.

3 Cài đặt Appium Studio

Truy cập link để download bản phù hợp với hệ điều hành. Điền các thông tin đăng ký, sau đó link download sẽ được gửi về email của bạn.

picture1

Sau khi download và cài đặt, giao diện của Appium Studio (SeeTest Automation)

picture2

4 Sử dụng Appium Studio

4.1 Android

4.1.1 Kết nối thiết bị

  • Bước 1: Mở chế độ USB debugging trong Developer Options trên device, sau đó kết nối với máy tính
  • Bước 2: Kiểm tra thiết bị đã kết nối, sử dụng lệnh adb devices
  • Bước 3: Nếu chưa cài đặt adb, tải bộ cài adb để cài đặt

4.1.2 Sử dụng Appium studio

Bước 1: Khởi tạo session

Click Device > Add Device > Android Device, hiển thị thiết bị đang kết nối

picture3

Bước 2: Import application

  • Tại vùng Application, click vào icon “Import/Sign Application”

picture5

  • Check vào “Import application from Android device” trong cửa sổ Choose Application Source.

picture6

  • Danh sách các package name sẽ được load ra

picture15

  • Click “Import”, tải cửa sổ Application sẽ hiển thị package name

picture8

Bước 3: Code pattern

Tại tab Log/Code. Click vào tab Code. Click vào danh sách Ngôn ngữ lập trình bên dưới (Java/Python/Ruby/..). Một template code sẽ được khởi tạo ngay bên dưới. Nếu muốn test application nào thì click vào appPackage ở vùng Application.

picture9

Bước 4: Record feature

Tính năng ưu điểm nhất của tools Appium Studio chính là tính năng record. Record này sẽ tự động generate ra test code.

Đầu tiên, click Device > Open Device, một trình giả lập thiết bị thật xuất hiện. Tại vùng “Test”, click “Start Record” để bắt đầu record. Để record thì cần dùng thao tác chuột trên cửa sổ giả lập.

picture10

Sau khi thao tác xong, click Stop Record để kết thúc quá trình record. Code sẽ được generate ra bên dưới vùng code.

screen shot 2021 03 26 at 11 12 37

Bước 5: Inspect element

Các element được lấy tự động bằng tính năng record không tối ưu hoặc không linh hoạt, ta cũng vẫn có thể tự lấy element locator theo ý của mình bằng tính năng Object Spy của Appium studio.

Đầu tiên click icon Open Device hoặc double click vào thiết bị Android đã thêm ở vùng Device. Trong trình giả lập, tại vùng nút điều khiển dưới cùng, click icon Object Spy

picture12

Cửa sổ Object Properties Spy chứa toàn bộ app source. Giờ thì có thể tự lấy element theo ý muốn rồi nhé.

picture13

4.2 iOS

4.2.1 Kết nối thiết bị

Đối với các thiết bị iOS, thì nhất thiết phải tải iTunes về máy (window) thì máy tính mới phát hiện ra thiết bị iOS được. Còn lại, trên thiết bị iOS thì chỉ cần bấm “Tin tưởng” (Trust) Khi được máy tính hỏi thôi.

4.2.2 Sử dụng Appium

Bước 1: Khởi tạo session

Việc khởi tạo với iOS sẽ tương tự với android. Tuy nhiên, với iOS cần phải đăng nhập với account apple developer.

picture14

Bước 2: Import application

Với iOS platform, ta sẽ không thể import được application từ real device.

Bước 3: Code pattern

Tương tự với android, code sẽ tự động được generate. Tuy nhiên để mở đúng app và chạy được code thì phải cần thêm bundleId và appId của App nữa nhé

Tính năng record và inspect element sẽ tương tự như android

5 Kết luận

Trên đây là hướng dẫn cơ bản để bắt đầu tiếp cận với Automation test cho Mobile. Cám ơn các bạn đã đọc đến đây!

Tài liệu tham khảo:

https://www.3pillarglobal.com/insights/appium-a-cross-browser-mobile-automation-tool/ https://techtutorialz.com/open-ios-device-from-appium-studio/


Tags

202103testingautomationappiummobile
long.dang

long.dang

Developer

Related Posts

Bài 3: Làm quen với những câu lệnh cơ bản nhất trong Selenium WebDriver
Bài 3: Làm quen với những câu lệnh cơ bản nhất trong Selenium WebDriver
May 09, 2021
1 min
System operator: Những câu chuyện chưa từng được kể (Phần 1)
Others
System operator: Những câu chuyện chưa từng được kể (Phần 1)
March 31, 2021
5 min
Why Protocol-Oriented Programming?
Articles
Why Protocol-Oriented Programming?
March 31, 2021
2 min
© 2021, All Rights Reserved.

Quick Links

HomeOur Team

Social Media