Kiểm thử tự động ứng dụng iOS với Calabash

Kiểm thử tự động ứng dụng iOS

Giới thiệu về Calabash

Calabash là một ứng dựng nguồn mở và miễn phí để kiểm thử tự động các ứng dụng di động. Nó là ứng dụng đa nền tảng hỗ trợ cả iOS và Android. Calabash bao gồm những thư viện cho phép tương tác với các native app và hybrid app giống như người dùng cuối, bao gồm các hành động như giả lập cử chỉ, xác định đúng sai và chụp màn hình…

Bài lần trước chúng ta đã làm quen Calabash cho Android và lần này chúng ta sẽ làm quen cách kiểm thử tự động ứng dụng iOS bằng Calabash.

Yêu cầu

Calabash khuyến khích bạn nên dùng phiên bản mới nhất của Xcode, MacOS và Ruby:

  • MacOS 10.10 or 10.11
  • Xcode 6 or 7
  • iOS Devices >= 7.1
  • iOS Simulators >= 8.0
  • ruby >= 2.0 (càng mới càng tốt)

Để cài đặt Calabash, bạn có thể dùng tool quản lý Ruby như rbenv hoặc rvm để cài đặt Ruby và cài gem Calabash iOS:

Trong trường hợp bạn không muốn sử dụng cách trên, bạn có thể dùng Calabash Sandbox:

Lưu ý: không cài đặt gems bằng sudo

Các bạn có thể đọc bài Kiểm thử tự động ứng dụng Android bằng Calabash để xem thêm cách cài đặt rbenv:

Kiểm thử tự động ứng dụng iOS với Calabash

Để bắt đầu sử dụng Calabash trong dự án của bạn, bạn cần liên kết Objective-C framework (calabash.framework) vào trong ứng dụng. Dưới đây là hướng dẫn sử dụng Calabash với ứng dụng iOS được viết bằng ngôn ngữ Swift.

Bước 1. Tạo Calabash target

1.1 Tạo bản sao target từ Production

Trong list target, chuột phải vào Production target và chọn Duplicate.
Calabash - duplicate target

Nếu project của bạn chỉ dành cho iPhone hay iPad thì bạn sẽ nhìn thấy thông báo như này thì hãy chọn Duplicate Only:
Calabash - Duplicate iPhone

Tại sao phải chia riêng biệt Target ra?

Tại vì Calabash có chứa framework và methods mà khi thêm vào project của bạn có thể bị reject bởi AppStore.

1.2 Đổi tên cho Target vừa tạo

Bạn nên đổi tên theo dạng tênapp-cal:

Calabash - Rename Target

1.3 Thay đổi bundle identifier

Calabash - Rename bundle

1.4 Thay đổi Info.plist

Thay đổi Info.plist của target Production:

Calabash - Change info.plist

1.5 Xoá Info.plist bản copy khi Duplicate target từ Production

Calabash - Remove info.plist

Bước 2. Tạo Calabash Schema

2.1 Chọn Schema -> Edit Schema

Calabash - Manage Schema

2.2 Đổi tên của Schema copy

Calabash - Duplicate Schema

2.3 Đánh dấu ShowShared

Calabash - Check Shared

2.4 Chọn Scheme Executable

Bước này có thể không cần thiết nhưng bạn cần phải chắc chắn rằng Executable cho -cal scheme là -cal target.
Calabash - Schema Execute

Bước 3. Link tới CFNetwork.framework

Calabash - Link to CFNetwork 1
Calabash - Link to CFNetwork 2

Bước 4. Link tới calabash.framework

4.1 Tải về calabash.framework

Tạo Gemfile trong folder chứa file .xcodeproj của bạn với nội dung sau:

Và chạy những câu lệnh sau tại thư mục đó

Nếu màn hình kết quả trả về kết quả như sau nghĩa là quá trình cài framework đã hoàn tất:

4.2 Thêm calabash.framework vào project

Hãy chắc chắn rằng calabash-framework không được trỏ tới target nào hết.
Calabash - Add file
Calabash - Select file
Calabash - No target

4.3 Link tới calabash.framework

Calabash - Other Linker Flags

Thêm đoạn sau vào Other Linked Flags:

Chạy test Cucumber trên iOS Simulator

Trong folder chứa file .xcodeprojGemfile, khởi tạo feature folder:

Build và run trong Xcode, chọn target tới iOS Simulator. Calabash sẽ tự động tìm file .app bạn vừa build.

Và chúng ta run test:

Nếu Calabash không tìm thấy file .app bạn vừa build thì Calabash sẽ báo lỗi “Cannot find APP_BUNDLE_PATH“. Nếu nó xảy ra thì bạn hãy tạo biến môi trường APP_BUNDLE_PATH bằng tay.

Khi build thì mặc định file .app của bạn sẽ nằm tại:

và tạo biến môi trường APP_BUNDLE_PATH:

Còn tất cả các bước khác như Define steps, report thì đều giống bài viết Kiểm thử tự động ứng dụng Android bằng Calabash. Hy vọng bài viết sẽ giúp bạn có thêm 1 lựa chọn mới để giúp công việc của bạn trở nên thú vị và tiết kiệm thời gian hơn.

SSS Full-stack Engineer

Love Silicon Straits and want to know more about our company culture, working environment or job vacancies?
Find out more at careers.siliconstraits.vn.

Silicon Straits
Be Challenged. Be Inspired. Be Different.




Posted by

on January 23, 2016

in , , ,

Comments

Follow us for more later

or subscribe with