12/08/2018, 15:39

Appium On MAC (Phần 1)

1. Appium là gì? Appium là một công cụ mã nguồn mở được sử dụng để kiểm thử tự động (test automation) các ứng dụng mobile như native app, hybrid app, mobile web app... + Native App (Ứng dụng gốc): Là những ứng dụng được viết riêng cho một loại nền tảng như iOS, Android, Windows Phone bằng các ...

1. Appium là gì?

Appium là một công cụ mã nguồn mở được sử dụng để kiểm thử tự động (test automation) các ứng dụng mobile như native app, hybrid app, mobile web app... + Native App (Ứng dụng gốc): Là những ứng dụng được viết riêng cho một loại nền tảng như iOS, Android, Windows Phone bằng các ngôn ngữ tương ứng của mỗi nền tảng đó ví dụ Java trên Android, Object C trên iOS, C# trên winphone. Mỗi Native App chỉ chạy được trên một nền tảng và không thể mang sang các nền tảng khác. + Mobile Web App : Là ứng dụng chạy trên nền web, được viết bằng các ngôn ngữ web như HTML5, CSS, javascript hoặc jQuery Mobile. Về cơ bản là website với giao diện giống như app và nội dung được load từ web. + Hybrid App (Ứng dụng lai): là ứng dụng kết hợp những ưu điểm của cả Mobile Web App và Native App. Theo đó, các phần cơ bản của ứng dụng vẫn viết bằng ngôn ngữ web, nhưng được đặt trong native container, nên vẫn có thể đưa lên kho tải. Về cơ bản Appium được biết đến là một công cụ kiểm thử tự động đa nền tảng (Cross-Platform) , hỗ trợ nhiều ngôn ngữ như là: Ruby on Rails, C# and Java... Appium là mã nguồn mở và có thể chcayj liền mạch trên nhiều thiết bị và bộ mô phỏng nên nó trở thành một sự lựa chọn thích hợp cho kiểm thử tự động.

2. Appium Architecture

Appium là một server HTTP được viết bằng node.js để tạo và quản lý nhiều WebDriver sessions cho các nên tảng khác nhau như iOS và Android. Appium bắt đầu một “test case” trên thiết bị sinh ra một server and nghe lệnh froxies từ main Appium server. Với mỗi nhà cung cấp như iOS và Android thì sẽ có một phương pháp và cơ chế khác nhau để chạy một testcase trên thiết bị.

3. Appium làm việc như thế nào trong iOS

Trong iOS, Appium proxies lệnh cho UIAutomation script chạy trong môi trường MAC Instruments. Apple cung cấp ứng dụng này được gọi là "Instruments" được sử dụng để thực hiện các hoạt động như profiling, controlling and building các iOS Apps nhưng cũng có một thành phần tự động hóa mà ở đó ta có thể viết các câu lệnh javascript sử dụng API của UIAutomation để tương tác với giao diện ứng dụng. Appium sử dụng các thư viện tương tự nhau để tự động hóa iOS Apps. Trong hình trên ta có thể thấy kiến trúc của Appium trong ngữ cảnh iOS tự động.

  • Selenium webdriver chọn một mẫu lệnh như mã (Element.click) và gửi nó dưới dạng JSon qua yêu cầu http đến Appium server.
  • Appium server biết bối cảnh tự động hóa như iOS và Android và gửi lệnh này đến server lệnh của thiết bị, chờ đợi ứng dụng trình điều khiển thiết bị (viết bằng node.js) để nhặt nó lên và thực hiện nó trong tệp bootstrap.js trong môi trường dụng cụ iOS.
  • Khi lệnh đã được thực hiện, command client sẽ gửi lại thông báo tới Appium server, nó sẽ ghi lại mọi thứ liên quan đến lệnh trong bảng điều khiển của nó.
  • Chu kỳ này tiếp tục cho đến thời gian tất cả các lệnh được thực hiện.

4. Ưu nhược điểm của Appium

  • Ưu điểm:
    • Vẻ đẹp của Appium là tất cả sự phức tạp đều nằm dưới sự quản lý của Appium server và cho nhà phát triển tự động ngôn ngữ lập trình và toàn bộ trải nghiệm vẫn sẽ giống nhau không phụ thuộc vào nền tảng được tự động hóa (iOS hay Android).
    • Các lợi ích khác của Appium là nó mở ra cho các cross-platform mobile testing có nghĩa là cùng một thử nghiệm sẽ làm việc trên nhiều nền tảng.
    • Có thể tự động hóa các Web, Hybrid and Native mobile applications.
  • Nhược điểm:
    • Appium có những giới hạn về mặt kỹ thuật ví dụ như trong iOS chỉ có thể chạy một phiên bản trên các thiết bị trên mỗi hệ điều hành Mac OS.
    • Appium sử dụng UIAutomator cho tự động hóa Android chỉ hỗ trợ nền tảng Android SDK, API 16 trở lên để hỗ trợ API cũ hơn thì họ phải sử dụng thư viện mã nguồn mở khác

5. Cấu hình Appium trên máy MAC

  • Download ứng dụng Appium dành cho Mac. Sau khi tải xuống, bạn cần di chuyển ứng dụng này vào thư mục ứng dụng của bạn và sau đó bạn có thể khởi chạy ứng dụng này từ Mac Launchpad
  • Vì Appium sử dụng node.js bên trong nên chúng tôi cũng cần phải cài đặt nút trên máy Mac
  • Sử dụng Mac OSX 10.7+
  • XCode phiên bản 4.5 trở lên cùng với iPhone simulator SDK và Command Line Tools **
0