Thiết lập môi trường tự động hóa ứng dụng với Python và Appium

Nguyên lý hoạt động: Script Python sẽ được gửi đến Appium, sau đó Appium chuyển đổi script này thành lệnh ADB để điều khiển thiết bị di động. Thiết bị nhận lệnh ADB và thực hiện thao tác tương ứng. Như vậy, Appium đóng vai trò như một cầu nối, dịch các lệnh từ Python sang định dạng mà thiết bị hiểu được, giúp kiểm soát điện thoại một cách tự động.

Môi trường yêu cầu: Python + Appium + Máy ảo Android. Dưới đây là hướng dẫn chi tiết từng bước.

1. Cài đặt Python và PyCharm

Việc cài đặt Python và PyCharm khá đơn giản, không cần trình bày chi tiết ở đây.

2. Cấu hình môi trường Java JDK

Vui lòng tham khảo bài viết hướng dẫn tại: https://www.cnblogs.com/FBGG/p/15103119.html

Sau khi cài xong, kiểm tra bằng lệnh trong Command Prompt:

java --version
javac --version

Nếu hiển thị phiên bản thì đã thành công.

3. Cài đặt Android SDK

Link tải: https://www.androiddevtools.cn/#google_vignette

Sau khi tải về, nhấp đúp để cài đặt. Lưu ý đường dẫn cài đặt không được chứa ký tự tiếng Việt, và hãy ghi nhớ vị trí này vì sẽ dùng sau.

Mở thư mục cài đặt, chạy file SDK Manager.exe với quyền quản trị viên.

Lưu ý: Nếu chỉ thấy khoảng 2 mục trong danh sách, cần thực hiện hai bước sau để mở rộng danh sách plugin.

  • Bước 1: Vào Tools > Options..., đóng lại và mở lại. Nếu đã xuất hiện nhiều mục, bỏ qua bước 2.
  • Bước 2: Tìm thư mục .android tại C:\Users\Tên_người_dùng\.android. Nếu không tìm thấy, dùng công cụ tìm kiếm toàn bộ ổ đĩa. Nếu thiếu file repositories.cfg, tạo mới.

Chèn nội dung sau vào file repositories.cfg:

### User Sources for Android SDK Manager count=1 ###
User Source 0 displayName=Tsinghua Mirror enabled=true
sdkmanRepoUrl=https\\://mirrors.tuna.tsinghua.edu.cn/android/repository/addons_list-3.xml
sdkmanAddonUrl=https\\://mirrors.tuna.tsinghua.edu.cn/android/repository/addon.xml
sdkmanSdkUrl=https\\://mirrors.tuna.tsinghua.edu.cn/android/repository/repository-13.xml
sdkmanNdkUrl=https\\://mirrors.tuna.tsinghua.edu.cn/android/repository/sys-img/android/sys-img.xml
sdkmanSdkAddonUrl=https\\://mirrors.tuna.tsinghua.edu.cn/android/repository/sys-img/addon/sys-img.xml
sdkmanSourceUrl=https\\://mirrors.tuna.tsinghua.edu.cn/android/repository/sources-33.xml
sdkmanDocsUrl=https\\://mirrors.tuna.tsinghua.edu.cn/android/repository/docs-33.xml

Sau khi lưu, mở lại SDK Manager.exe — bạn sẽ thấy danh sách plugin đầy đủ hơn.

4. Cài đặt 6 gói công cụ trong Android SDK

Trước tiên, bỏ chọn tất cả 17 mục mặc định. Sau đó chọn 6 gói sau:

  • Android SDK Platform-Tools
  • Android SDK Tools
  • Android SDK Build-Tools
  • Android Emulator
  • Android SDK Platform
  • Android SDK Command-line Tools

Nhấn Install và chờ hoàn tất. Một thông báo "No updates available" có thể xuất hiện — không cần lo lắng.

Thêm biến môi trường hệ thống:

  • Tên biến: ANDROID_HOME
  • Giá trị: Đường dẫn cài đặt Android SDK (không chứa ký tự tiếng Việt)

Thêm vào biến PATH hai đường dẫn:

%ANDROID_HOME%\tools
%ANDROID_HOME%\platform-tools

Kiểm tra bằng lệnh trong CMD:

adb version

Nếu hiển thị phiên bản ADB → cài đặt thành công.

5. Cài đặt Appium

Appium có hai phiên bản: có giao diện (Appium Desktop) và không giao diện (CLI). Phiên bản có giao diện đã lỗi thời nhưng vẫn hoạt động. Dưới đây là hướng dẫn cả hai.

Phiên bản có giao diện (Appium Desktop)

Truy cập: https://github.com/appium/appium-desktop/releases, tải file .exe phù hợp.

Sau khi cài xong, mở ứng dụng. Chọn View để chuyển đổi ngôn ngữ sang tiếng Trung nếu cần.

Vào Edit Configuration, nếu thấy các trường ANDROID_HOMEJAVA_HOME hiển thị giá trị mặc định → cấu hình thành công. Nếu không, nhập thủ công theo đúng đường dẫn đã thiết lập.

Click Start Server để khởi động Appium.

Phiên bản CLI (Không giao diện)

Appium được xây dựng trên Node.js, nên bắt buộc phải cài Node.js (và npm/yarn), phiên bản tối thiểu là Node.js 16.x trở lên.

Trong CMD, chạy lệnh:

node -v
npm -v

Nếu báo lỗi "node not found" → chưa cài.

Tải Node.js tại: https://nodejs.org/zh-cn/download

Cài đặt theo hướng dẫn, sau đó kiểm tra lại.

Chạy lệnh để cài Appium CLI:

npm install -g appium

Để kiểm tra, chạy:

appium -v

Nếu hiển thị phiên bản → thành công.

Khởi động driver UIAutomator2:

appium driver install uiautomator2

Kiểm tra driver đã cài chưa:

appium driver list

6. Cài đặt máy ảo Android (gợi ý: Yeshen)

Ưu tiên sử dụng máy ảo để minh họa. Quy trình với thiết bị thật gần giống, điểm khác biệt sẽ được ghi rõ.

Download tại: https://www.yeshen.com/

Gợi ý dùng phiên bản Android 9 vì một số plugin không tương thích với Android 7.

Quan trọng: Sau khi cài, cần thay thế file adb.exe trong máy ảo để đảm bảo phiên bản ADB khớp với phiên bản máy ảo.

  1. Tìm đến thư mục platform-tools trong thư mục Android SDK.
  2. Chép file adb.exe từ đây.
  3. Thay thế file adb.exe trong thư mục cài đặt của Yeshen (thường nằm trong Yeshen\bin).

Sau khi thay thế, khởi động máy ảo. Điều chỉnh độ phân giải vừa phải để tránh giật lag.

Bật chế độ USB Debugging.

Nếu dùng thiết bị thật, cần bật:

  • Chế độ nhà phát triển
  • Luôn sáng màn hình
  • Giải mã OEM
  • Chế độ kết nối USB (File Transfer)
  • Đối với OPPO: Tắt tính năng giám sát quyền truy cập

7. Kiểm tra môi trường bằng code

Chuẩn bị xong, tiến hành kiểm tra bằng đoạn code sau:

  1. Bắt đầu Appium: Mở CMD, chạy lệnh:
    appium
    (Dù dùng phiên bản GUI hay CLI, chỉ cần chạy một cái là đủ.)
  2. Kết nối máy ảo: Mở cửa sổ CMD riêng, chạy:
    adb connect 127.0.0.1:62001
    Kiểm tra kết nối:
    adb devices
    Với thiết bị thật, nếu không thấy ID, kiểm tra lại kết nối USB và chọn chế độ "Transfer files".
  3. Cài thư viện Appium cho Python: Trong PyCharm, chạy:
    pip install appium-python-client
  4. Viết script Python: Thay thế các giá trị device_name, platform_name, app_package, app_activity bằng thông tin thực tế.

import time
from appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.client_config import AppiumClientConfig

# 1. Khởi tạo đối tượng tùy chọn
options = UiAutomator2Options()
options.device_name = '127.0.0.1:62001'  # Địa chỉ máy ảo hoặc thiết bị thật
options.platform_name = 'Android'
options.app_package = 'com.tencent.mobileqq'  # Package name ứng dụng
options.app_activity = 'com.tencent.mobileqq.activity.SplashActivity'  # Activity chính

# 2. Cấu hình kết nối
appium_url = 'http://127.0.0.1:4723'
client_config = AppiumClientConfig(remote_server_addr=appium_url)

# 3. Tạo session kết nối
driver = webdriver.Remote(
    options=options,
    client_config=client_config
)

# Chờ 10 giây
time.sleep(10)

# Đóng kết nối
driver.quit()

Cách lấy thông tin cần thiết:

  • Device Name: Dùng lệnh adb devices để xác định địa chỉ thiết bị.
  • Platform Name: Chỉ cần ghi Android.
  • Package Name: Dùng lệnh:
    aapt dump badging "đường_dẫn_tệp_apk" | findstr package
    Ví dụ: com.android.settings
  • Main Activity: Dùng lệnh:
    aapt dump badging "đường_dẫn_tệp_apk" | findstr activity
    Ví dụ: .Settings$WifiSettingsActivity

Chạy script bằng cách nhấn chuột phải → Run. Nếu đang dùng thiết bị thật, lần đầu tiên sẽ tự động cài một vài gói phụ trợ — cần chấp thuận thủ công. Với ví dụ là ứng dụng QQ, nếu màn hình đăng nhập QQ hiện ra → môi trường đã được thiết lập thành công.

Thẻ: python appium Android SDK UIAutomator2 ADB

Đăng vào ngày 21 tháng 9 lúc 12:24