Chào các bạn, hôm nay mình xin gửi đến các bạn bài viết thực thi Test với phương thức Post trong Karate. Bây giờ chúng ta cùng bắt đầu nhé.
1. Tạo file làm việc với phương thức POST
Đầu tiên chúng ta tạo một file Post.feature.
Truy cập vào trang web https://reqres.in/ để lấy dẫn bất kì cho phương thức Post.
Nhấn vào đường dẫn rút gọn bên dưới dòng chữ Request để chuyển đến trang web mới có đường dẫn đầy đủ của phương thức.
Sao chép đường dẫn trên trang mới.
Viết câu lệnh mô tả một trường hợp Test với phương thức Post. ở đây khi mình viết các câu lệnh mô tả với phương thức Post, đầu tiên mình sẽ thêm dòng And request kèm với một dòng kiểu dữ liệu JSON, vì đây là phương thức Post (phương thức đẩy dữ liệu mới vào cơ sở dữ liệu) nên bắt buộc phải có tham số truyền vào là một JSON để có thể đẩy dữ liệu lên, câu lệnh có cấu trúc như sau And request{ “name”: “NamNgoc”,”job”: “leader”} . Tiếp theo nữa đây mình cũng sẽ sửa yêu cầu trạng thái lại thành 201 là kiểu trả về của phương thức Post khi thực hiện thành công.
Sau đó mình nhấn Run As để chạy chương trình.
Sau tất cả mình thu được kết quả là Test chạy thành công không có lỗi.
2. Làm việc với background trong phương thức Post
Đầu tiên mình tạo một Scenario mới.
Sau đó trên đầu các Scenario mình tạo một background với hai thông số là url và header request.
Sau đó mình sửa đường dẫn của Given bên Scenario 2 lại thành.
Sau đó mình lại nhấn Run As để chạy Test.
Sau tất cả Test chạy thành công không có lỗi.
3. Xác nhận dữ liệu với phương thức Post
Đầu tiên mình sẽ tạo một Scenario mới.
Sau đó bên dưới cùng mình sẽ xác thực response bằng câu lệnh như sau And match response == {“name”: “NamNgoc”,”job”: “leader”,”id”:”#string”,”createdAt”:”#ignore”} tại đây mình cho Id là một String bất kì và mình sẽ bỏ qua trường createdAt, vì mỗi lần thực hiện thì id sẽ được đổi khác và createdAt cũng vậy.
Sau đó mình nhấn Run As để chạy Test.
Sau tất cả Test chạy thành công và không có lỗi.
4. Xác định đầu ra mong đợi từ file dữ liệu bên ngoài
Đầu tiên mình tạo một file mới có tên là response.json.
Tiếp theo mình thêm các dòng dữ liệu dạng JSON mình mong đợi vào file.
Sau đó quay lại background mình tạo một biến expectedOutput và gán giá trị là hàm đọc với tham số là tên file JSON vừa tạo.
Sau khi tạo biến ở back ground thì bây giờ mình sẽ tạo một Scenario mới.
Tiếp đó tại Scenario mới tạo mình sẽ sửa phần And match response == {“name”: “NamNgoc”,”job”: “leader”,”id”:”#string”,”createdAt”:”#ignore”} , tại đây mình sửa lại để response bằng với biến exectedOutput ở phần background mình đã cho.
Ở đây mình cũng có thể thay từ khóa response thành kí tự $ như sau.
Sau đó mình nhấn Run As để chạy Test.
Sau tất cả Test chạy thành công và không có lỗi.
5. Đọc request của Scenario từ file
Đầu tiên tạo một file .json mới.
Tiếp theo truyền dữ liệu dạng JSON mình muốn Post vào file.
Sau đó quay lại file Post.feature mình tạo Scenario mới.
Tiếp đó tại phần And request {“name”: “NamNgoc”,”job”: “leader”} mình sẽ sửa phần tử đằng sau request lại thành một biến và gán giá trị là một hàm đọc file với tham số là tên file chứa dữ liệu mình muốn Post, sau đó bên dưới mình bổ sung dòng And request và tên biến vừa gán dữ liệu đằng sau.
Sau đó mình nhấn Run As để chạy Test.
Sau tất cả Test chạy và không bị lỗi.
6. Thay đổi giá trị dữ liệu request khi đọc từ tệp bên ngoài
Đầu tiên mình tạo một Scenario mới. Gán giá trị của biến requestBody bằng với giá trị đọc được từ file request.json.
Sau đó mình gõ câu lệnh set requestBody.job = ‘enginer’, ở đây mình muốn sửa dữ liệu request ở mục job trong file mình sẽ gõ câu lệnh như trên hoặc mình muốn sửa name thì mình sẽ gõ câu lệnh như sau set requestBody.name = ‘NgocNam’.
Cuối cùng nhấn Run As để chạy Test
Test Chạy thành công và gặp một lỗi.
Vì ở trên mình đã sửa lại dữ liệu nằm sẵn trong file nên việc so sánh khác và dẫn đến lỗi là điều không thể tránh khỏi, các bạn có thể tạo biến mới ở background và cho bằng giá trị dữ liệu bạn muốn sửa trong Scenario và dưới phần xác thực dữ liệu sửa lại cho bằng biến đó nữa là xong, vậy là Test của bạn sẽ không còn lỗi.
7. Ví dụ về phương thức Post
Tại đây mình sẽ làm một ví dụ để các bạn có thể hình dung về phương thức Post. Đầu tiên mình có một đường dẫn API, các bạn có thể thấy hiện tại bên trong API chứa ba dữ liệu về bill.
Tại đây mình sẽ tạo một Scenario mới và cho thêm dữ liệu vào API sau đó mình sẽ kiểm tra lại xem dữ liệu mới có được thêm hay không. Mình bắt đầu tạo Scenario mới với url là ‘https://hdapi.000webhostapp.com/bill_managerment/create.php’ , request là {“user_id”:”0″,”bill_id”:”01244″,”bill_status”:”0″} và Phương thức là Post. Cùng xem hình bên dưới để hiểu rõ thêm nhé.
Sau khi tạo Scenario mình sẽ nhấn Run As để chạy Test.
Tại đây mình kiểm tra kết quả Test.
Sau đó mình sẽ kiểm tra API xem dữ liệu đã được thêm vô chưa. Mình mở đường dẫn API lên và kiểm tra.
Như các bạn đã thấy dữ liệu mình reuquest trong Scenario Post demo 6 đã được thêm vào, vậy nghĩa là Test phương thức Post của mình hoạt động thành công.
Đó là toàn bộ bài viết thực thi Test với phương thức Post trong Karate . Nếu có bất kì thắc mắc nào, các bạn có thể để lại phần bình luận phía bên dưới bài viết mình sẽ giải đáp. Cảm ơn các bạn đã dành thời gian đọc bài chia sẻ của mình.
Chúc các bạn thành công.
Nam Ngọc – PLT SOLUTIONS