12/08/2024
Lớp Tester thực hành dự án tối qua. Học viên có cả học onl và cả off ( các bạn học off mình quên hem chụp ảnh)
Thực hành Test API, dự án thực tế Thương mại điện tử
TEST API
*cấu trúc chung để hiểu cơ bản về test API*
I. Kiến thức cơ bản cần phải biết
1️⃣ API
-Là cầu nối nói chuyện giữa Client và Server thôi. Nó là lớp chuyên xử lý các thao tác của người dùng, nhận request từ người dùng, xử lý và gửi yêu cầu tới database, sau đó lấy dữ liệu từ database gửi ngược lại người dùng ở tầng giao diện. Hoặc có thể là cầu nối của 2 ứng dụng
- Mục đích: kiểm thử API giúp kiểm tra lại một lần nữa, sàng lọc lại những dữ liệu không hợp lệ bị lọt lưới từ tầng giao diện. tránh làm lổi hệ thống
2️⃣ Phần tử để send request (Sampler) bao gồm: HTTP, HTTPS, FTP, SOAP, JDBC
3️⃣ Tham số HTTP request:
- Server name or IP: domain hoặc Ip trang web
- Port name. ví dụ: port 80
- Protocal: HTTP hoặc HTTPS.
+ Đối với HTTPS thì an toàn cao hơn, ssl, và port 443
+ Đối với HTTP: port 80
- Method: GET,POST, PUSH, HEAD..
+ HEAD: trả về tiêu đề Http ( không có body)
+ PUT: tải lên 1 chỉ định đại diện
+ DELETE: xóa các tài nguyên quy định
+ GET: yêu cầu dữ liệu từ 1 nguồn cụ thể
+ POST: gửi dữ liệu được xử lý đến 1 tài nguyên được chỉ định
- POST được gửi dữ liệu ngầm, nhầm bảo mật hơn, không đưa giá trị lên URL nên không có giới hạn ký tự và file hình ảnh
- Khi lấy dữ liệu nên dùng GET
- Khi tạo dữ liệu nên dùng POST.
- Path: đường dẫn nguồn
- Paramater: danh sách các thông số gởi cùng request
4️⃣ Trạng thái HTTP:
- 1xx: server nhận được request
- 2xx: request đã được xử lý và xử lý thành công
- 3xx: chuyển hướng qua request khác để hoàn tất
- 4xx: lổi từ phía client
- 5xx: lổi từ phía server
ℹ️ LƯU Ý: các trạng thái trên nên nhớ, vì đi phỏng vấn đa số nhà tuyển dụng sẽ hỏi. nên tìm hiểu chi tiết hơn như lổi 501, 502, 503..
II. API
1️⃣ Ta có các tool test API như: Advanced Rest Client, Postman, Curl trong Linux,SOAPUI, Jmeter
( Ở đây mình sử dụng Postman)
2️⃣ Thành phần chính
- URL
- Header: Paramater, json,data
- Method: GET, POST, PUT, DELETE, PATH,...
- Request
- Reponse
- Error Message/code
3️⃣ Cơ chế hoạt động
☑️ B1: trên giao diện màn hình, ta request 1 yêu cầu, Ví dụ: cập nhật trạng thái đơn hàng từ "đang xử lý" -> "đang giao hàng"
☑️ B2: server nhận request từ người dùng và check điều kiện lại 1 lần nữa. VD: điều kiện tiên quyết là order đang ở satus = 3 (đang xử lý) Valid thì được cập nhật status order =5 (đang giao hàng) vào Database.
☑️ B3: server trả lại thông tin, gọi là "response", về lại cho client thông báo rằng nó đã cập nhật thành công.
☑️ B4: user nhìn thấy order của mình đã chuyển trạng thái trong list sản phẩm
➡️ Vậy để test API, ta cũng dựa vào test case thông thường, ta test các case: data hợp lệ, data không hợp lệ (Validate dữ liệu), test chức năng xem hoạt động đúng như requirment không, test tích hợp các API liên quan, .... ==> case test như test UI, Funciton thông thường
4️⃣ Một API có cấu trúc như sau: http:///v1/export/Publisher/Standard_Publisher_Report?format=csv
III. QUY TRÌNH THỰC TẾ (CỤ THỂ)
☑️ Nhận yêu cầu của Khách hàng
☑️ Team lead check và giao task cho dev
☑️ Dev viết code API và viết tài liệu cho API đã viết. Hoàn thành thì giao cho tester
☑️ Tester dựa vào tài liệu dev viết và test case đã liệt kê trước đó ( tương tự test function) để kiểm tra
☑️ Log bugs nếu có và report
➡️ CASE CẦN TEST:
- Giá trị trả về dựa trên điều kiện đầu vào (Nó tương đối dễ dàng để kiểm tra, như đầu vào có thể được xác định và kết quả có thể được chứng thực.)
- Không trả lại bất cứ điều gì: Khi không có giá trị trả về, hành vi của API trên hệ thống sẽ được kiểm tra.
- Kích hoạt một số API / sự kiện / gián đoạn khác.
- Cập nhật cấu trúc dữ liệu: Cập nhật cấu trúc dữ liệu sẽ có một số kết quả hoặc ảnh hưởng lên hệ thống và cần được chứng thực.
- Sửa đổi một số tài nguyên nhất định: Nếu API gọi sửa đổi một số tài nguyên thì cần phải xác nhận hợp lệ bằng cách truy cập các tài nguyên tương ứng
Lớp tester tại văn phòng cty, 106 hoàng quốc việt
100% dậy thực hành, học viên làm đc việc và đi làm đc
23/07/2024
21/07/2024
17/07/2024
16/07/2024
09/07/2024
03/07/2024
26/06/2024
19/01/2024
08/01/2024
01/01/2024