Đọc file csv bằng JUnit5

I. Tổng quan về data-driven testing

Khi viết automation test scipt, mọi người hay phải đụng phải case là
nhiều testcase có actions và result giống hệt nhau, chỉ khác nhau data input.
Cách xử lý chung là data-driven testing, có 2 cách chính:

  • Data provider trong file code ( có thể tham khảo ở đây)
  • Data từ file bên ngoài (excel, csv, json…)

Nhưng đọc file excel như bài 23 thì quá lằng nhằng, nặng nề, không linh hoạt.

May mắn là JUnit5 đã đơn giản mọi chuyện bằng việc natively support chức năng đọc csv.

II. Cách đọc file csv trong JUnit5

Điều kiện cần: Bạn đã tự add được thư viện JUnit 5 vào trong project của bạn, có thể add thông qua Maven, Gradle hoặc add trực tiếp.

Maven dependency:

Gradle dependency:

Cách áp dụng

Có mấy điểm cần lưu ý:

  1. Đặt file cần dùng ở 1 folder trong project. Ở đây, mình đặt ở file ở folder resource của Test.
  2. Bạn cần phải sử dụng annotation @ParameterizedTest
  3. Phải add @CsvFileSource để chỉ ra vị trí của file csv
  4. Trong method sử dụng những parameter nào thì khai báo trong phần parameter. Ví dụ username và password, dưới dạng String.

Trong phần CsvFileSource có 1 vài tham số config, như sau:

  • resources là bắt buộc, đấy là địa chỉ file, có thể đặt đường dẫn tuyệt đối hoặc tương đối. Recommend là đường dẫn tương đối.
  • numLinesToSkip là số dòng sẽ bỏ qua, trong ví dụ mình đặt là 1, để nó không đọc vào title của từng cột, hiện tại đang có giá trị là username và password.
  • delimiter: mặc định là dấu phẩy, bạn có thể thay đổi nếu bạn dùng ký tự khác
  • những cái khác là mặc định, tùy điều kiện mà bạn thay đổi theo.

Ngoài ra, có 1 số điểm mà bạn muốn dùng khi bạn làm với file csv

  • Bạn muốn data của bạn có chứa khoảng trắng (space) —> đặt dấu quote vào 2 đầu của đoạn value
  • Bạn muốn data có cả dấu ” –> đặt 1 dấu ” bên cạnh dấu ” của bạn

III. Tổng kết

Từ ngày vớ được tính năng này của JUnit5, mình đã gần như giã từ TestNG, vì nó làm mình cải thiện được tốc độ viết test rất nhiều. Mình không cần phải định nghĩa ra nhiều file data provider như trước, cảm giác rất hạnh phúc. 😀 Bạn cũng có thể tự tìm hiểu những tính năng mới JUnit 5. Hi vọng bạn sẽ happy với nó.

5 thoughts on “Đọc file csv bằng JUnit5

  1. Pingback: [Bài 23] Đọc dữ liệu từ file Excel | GiangTester Blog

  2. mình có cần phải convert file exel sang đuôi csv không vậy bạn? Nếu có thì convert bằng cách nào.

    • Tất nhiên là phải convert thì Junit5 nó mới đọc được. Bạn mở excel file và Save as –> chọn loại csv.

Leave a Reply

Your email address will not be published. Required fields are marked *