Jacobvu84 / serenity-pageobject-junit-webdriver

4 stars 1 forks source link

Appium Docker for Android - MAC #66

Open Jacobvu84 opened 4 years ago

Jacobvu84 commented 4 years ago

Bước 01: Cài đặt docker

Bạn có thể cài đặt docker thông qua brew như sau $ brew install docker

Hoặc bạn có thể tải bộ cài và tiến hành cài đặt tại https://docs.docker.com/docker-for-mac/install/

Bước 02: Cài đặt docker-machine

Tại sao cần cài đặt docker-machine? Bởi vì docker daemon ( service) sử dụng các tính năng dành riêng trên kernel dành cho Linux

Để tiến hành cài đặt docker-machine bạn chạy lệnh $ brew install docker-machine

Đối với bản desktop tải trên trang chủ có thể docker-machine đã được cài đặt cùng trong quá trình cài đặt docker.

Bước 03: Tạo VM từ docker-machine

Như đã nói ở trên do docker không thể chạy trực tiếp trên Mac nên chúng ta cần tạo một VM. Thực hiện lệnh sau đây để tạo máy ảo

$ docker-machine create --driver virtualbox appium-docker

Bạn sẽ nhìn thấy thông báo lỗi với nội dung kiểu như sau: Error with pre-create check: "VBoxManage not found. Make sure VirtualBox is installed and VBoxManage is in the path"

Điều đó có nghĩa là bạn cần phải cài thêm VirtualBox.

Để tiến hành cài VirtualBox. Bạn có thể chạy lệnh

$ brew cask install virtualbox

Hoặc có thể download và cài đặt với bản desktop tại: https://www.virtualbox.org/wiki/Downloads. Chọn OS X hosts

Bước 04: Mount cổng USB từ host đến container.

Mục đích của bước này cho phép bạn có thể sử dụng các cổng USB của host ( máy được cài đặt docker) từ bên trong container ( docker host)

Để enable USB trong container các bạn chạy lệnh sau

$ docker-machine stop appium-docker
$ vboxmanage modifyvm appium-docker --usb on --usbehci on
$ docker-machine start appium-docker

Tuỳ thuộc vào version của VirtualBox, có thể bạn sẽ gặp lỗi sau: "Implementation of the USB 2.0 controller not found" Để khắc phục bạn cần cài thêm Extension Pack. Chú ý chọn đúng package tương ứng với version của bản VirtualBox mà bạn vừa cài.

Trên trang chủ của VirtualBox bạn sẽ nhìn thấy phần này. Hãy download và update.

image

Để kiểm tra xem có bao nhiêu máy ảo đang chạy bạn gõ lệnh

$ docker-machine ls

Jacobvu84 commented 4 years ago

Bước 05: Thêm Android devices

Vào mục Application mở ứng dụng VirutalBox sau đó chọn máy ảo tên là appium-docker.

Chọn mục USB và lựa chọn Android devices muốn thêm.

image

Trong hình. MÌnh có 2 thiết bị Android

image
Jacobvu84 commented 4 years ago

Bước 06: Xoá ADB service trên máy host ( trên máy Mac)

$ adb kill-server

Mục đích là để tránh xung đột giữa ADB trên host và container

Jacobvu84 commented 4 years ago

Bước 07: Chạy docker image trên máy ảo vừa tạo

$ docker run --privileged -d -p 4723:4723 -v /dev/bus/usb:/dev/bus/usb --name container-appium appium/appium

Các bạn cần lưu ý. Đây là docker được chạy trên máy ảo có tên là appium-docker chứ không phải là docker trên host.

Jacobvu84 commented 4 years ago

Bước 08: Kiểm tra

Để kiểm tra bạn có thể ssh vào máy ảo từ host thông qua lệnh sau

$ docker-machine ssh container-appium

Lúc này trên màn hình console sẽ

   ( '>')
  /) TC (\   Core is distributed with ABSOLUTELY NO WARRANTY.
 (/-_--_-\)           www.tinycorelinux.net

docker@container-appium:~$ 

Nghĩa là bạn đã ssh thành công. Lúc này bạn có thể sử dụng các lệnh adb trên container-appium giống như lệnh adb trên host.

Jacobvu84 commented 4 years ago

Tài liệu tham khảo