Giới thiệu về Instruments:
Instruments là một công cụ phân tích hiệu năng và kiểm thử cho iOS và Mac OS (Được tích hợp trong ứng dụng Xcode – được dùng để phát triển ứng dụng cho iOS và Mac OS). Đây là một công cụ linh hoạt và mạnh mẽ giúp ta theo dấu process (của logic trong ứng dụng), thu thập dữ liệu và khảo sát những dữ liệu đã thu thập được. Với phương pháp này Instruments sẽ giúp ta hiểu được hành vi của cả người dùng lẫn hệ điều hành.
1.Khởi động Instruments
- Mở Xcode
- Chọn Xcode > Open Developer Tool > Instruments
- Hiển thị màn hình Instruments
Vậy là chúng ta đã xong phần khởi động bộ công cụ Instrument của Xcode tiếp theo tôi sẽ giới thiệu cho các bạn 1 số công cụ thông dụng sử dụng trong Instrument.
2.Giới thiệu 1 số công cụ có trong Instruments
2.1.Automation
- Với Instruments, được tích hợp sẵn trong Xcode từ phiên bản 3.0 trở đi, ta có thể tương tác với UI của ứng dụng (do cá nhân hoặc tổ chức của ta phát triển – đồng nghĩa với việc cần có certificate và provisioning của thiết bị sử dụng để test). Khi sử dụng test tự động, đội ngũ của chúng ta sẽ có thời gian để làm những việc khác. Tuy nhiên ta sẽ phải dành chút thời gian để viết script cho test case của ứng dụng trước đã.
- Ta có thể sử dụng tính năng Automation trong Instruments để tự động tương tác với UI trong ứng dụng thông qua những đoạn script đã viết. (Đồng nghĩa với việc 1 test case chỉ phải viết script 1 lần nhưng được sử dụng để test nhiều lần ngay khi phát triển ứng dụng hay những bản nâng cấp sau). Những đoạn script này sẽ được chạy bên ngoài ứng dụng (đang cần test) và mô phỏng những tương tác của người dùng đối với ứng dụng bằng cách sử dụng UI Automation API (một tập các Java Script API), đồng thời chúng sẽ ghi lại log của quá trình tương tác lên trên máy tính.
- Ngoài ra ta có thể tích hợp Automation với những tính năng khác của Instruments để thực hiện những test case phức tạp hay kiểm tra rò rỉ bộ nhớ (Memory leaking) trong quá trình chạy ứng dụng.
2.1.1.Khởi tạo Automation trong Instrument
- Chạy Instruments
- Lựa chọn tạo Automation từ Instruments
- Sau khi khởi tạo ta sẽ nhận được một Automation
Trong đó
- Thiết bị và ứng dụng muốn kiểm thử: (Bao gồm cả device thật và Simulator)
- Editor để soạn thảo script: (Sử dụng ngôn ngữ Java Script)
- Các nút với chức năng ghi nhớ thao tác người dùng và thực thi script:
2.1.2.Tạo Script:
- Vào mục Display Setting bên phải:
- Thêm mới script hoặc load từ file: (Import or Create)
- Sử dụng Script: Sử dụng những Java Script API mà Apple cung cấp để thực hiện tương tác với UI trong ứng dụng ta đang phát triển.
- Ghi nhớ lại những tương tác của người dùng, biến chúng thành script tương ứng: Ngoài việc tự viết ra những đoạn script để tương tác với UI của app, ta còn có thể ghi lại những tương tác của người sử dụng thông qua chức năng record của Automation như đã giới thiệu ở trên. Mỗi khi người dùng thực hiện một tương tác với UI thì Instruments sẽ tự động tạo ra đoạn script tương ứng. Ta có thể chèn, thêm, sửa xóa để được đoạn script như ý.
- Truy cập và thao tác với các thành phần UI: Cấu trúc các thành phần UI trong ứng dụng: Các thành phần UI trong ứng dụng được tổ chức dưới dạng cây
- Trong đó class UIATarget chứa đối tượng gốc (root): localTarget là đối tượng đại diện cho thiết bị ta đang thực hiện trỏ tới để test. localTarget lại chứa đối tượng: frontMostApp – là đối tượng đại diện cho ứng dụng ta đang thực hiện trỏ tới để test. frontMostApp lại chứa đối tượng mainWindow – là màn hình hiện tại của ứng dụng (màn hình mà người sử dụng sẽ nhìn thấy ở thời điểm tương tác)
mainWindow lại chứa từ 0 -> nhiều thành phần UI thành phần UI (Element UI) cũng có thể chứa 0 -> nhiều thành phần UI khác. - Do đó muốn tương tác với thành phần UI nào (button: nút , cell in table: một dòng trong một bảng,..) ta chỉ cần truy cập từ đối tượng gốc localTarget đi dần theo cấu trúc cây ở trên cho đến khi tìm được thành phần UI đó và thực hiện tương tác. (tap: chạm , double tap: 2 chạm, pinch: 2 chạm có kéo mở, swipe: vuốt,…)
2.2.Leaks
- Cũng giống như Anotation ,Leaks cũng là 1 công cụ có trong Instrument. Công cụ này sẽ khởi chạy ứng dụng của bạn, qua đó đo các thông số về kích thước vùng nhớ được tạo ra, vùng nhớ nào bị leak, và dòng code nào đã gây ra leak vùng nhớ đó, thậm chí bạn có thể double-click để đi đến đoạn code đó và fix nó.
2.2.1.Khởi tạo Leaks trong Instrument
- Chạy Instruments
- Lựa chọn tạo Leaks từ Instruments
- Sau khi khởi tạo ta sẽ nhận được một Leaks