Nội dung bài viết
I. Chuẩn bị data files
Bạn có thể chọn 1 trong 2 format csv hoặc json:
A. File Csv
Bạn cần có file csv trước khi bắt đầu, trong file csv thì phải có dòng 1 là heading, postman sẽ lấy tiêu đề của mỗi cột làm tên biến.
b. File json
II. Chèn biến vào trong postman request
Ví dụ: mình có 1 request như sau
Sau đó bạn có thể viết test luôn
pm.test("data-driven test", () => { let res = pm.response.json(); pm.expect(res.json.name_key).eql(pm.iterationData.get("name")); pm.expect(res.json.age_key).eql(pm.iterationData.get("age")); });
- pm.iterationData.get là cách lấy biến từ data-file, mình đã nhắc ở bài 19.
- Cách viết test, mình có viết ở bài 20
III. Cách sử dụng
Chức năng này chỉ “chạy được” khi sử dụng Postman Runner hoặc dùng Newman nên khá tù.
- Bước 1: Mở runner
- Bước 2: chọn request mà sử dụng data
- Bước 3: Setting
- Bước 4: Run Collection
- Bước 5: Xem report
IV. Nhắc nhở trước khi kết bài
Chức năng này của postman là 1 chức năng chạy được, nhưng nó có “tác dụng phụ” khi bạn run cả collections (chứa nhiều testcase khác) nên bạn hãy cân nhắc khi sử dụng.
Ví dụ: mình có 2 requests: (A) 1 data-driven, (B) 1 request bình thường. Mình mong muốn request A lặp lại theo số lần = số dòng file csv, và request B chỉ chạy 1 lần thôi. Tuy nhiên, postman sẽ làm cho cả 2 requests lặp số lần giống nhau.
Hi bạn, mình có vấn đề với api testing nhờ bạn giúp
Mình tạo test case cho API register (Define các case vào file CSV)
Mình muốn hỏi trong test case có những case đăng ký thành công (stt = 200) và case failed (sts = 403).Vậy trong phần tests mình nên xử lý như thế nào? Hay mình phải chia test case thành 2 files riêng biệt.
Cảm ơn bạn nhiều
– Dễ thở nhất mình nghĩ là tách làm 2 case riêng biệt.
– Nếu muốn nhét vào trong file thì bạn nên có thêm 1 cột trong csv là error_code, cột này chứa expected result cho từng record trên file csv, như thế thì phần Test bạn sẽ viết rất đơn giản.
– Vđề khác: đk failed mà return 403 là có vẻ sai sai rồi đó, return 403 khi gọi vào 1 API mà ko có access rights (quyền truy cập), kiểu như user thường gọi API của user admin.
Thanks Quỳnh đã hỏi đúng ý mình. Thanks Giang đã reply.