NỘI DUNG BÀI HỌC
✅Cài đặt Drivers cho Appium Server
✅Cài đặt Plugins cho Appium Server
✅Sử dụng Plugins trong Appium Server
✅Các Command-Line Arguments trong Appium Server
✅Cài đặt Appium Doctor
Appium Doctor là một công cụ đi kèm với Appium để kiểm tra xem môi trường của bạn đã sẵn sàng để chạy Appium hay chưa. Công cụ này giúp phát hiện các vấn đề với các dependencies, drivers, hoặc cấu hình cần thiết để chạy các dự án tự động hóa với Appium.
Lý do sử dụng Appium Doctor
- Kiểm tra môi trường nhanh chóng: Appium Doctor giúp xác minh xem các phần mềm và cấu hình cần thiết như Java, Android SDK, Xcode, và Node.js đã được cài đặt đúng chưa.
- Phát hiện lỗi cấu hình: Nếu thiếu hoặc lỗi bất kỳ thành phần nào, Appium Doctor sẽ hiển thị thông báo lỗi chi tiết cùng hướng dẫn cách khắc phục.
- Tự động hóa cài đặt: Công cụ hỗ trợ cài đặt các công cụ liên quan hoặc điều chỉnh cấu hình, giảm thiểu lỗi thủ công.
Khi nào nên dùng Appium Doctor?
- Lần đầu cài đặt Appium: Để đảm bảo môi trường đã được cấu hình đúng.
- Sau khi nâng cấp hoặc di chuyển môi trường: Để kiểm tra lại các công cụ và drivers.
- Khi gặp lỗi không rõ nguyên nhân: Kiểm tra xem có vấn đề nào với dependencies hoặc cấu hình.
🔆Cài đặt Appium Doctor
Công cụ Appium Doctor có thể được cài đặt bằng cách sử dụng NPM:
npm install appium-doctor -g
https://www.npmjs.com/package/appium-doctor
🔆Chạy Appium Doctor
Sau khi cài đặt, chạy lệnh sau để kiểm tra môi trường:
appium-doctor
🔆Các Tùy chọn Sử dụng
Bạn có thể chạy Appium Doctor với các tùy chọn bổ sung để kiểm tra các nền tảng cụ thể:
-
Kiểm tra môi trường Android:
-
Kiểm tra môi trường iOS:
Appium Doctor sẽ hiển thị danh sách các thành phần cần thiết, phân loại như sau:
Trạng thái | Ý nghĩa |
---|---|
✅ OK | Phần mềm/cấu hình đã được cài đặt đúng. |
⚠️ Warning | Phần mềm có thể cần kiểm tra hoặc cập nhật. |
❌ Missing/Error | Phần mềm/cấu hình bị thiếu hoặc không hoạt động. |
✅Cài đặt Drivers cho Appium Server
Trong Appium, drivers là các thành phần quan trọng giúp Appium giao tiếp với thiết bị (thật hoặc giả lập) hoặc nền tảng cụ thể (Android, iOS, Windows, v.v.) để thực thi các lệnh tự động hóa. Chúng đóng vai trò trung gian giữa Appium Server và hệ điều hành của thiết bị hoặc nền tảng đang được kiểm thử.
Công dụng của Drivers trong Appium
-
Giao tiếp với thiết bị hoặc giả lập:
- Drivers cho phép Appium gửi các lệnh (như nhấn nút, nhập văn bản, vuốt, v.v.) từ mã kiểm thử của bạn đến thiết bị.
- Chúng sử dụng các giao thức và API của nền tảng (ví dụ: Android Debug Bridge - ADB cho Android, XCTest API cho iOS) để thực hiện các hành động.
-
Hỗ trợ nhiều nền tảng khác nhau:
- Appium sử dụng drivers để hỗ trợ các nền tảng khác nhau như Android, iOS, Windows, hoặc macOS.
-
Cung cấp các tính năng đặc thù:
- Mỗi driver cung cấp các tính năng riêng phù hợp với hệ điều hành hoặc công nghệ được hỗ trợ (ví dụ: driver
UiAutomator2
cho Android hỗ trợ các phiên bản Android hiện đại, trong khiEspresso
được thiết kế để tối ưu hóa hiệu năng và độ ổn định).
- Mỗi driver cung cấp các tính năng riêng phù hợp với hệ điều hành hoặc công nghệ được hỗ trợ (ví dụ: driver
Các loại Drivers trong Appium
Dưới đây là một số drivers phổ biến:
1. Android:
- UiAutomator2 Driver:
- Dùng để tự động hóa ứng dụng Android trên các phiên bản Android hiện đại (Android 5.0 trở lên).
- Đây là driver được khuyên dùng cho Android.
- Espresso Driver:
- Tập trung vào kiểm thử nhanh và ổn định, được phát triển bởi Google.
- Tích hợp tốt với Android Instrumentation.
- Selendroid Driver:
- Dùng cho các phiên bản Android cũ hơn (Android 4.x).
2. iOS:
- XCUITest Driver:
- Dùng để tự động hóa ứng dụng trên các thiết bị iOS (iOS 9.3 trở lên).
- Tích hợp với Xcode và XCTest.
- UIAutomation Driver:
- Đã lỗi thời, dùng cho các phiên bản iOS trước iOS 9.3.
3. Windows:
- Windows Driver:
- Tự động hóa các ứng dụng Windows.
- Hỗ trợ Universal Windows Platform (UWP) và Win32 apps.
4. Web (Cross-platform):
- Selenium WebDriver:
- Dùng để tự động hóa trình duyệt web, có thể được sử dụng trong Appium để kiểm thử ứng dụng web trên thiết bị di động.
Quy trình hoạt động của Driver trong Appium
- Khi bạn chạy một Appium Session, Appium Server tải driver được chỉ định trong session capabilities.
- Driver giao tiếp với nền tảng thông qua API hoặc công cụ đặc thù của hệ điều hành (như ADB cho Android hoặc XCTest API cho iOS).
- Driver thực thi các hành động trên thiết bị hoặc giả lập.
- Kết quả được trả về cho Appium Server và gửi lại cho mã kiểm thử.
🔆Cài đặt Drivers qua Appium CLI
Appium hỗ trợ nhiều loại driver (Android, iOS, Windows, v.v.), bạn có thể cài đặt chúng bằng lệnh CLI của Appium.
Trang chủ tài liệu Appium Drivers:
https://appium.io/docs/en/2.15/ecosystem/drivers/
🚀Liệt kê các driver khả dụng:
appium driver list
🚀Cài đặt một driver cụ thể:
*** Cài đặt UiAutomator2 cho Android:
appium driver install uiautomator2
*** Cài đặt XCUITest cho iOS:
appium driver install xcuitest
*** Cài đặt Flutter Driver plugin cho Appium, cái này đặc biệt chuyên cho các app Flutter đa nền tảng.
appium driver install flutter
🔆Kiểm tra các driver đã cài đặt
Bạn có thể kiểm tra các driver đã được cài đặt bằng lệnh:
appium driver list --installed
🔆Cập nhật Drivers
Để cập nhật một driver cụ thể:
Ví dụ:
appium driver update uiautomator2
🔆Gỡ bỏ driver đã cài đặt
Bạn có thể gỡ bỏ các driver đã được cài đặt bằng lệnh:
appium driver uninstall <driver_name>
Ví dụ:
appium driver uninstall uiautomator2
🔆Khởi chạy Appium Server với Driver
Sau khi đã cài đặt driver, bạn có thể khởi chạy Appium Server và thử nghiệm bằng lệnh:
appium
✅Cài đặt Plugins cho Appium Server
Plugins trong Appium là các thành phần mở rộng giúp tăng cường hoặc tùy chỉnh các chức năng mặc định của Appium. Chúng cho phép người dùng giải quyết các yêu cầu phức tạp hoặc cụ thể trong quy trình kiểm thử mà Appium mặc định không hỗ trợ hoặc hỗ trợ hạn chế.
Mục đích sử dụng Plugins trong Appium
-
Mở rộng chức năng của Appium Server: Plugins cho phép bổ sung các tính năng mới mà không cần thay đổi mã nguồn chính của Appium.
-
Tối ưu hóa và tự động hóa quy trình kiểm thử: Một số plugins giúp giảm thời gian viết mã hoặc tự động hóa các thao tác lặp đi lặp lại.
-
Tích hợp các công nghệ và framework khác: Plugins có thể hỗ trợ tích hợp Appium với các công cụ kiểm thử hoặc framework bên ngoài.
-
Tuỳ chỉnh hành vi: Người dùng có thể tùy chỉnh cách Appium Server hoạt động theo yêu cầu của ứng dụng hoặc môi trường kiểm thử.
Các tính năng phổ biến của Plugins
-
So sánh hình ảnh:
- Ví dụ: Plugin
images
cho phép so sánh giao diện đồ họa hoặc kiểm thử giao diện người dùng thông qua ảnh chụp màn hình.
- Ví dụ: Plugin
-
Quản lý thời gian chờ (auto wait element):
- Ví dụ: Plugin
appium-wait-plugin
giúp tối ưu hóa và điều chỉnh thời gian chờ, đảm bảo kiểm thử không bị gián đoạn do các hành động chậm trễ.
- Ví dụ: Plugin
-
Ghi lại phiên kiểm thử:
- Plugin
appium-reporter
ghi lại chi tiết các phiên kiểm thử để phân tích lỗi dễ dàng hơn.
- Plugin
-
Tăng khả năng tương thích với các thiết bị hoặc trình giả lập:
- Ví dụ: Plugin
appium-device-farm
hỗ trợ việc quản lý thiết bị kiểm thử từ xa.
- Ví dụ: Plugin
- Tích hợp công cụ kiểm thử bên thứ ba: Một số plugins giúp tích hợp Appium với các công cụ như Selenium Grid, BrowserStack, hoặc Sauce Labs.
Và còn một số plugins của các cá nhân trong cộng đồng tự phát triển, đa dạng tính năng.
⭐️Trang chủ tài liệu Appium Plugins:
https://appium.io/docs/en/2.15/ecosystem/plugins/
🔆Liệt kê các plugin có sẵn
Để kiểm tra danh sách các plugin khả dụng, sử dụng lệnh sau:
appium plugin list
🔆Cài đặt plugin
Sau khi xác định plugin muốn cài đặt, sử dụng lệnh sau để cài đặt:
appium plugin install <plugin-name>
Ví dụ: để cài đặt plugin "appium-wait-plugin", sử dụng lệnh:
appium plugin install --source=npm appium-wait-plugin
🚀Plugin chính thức
Các plugin này hiện đang được nhóm Appium bảo trì:
Tên plugin
|
Từ khoá cài đặt
|
Chức năng |
---|---|---|
Execute Driver | execute-driver |
Chạy toàn bộ các lệnh trong một lệnh gọi duy nhất đến máy chủ Appium |
Images | images |
Tính năng so sánh và khớp hình ảnh |
Relaxed Caps | relaxed-caps |
Nới lỏng yêu cầu của Appium về tiền tố nhà cung cấp trên các khả năng |
Universal XML | universal-xml |
Thay vì định dạng XML chuẩn cho iOS và Android, hãy sử dụng định nghĩa XML giống nhau trên cả hai nền tảng |
🚀Các Plugin khác
Các plugin này không được nhóm Appium bảo trì và có thể cung cấp chức năng bổ sung.
⭐️Trang chủ GitHub các Plugins khác:
https://github.com/AppiumTestDistribution
Tên plugin
|
Từ khóa cài đặt
|
Chức năng |
Được hỗ trợ bởi
|
---|---|---|---|
AltUnity | --source=npm appium-altunity-plugin |
Mục tiêu là các trò chơi và ứng dụng Unity để tự động hóa với bối cảnh mới, thông qua khuôn khổ AltUnityTester | HeadSpin |
Device Farm | --source=npm appium-device-farm |
Quản lý và tạo phiên trình điều khiển trên các thiết bị Android được kết nối và trình mô phỏng iOS | @AppiumTestDistribution |
Gestures | --source=npm appium-gestures-plugin |
Thực hiện các cử chỉ cơ bản bằng W3C Actions (Swipe, Tab,...) | @AppiumTestDistribution |
Interceptor | --source=npm appium-interceptor |
Chặn và mô phỏng các yêu cầu và phản hồi của API | @AppiumTestDistribution |
OCR | --source=npm appium-ocr-plugin |
Tìm các thành phần thông qua văn bản OCR | @jlipps |
Reporter | --source=npm appium-reporter-plugin |
Tạo báo cáo HTML hợp nhất độc lập với ảnh chụp màn hình | @AppiumTestDistribution |
Wait | --source=npm appium-wait-plugin |
Quản lý thời gian chờ của phần tử mobile | @AppiumTestDistribution |
🔆Cập nhật plugin
appium plugin update <plugin-name>
Ví dụ:
appium plugin update <plugin-name>
🔆Gỡ cài đặt plugin
appium plugin uninstall <plugin-name>
✅Sử dụng Plugins trong Appium Server
Khởi động Appium Server cùng với plugin:
appium --use-plugins=<plugin1>,<plugin2>
Chú ý: các tên plugin viết liền nhau phân cách bởi dấu phẩy. Vì nếu có khoảng trắng thì nó lại hiểu khác.
Ví dụ:
appium --use-plugins=element-wait,gestures
Nếu bạn chỉ chạy lệnh appium
thôi thì nó sẽ không kích hoạt các plugin đã cài đặt.
✅Các Command-Line Arguments trong Appium Server
Các bạn theo dõi trong danh sách chính thức đầy đủ của trang chủ Appium bên dưới, lựa chọn Appium version phù hợp.
https://appium.io/docs/en/2.15/cli/args/
Ví dụ: chạy Appium Server với HOST và POST chỉ định cụ thể:
appium -a 127.0.0.2 -p 7000