Chuẩn bị môi trường kiểm thử
Để thiết lập môi trường kiểm thử cho ứng dụng Android, cần chuẩn bị các thành phần sau:
- Android SDK: Phiên bản 26.1.1
- Trình giả lập: LDPlayer phiên bản 4.0.70
- Appium Server: Chạy tại
http://localhost:4723/wd/hub
Thông tin phiên bản SDK có thể kiểm tra trong tệp source.properties thuộc thư mục tools của Android SDK.
Cài đặt ứng dụng bằng mã tự động
Ngoài cách kéo thả tệp APK vào trình giả lập hoặc sử dụng lệnh adb install, có thể viết script Python để cài đặt tự động:
import time
from appium import webdriver
config = {
'platformName': 'Android',
'platformVersion': '7.1.2',
'deviceName': 'emulator:5554'
}
client = webdriver.Remote("http://localhost:4723/wd/hub", config)
time.sleep(2)
package_id = "com.bjcsxq.chat.carfriend"
apk_path = r"E:\APK\学车不.apk"
if client.is_app_installed(package_id):
client.remove_app(package_id)
else:
client.install_app(apk_path)
time.sleep(3)
client.quit()
Đoạn mã trên kiểm tra xem ứng dụng đã được cài chưa thông qua is_app_installed(). Nếu đã tồn tại thì gỡ bỏ bằng remove_app(), ngược lại thì tiến hành cài đặt từ đường dẫn APK chỉ định.
Lấy thông tin gói và hoạt động chính
Trước khi viết kịch bản kiểm thử, cần xác định appPackage và appActivity của ứng dụng. Sử dụng lệnh ADB sau khi mở ứng dụng trên thiết bị:
adb shell dumpsys window windows | findstr mFocusedApp
Kịch bản kiểm thử chức năng
Dưới đây là ví dụ kiểm thử luồng người dùng cơ bản: mở ứng dụng, thực hiện tìm kiếm, quay lại, sau đó chuyển đổi giữa các tab chính.
import time
from appium import webdriver
capabilities = {
'platformName': 'Android',
'platformVersion': '7.1.2',
'deviceName': 'emulator:5554',
'appPackage': 'com.bjcsxq.chat.carfriend',
'appActivity': '.module_main.activity.MainActivity t7'
}
driver = webdriver.Remote("http://localhost:4723/wd/hub", capabilities)
time.sleep(3)
# Thao tác tìm kiếm
search_btn = driver.find_element_by_class_name("android.widget.TextView")
search_btn.click()
time.sleep(2)
# Quay lại từ màn hình tìm kiếm
back_icon = driver.find_element_by_xpath(
"//android.widget.ImageView[@resource-id='com.bjcsxq.chat.carfriend:id/img_search_back']"
)
back_icon.click()
time.sleep(2)
# Chuyển sang tab "Học lái xe"
study_tab = driver.find_element_by_xpath(
"//android.widget.RelativeLayout[@resource-id='com.bjcsxq.chat.carfriend:id/home_layout']"
)
study_tab.click()
time.sleep(2)
# Chuyển sang tab "Đăng ký"
register_tab = driver.find_element_by_xpath(
"//android.widget.RelativeLayout[@resource-id='com.bjcsxq.chat.carfriend:id/baoming_layout']"
)
register_tab.click()
time.sleep(2)
driver.quit()
Lưu ý quan trọng khi thực hiện
Trước khi chạy kịch bản tự động, cần thực hiện một số thao tác thủ công:
- Cấp quyền ứng dụng: Vị trí, bộ nhớ và các quyền khác phải được bật thủ công trong cài đặt hệ thống. Nếu không, script sẽ bị gián đoạn bởi hộp thoại yêu cầu quyền.
- Cập nhật phiên bản: Lần đầu khởi động, ứng dụng có thể hiển thị thông báo cập nhật. Cần xử lý thủ công trước khi chạy tự động.
- Chế độ hiển thị: Đảm bảo trình giả lập đặt ở chế độ dọc (portrait) để định vị phần tử chính xác.