
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.
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
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
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.
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.
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.
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.
Sau khi download và cài đặt, giao diện của Appium Studio (SeeTest Automation)
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
Bước 2: Import application
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.
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.
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.
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
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é.
Đố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.
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.
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
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!
https://www.3pillarglobal.com/insights/appium-a-cross-browser-mobile-automation-tool/ https://techtutorialz.com/open-ios-device-from-appium-studio/