1 Thiết lập môi trường cho kiểm thử trên mobile
1.1 Tổng quan
Khác với kiểm thử ứng dụng web, nếu người dùng thực hiện kiểm thử ứng dụng mobile
thì máy tính, thiết bị, agent sẽ có những yêu cầu cài đặt riêng:
a) Thiết bị kiểm thử có hệ điều hành Android
• Kết nối với thiết bị thông qua dây cáp
• Máy tính kết nối có thể là Windows hoặc macOS
• Thiết bị đang bật chế độ developer mode
• Cần phải tích chọn nền tảng Android trên Agent

b) Thiết bị kiểm thử có hệ điều hành iOS
• Kết nối với thiết bị thông qua dây cáp
• Máy tính kết nối bắt buộc là macOS
• Thiết bị đang bật chế độ developer mode
• Cần phải tích chọn nền tảng iOS trên Agent

1.2 Cài đặt kiểm thử mobile trên máy tính có hệ điều hành là Windows
Với máy tính có hệ điều hành Windows thì chỉ có thể cài đặt để thực hiện automation trên Android
Các thiết bị Android thực phải được bật USB debugging
1.2.1 Cách 1: Thiết lập bằng Folder có sẵn các phần mềm dược cung cấp bởi Lạc Long Quân
Note: Giải nén folder portable-node đính kèm3
1.2.1.1 Thiết lập trên Agent

Bước 1: Click View -> Config

Bước 2: Click sang tab Advance config, và cấu hình các thông tin sau:
• Trường Appium driver executable: (Đường dẫn thư mục giải nén)/node.exe
Vd: D:/portable-node/node.exe
• Trường Appium JSĐường dẫn thư mục giải nén)/node_modules/appium/build/lib/main.js
VD: D:/portable-node/node_modules/appium/build/lib/main.js

1.2.1.2 Thiết lập môi trường
1.2.1.2.1 ANDROID_HOME
Sau khi đã cài đặt thành công Android Studio và SDK, thực hiện thiết lập mỗi trường ANDROID_HOME:
Bước 1: Gõ “environment” lên thanh tìm kiếm của máy tính
Bước 2: Click vào Edit the system environment variables


Bước 3: Click Environment Variable Bước 4: Click nút New… ở khối User variable for admin
Bước 5: Nhập tên cho biến môi trường là: ANDROID_HOME

Bước 6: Nhập đường dẫn hoặc chọn thư mục chứa thư mục Android trong đường dẫn giải nén
VD: D:/portable-node/Android

Bước 7: Sau đó click OK

1.2.1.2.2 JAVA_HOME
Thực hiện tương tự giống với ANDROID_HOME.
Tuy nhiên, thông tin nhập vào các trường như sau:
• Variable name: JAVA_HOME
• Variable value: đường đẫn của JDK 17 (có thể dùng trực tiếp thư mục JDK trong agent).
VD: C:\Users\Admin\Desktop\test-framework_dev\jdk6

Dùng thẳng jdk của agent
1.2.1.2.3 APPIUM_HOME
Thực hiện tương tự giống với ANDROID_HOME
Tuy nhiên, thông tin nhập vào các trường như sau
• Variable name: APPIUM_HOME
• Variable value: Nhập đường dẫn hoặc chọn thư mục .appium trong thư mục dẫn giải nén. VD: D:/portable-node/.appium
1.2.2 Cách 2: Tải và cài đặt phần mềm thủ công
1.2.2.1 Hướng dẫn cài đặt SDK
Có 2 cách để cài đặt SDK:
• Cách 1: Cài Android studio
• Cách 2 (NÊN DÙNG): Cài SDK Platform tools
Nếu máy người dùng đã cài Android studio hoặc SDK Platform tools rồi thì bỏ qua bước này
2 đầu mục phía dưới là hướng dẫn cài SDK, người dùng cài SDK theo cách nào hãy đọc hướng dẫn của cách đó
1.2.2.1.1 Cách 1.Hướng dẫn cài đặt Android Studio
Tải và cài đặt Android Studio: Android Studio Download

Link video hướng dẫn cài đặt Android Studio:

Lưu ý:
+ Thời gian cài đặt SDK sẽ khá lâu, cần có một đường mạng ổn định và khỏe
+ Số lượng licenses có thể không giống nhau, có bao nhiêu licenses thì phải tích và accept hết

+ Sau khi cài xong SDK để chắc chắn rằng đã cài SDK thành công có thể kiểm tra như sau:
Bước 1: Mở Android Studio
Bước 2: Click More Actions > SDK Manager

Bước 3: Kiểm tra trên tab SDK Tools đã tích package Android SDK Platform-Tools chưa

Nếu chưa cài đặt hoặc chưa cài được SDK click edit để thực hiện cài đặt:

1.2.2.1.2 Cách 2.Hướng dẫn cài đặt SDK Platform tools
Link tải SDK Platform tools: SDK Platform tools
Bước 1:
Click Download SDK Platform-Tools for Windows

Bước 2:
Trên web hiển thị popup Download, kéo xuống tích checkbox đồng ý điều khoản điều kiện và click nút Download SDK Platform-Tools for Windows

Bước 1:
Giải nén file vừa tải về
Bước 2:
Đổi tên thư mục cha chứa thư mục platform-tools thành Android. Nếu platform-tools chưa nằm trong thư mục nào hãy tạo thư mục cha cho nó và đặt tên Android
1.2.2.2 Hướng dẫn cài đặt Node.js
Tải và cài đặt Node.js: https://nodejs.org/en/download/currentVideo cài đặt Node.js:

Bước 1: Sau khi tải node.js về máy, double click vào file vừa tải về

Bước 2: Click nút Next

Bước 3: Tích accept và click nút Next

Bước 4: Chọn đường dẫn cài đặt và click nút Next, nên để đường dẫn mặc định

Bước 5: Tiếp tục click nút Next

Bước 6: Click Next

Bước 7: Click Install

Đợi cài đặt xong Nodejs và hiển thị giao diện bên dưới là đã cài đặt thành công

1.2.2.3 Hướng dẫn cài đặt JDK 17
Khi cài Agent là đã cài đặt jdk 17, mà không cần tải và cài jdk 17 nữa

1.2.2.4 Cài đặt môi trường ANDROID_HOME và JAVA_HOME
1.2.2.4.1 ANDROID_HOME
Lưu ý: Chỉ xem video nếu người dùng cài android studio - video hướng dẫn cài đặt môi trường ANDROID_HOME:
Bước 1: Nhập “Environment” trên thanh tìm kiếm của máy tính
Click vào Edit the system environment variables

Bước 2: Tại tab Advanced của màn hình System Properties click chức năng “Environment Variables”

Bước 3: Tại block thông tin “User variables for admin” click button “New” để tạo thêm biến ANDROID_HOME

Bước 4: Thiết lập thông số ANDROID_HOME
Variable name: ANDROID_HOME
Variable value: là đường dẫn tới thư mục \platform-tools sau khi cài đặt thành công
Android Studio hoặc tải xong SDK Platform tools.
• Nếu người dùng cài SDK Platform tools thì tìm đến thư mục vừa giải nén.
VD: E:\Tool\Android

• Nếu người dùng cài Android Studio thì tìm đến thư mục Sdk trên máy. VD:
C:\Users\Admin\AppData\Local\Android\Sdk

Thiết lập thành công click OK

Lưu ý: Nếu sử dụng Sdk
+ Tìm thư mục chứa file SDK theo đường dẫn trên ảnh
+ Trong trường hợp không tìm thấy thư mục AppData, thì có thể thư mục này đang bị ẩn, bật hidden item lên

1.2.2.4.2 JAVA_HOME
Video hướng dẫn cài đặt môi trường JAVA_HOME:
Value của JAVA_HOME sẽ là đường dẫn tới thư mục jdk 17 sau khi cài đặt thành công JDK.
Thiết lập thành công click OK

Lưu ý: Trong trường hợp sử dụng jdk 17 của Agent thì trỏ đến thư mục jdk của agent21

1.2.2.5 Cài đặt Appium
Sau khi đã cài đặt xong Node.js, chạy các lệnh cmd sau để cài appium:
Bước 1: Chạy cmd bằng cách: nhấn tổ hợp phím Window + R hoặc tìm kiếm cmd trên thanh tìm kiếm của máy tính

Bước 2: Chạy lần lượt các lệnh sau trên cmd
o npm i --location=global appium
o appium driver install uiautomator2
o appium driver list
Sau khi chạy xong lệnh cuối cùng thấy uiautomator2 đã install là thành công.

1.2.2.6 Cài đặt trên Agent
Sau khi đã cài Appium xong:
1.2.2.6.1 Kết nối thiết bị Android
Bước 1: Kết nối thiết bị Android với máy tính thông qua dây cáp

Bước 2: Bật chế độ Developer (USB debugging) của thiết bị
1.2.2.6.2 Mở chế độ Developer của thiết bị
Bước 1: Điều hướng đến Cài đặt > Về điện thoại (tên tiếng anh là About phone).

Bước 2: Cuộn xuống đến Thông tin về phần mềm (tên tiếng anh là Software information). Sau đó chọn số hiệu bản tạo (tên tiếng anh là Build number).
Bước 3: Nhấn vào mục “Số hiệu bản tạo” 7 lần. Sau vài lần chạm đầu tiên, sẽ thấy các bước đếm xuống cho đến khi mở tuỳ chọn nhà phát triển. Bạn cũng có thể phải nhập mã PIN để xác minh. Trên hầu hết các điện thoại thông minh Android hiện đại, đều có thể tìm kiếm “Số phiên bản/Số hiệu bản tạo” (Build number) trong Cài đặt
Bước 4: Khi tùy chọn được kích hoạ, sẽ thấy thông báo cho biết “Bạn hiện là một nhà phát triển.”
Bước 5: Quay lại màn hình Cài đặt và vào mục Hệ thống (System). Bạn sẽ thấy “Tuỳ chọn nhà phát triển” như một mục.
Bước 6: Chạm vào nó và bật công tắc nếu nó chưa bật. Sau đó bạn có thể tiến hành điều chỉnh điện thoại của mình.
Bước 7: Kích hoạt Gỡ lỗi qua USB (USB Debugging). USB Debugging cho phép kết nối thiết bị với máy tính và sử dụng các công cụ phát triển để gỡ lỗi ứng dụng và thực hiện các tác vụ phát triển khác.
Ngoài ra, tùy từng thiết bị mà người dùng sẽ cần phải bật thêm các tùy chọn khác để có thể thực hiện automation trên thiết bị android. Tham khảo thêm tùy chọn cần có của một số thiết bị:
1.2.2.6.3 Start agent
Bước 1: Nếu đang start agent và agent của chưa tích thực hiện automation cho Android hãy stop lại và tích chọn Android danh sách Platform của Agent.

Bước 2: Start lại agent và đợi thông báo thiết bị đã started: Android (UDID của thiết bị) started

1.2.3 Một số lưu ý nếu start thiết bị không thành công
1.2.3.1 Kiểm tra thư mục chứa file node.js
Mở cmd và chạy lệnh: where node
+ Nếu kết quả trả về là: C:\Program Files\nodejs\node.exe thì đây là đường dẫn mặc
định đã được cấu hình trên agent
+ Nếu kết quả trả về khác thì người dùng cần phải cấu hình đường dẫn của node.js trên
Agent. Cách cấu hình như sau:
Bước 1: Stop Agent
Bước 2: Click tab Advance config

Bước 3: Nhập kết quả trả về của lệnh cmd vào trường Appium driver executable

Bước 4: Start lại Agent
1.2.3.2 Kiểm tra thư mục chứa file cài đặt appium
Mở cmd và chạy lệnh: where appium
+ Nếu kết quả trả về là: C:\Users\Admin\AppData\Roaming\npm\appium
C:\Users\Admin\AppData\Roaming\npm\appium.cmd thì đây là đường dẫn mặc định đã được cấu hình trên agent

+ Nếu kết quả trả về khác thì người dùng cần phải cấu hình đường dẫn của appium trên Agent. Cách cấu hình như sau:
Bước 1: Stop Agent
Bước 2: Click tab Advance config

Bước 3: Nhập kết quả trả về của lệnh cmd vào trường Appium JS

Bước 4: Start lại Agent
1.2.3.3 Slow agent
Có thẻ do máy người dùng cấu hình yếu, thời gian trả về kết quả lâu, dẫn đến timeout. Dùng Slow agent sẽ tang thời gian đợi kết quả về
Bước 1: Stop Agent
Bước 2: Trên tab Advance config, click checkbox Slow Agent

Bước 3: Start lại Agent
1.3 Cài đặt kiểm thử mobile trên macOS
• Với macOS thì có thể cài đặt để thực hiện automation trên cả thiết bị iOS và Android
• Các thiết bị iOS/iPadOS cần bật chế độ developer mode.
Các thiết bị được kết nối phải đáng tin cậy, được thêm vào developer profile và được định cấu hình đúng cách trong WebDriverAgent (Cấu hình trên thiết bị và Xcode https://appium.github.io/appium-xcuitest-driver/5.7/real-device-config/)
1.3.1 Cài đặt Brew
Cài đặt Brew trước khi cài Node.js, và JDK
Chạy các lệnh trên terminal:
Bước 1: Chạy lệnh:
/bin/bash -c "$(curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Sau đó, chạy lần lượt 2 lệnh sau:
Bước 2: (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/[user
computer]/.zprofile
Bước 3: eval "$(/opt/homebrew/bin/brew shellenv)"
1.3.2 Cài đặt cocoapods
Chạy lệnh trên terminal: brew install cocoapods
1.3.3 Cài đặt JDK
Bắt buộc phải cài Brew trước khi cài JDK
Chạy lần lượt các lệnh sau trên terminal:
1. brew install openjdk@17
2. brew install ideviceinstaller
1.3.4 Cài đặt ideviceinstaller
Chạy lệnh trên terminal: brew install ideviceinstaller
1.3.5 Cài đặt Node.js
Chạy lệnh trên terminal: brew install node
1.3.6 Cài đặt Appium
Sau khi cài đặt xong node.js, lần lượt chạy các lệnh sau trên terminal:
1. npm i --location=global appium
2. appium driver install uiautomator2 (driver để thực hiện automation trên Android)
3. appium driver install xcuitest (driver thực hiện automation trên iOS)
4. appium driver list
Sau khi chạy xong lệnh cuối cùng thấy uiautomator2 và xcuitest đã install là thành công.

1.3.7 Cài đặt Android Studio
Dùng trong trường hợp cài chạy trên Android

Link tải Android Studio cho mac: Android Studio31
Cách cài đặt Android Studio:
Lưu ý: Với video hướng dẫn cài đặt người dùng chỉ cần xem 5p đầu tiên để cài đặt được android studio thành công
1.3.8 Set môi trường JAVA_HOME
Sau khi cài đặt xong jdk, mở terminal và lần lượt chạy các lệnh sau:
1. sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Library/Java/JavaVirtualMachines/openjdk-17.jdk
2. echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >>~/.zshrc
3. export CPPFLAGS="-I/opt/homebrew/opt/openjdk@17/include"
1.3.9 Set môi trường ANDROID_HOME
Sau khi cài đặt xong ANDROID_STUDIO, mở terminal và lần lượt chạy các lệnh sau:
1. nano ~/.zshrc
2. export ANDROID_HOME=/Users/[username_computer]/Library/Android/sdk
1.3.10 Hướng dẫn cài đặt Xcode
Lưu ý: Nếu thực hiện automation trên iOS mới cần cài Xcode
Xem hướng dẫn cách cài Xcode tại đây:
https://developer.apple.com/documentation/safari-developer-tools/installing-xcodeand-simulators
1.3.11 Cách đăng nhập tài khoản Developer cho xcode
Lưu ý: Nếu người dùng không được dùng tài khoản developer thì có thể sử dụng Certvà Provisioning trên Xcode.
Thực hiện các thao tác sau trên Xcode:
Bước 1: Click Setting

Bước 2: Click Account, thêm account (là tài khoản developer)

Bước 3: Click icon +

Bước 4: Click chọn Apple Account > Continue

Bước 5: Thực hiện nhập email tài khoản apple, sau đó click nút Next

Bước 6: Thực hiện nhập password của mail, sau đó click nút Next

Sau khi thêm xong tài khoản apple sẽ hiển thị ở danh sách account

Bước 7: Quay lại project WebDriverAgent
Sau đó click tab Signing…> WebDriverAgentRunner, tại trường dữ liệu “Team” chọn account (tài khoản developer)

1.3.12 Đăng ký thiết bị trên Xcode
Nếu người dùng cắm 1 thiết bị mới hoàn toàn, cần phải đăng ký thiết bị trên Xcode
Bước 1: Nếu lần đầu mở Xcode, mở terminal và chạy lệnh: appium driver run xcuitest open-wda để tạo project WebDriverAgent. Nếu đã có project WebDriverAgent chuyển bước 2.
Bước 2: Mở Xcode, chọn WebDriverAgent

Bước 3: Chọn thiết bị muốn đăng ký

Bước 4: Trên tab Signing & Capabilities, sẽ yêu cầu người dùng Register Device.
Click nút Register Device

1.3.13 Cách cài đặt WebDriver cho thiết bị IOS
Mở Terminal, chạy lần lượt các lệnh sau:
Bước 1: cd /Users/[username_computer]/.appium/node_modules/appium- xcuitest-driver/node_modules/appium-webdriveragent
[username_computer]: có thể lấy ở trường Full Path trên Xcode. VD: như trên ảnh thì username_computer là linhbach

Bước 2: mkdir -p Resources/WebDriverAgent.bundle (chỉ chạy nếu đăng ký thiết bị đầu tiên)
Bước 3: xcodebuild clean build-for-testing -project WebDriverAgent.xcodeproj - derivedDataPath appium_wda_ios -scheme WebDriverAgentRunner - destination generic/platform=iOS CODE_SIGNING_ALLOWED=YES
Đợi chạy xong lệnh trên Terminal hiển thị dòng “TEST BUILD SUCCEDED” là thành công.

Khi cắm một thiết bị IOS mới, người dùng đều phải cài đặt WebDriver cho thiết bị,
nhưng với những lần sau thì chỉ cần vào xcode và chạy các bước 1 và 3.
1.3.14 Mở chế độ Developer của thiết bị iOS
Bước 1: Trong ứng dụng Cài đặt trên iPhone, chọn Quyền riêng tư & Bảo mật.

Bước 2: Cuộn xuống Chế độ nhà phát triển. Bật chế độ này.

Bước 3: Sau đó, chọn Khởi động lại từ bảng hành động để khởi động lại iPhone của bạn.

Bước 4: Một cửa sổ bật lên sẽ xuất hiện khi điện thoại khởi động lại. Để bật chế độ nhà
phát triển, hãy nhấp vào "Bật" lần nữa rồi nhập mật khẩu thiết bị.
Bước 5: Sau đó vào lại Cài đặt, lúc này trong phần cài đặt sẽ hiển thị thêm Nhà phát triển. Click vào Nhà phát triển và bật “Bật tự động hóa UI”

Bước 6: Chờ app được build thành công trên thiết bị >> Nhập passcode cho phép Automation trên thiết bị.
Bước 7: Màn hình hiển thị Automation Running >> Thành công.
1.3.15 Cài đặt trên Agent
Sau khi đã cài hoàn thành setup các thông số bên trên, tiếp tục thực hiện các thao tác sau:
1.3.15.1 Kết nối thiết bị iOS
Bước 1: Kết nối thiết bị iOS với máy macOS thông qua dây cáp

Bước 2: Bật chế độ Developer (USB debugging) của thiết bị
1.3.15.2 Start agent
Bước 1: Nếu đang start agent và agent của chưa tích thực hiện automation cho iOS hãy stop lại và tích chọn iOS danh sách Platform của Agent.

Bước 2: Start lại agent,
Bước 3: Nhập thông tin password trên thiết bị và đợi thông báo thiết bị đã started trên agent: iOS (UDID của thiết bị) started
=>Kết nối thiết bị với agent thành công
1.3.15.3. Một số lưu ý nếu start thiết bị không thành công
1.3.15.3.1 Kiểm tra thư mục chứa file node.js
Mở cmd và chạy lệnh: where node
+ Nếu kết quả trả về là: C:\Program Files\nodejs\node.exe thì đây là đường dẫn mặc định đã được cấu hình trên agent
+ Nếu kết quả trả về khác thì người dùng cần phải cấu hình đường dẫn của node.js trên
Agent. Cách cấu hình như sau:
Bước 1: Stop Agent
Bước 2: Click tab Advance config

Bước 3: Nhập kết quả trả về của lệnh cmd vào trường Appium driver executable

Bước 4: Start lại Agent
Kiểm tra thư mục chứa file cài đặt appium
Mở cmd và chạy lệnh: where appium
+ Nếu kết quả trả về là: C:\Users\Admin\AppData\Roaming\npm\appium
C:\Users\Admin\AppData\Roaming\npm\appium.cmd thì đây là đường dẫn mặc định đã được cấu hình trên agent

+ Nếu kết quả trả về khác thì người dùng cần phải cấu hình đường dẫn của appium trên
Agent. Cách cấu hình như sau:
Bước 1: Stop Agent
Bước 2: Click tab Advance config

Bước 3: Nhập kết quả trả về của lệnh cmd vào trường Appium JS

Bước 4: Start lại Agent
Slow agent
Có thể do máy người dùng cấu hình yếu, thời gian trả về kết quả lâu, dẫn đến timeout.
Dùng Slow agent sẽ tăng thời gian đợi kết quả về
Bước 1: Stop Agent
Bước 2: Trên tab Advance config, click checkbox Slow Agent

Bước 3: Start lại Agent