Sử dụng Postman trong kiểm thử web API

56 382 9
Sử dụng Postman trong kiểm thử web API

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Sử dụng Postman trong kiểm thử web API API đã được áp dụng từ rất lâu rồi, nhưng để phổ biến với thuật ngữ API Testing thì chưa nhiều. Đa số các tester test API các bạn chỉ đều biết và dừng lại ở việc có API từ đội Phát triển đưa, và tiến hành gọi từng API một. Và giai đoạn test API đều bi đẩy xuống cuối cùng ở giai đoạn làm sản phẩm.

Kiêm thử đảm bảo chất lượng phần mềm MỤC LỤC Nhóm 02 1 Lớp CNPM 62 Kiêm thử đảm bảo chất lượng phần mềm DANH MỤC CÁC BẢNG BIỂU Nhóm 02 2 Lớp CNPM 62 MỞ ĐẦU Tổng quan tình hình thực tiễn kiểm thử phần mềm nói chung API testing nói riêng [1]Nhắc đến ngành Công nghiệp phần mềm (PM) người ta thường nhắc đến lập trình viên - người trực tiếp làm sản phẩm PM Vậy có phải sản phẩm lập trình viên làm ứng dụng hay khơng? Câu trả lời không Bất kỳ PM hay ứng dụng trước đưa vào hoạt động phải trải qua khâu kiểm tra Những người phụ trách công việc gọi Tester Chuyên viên kiểm thử phần mềm Tuy chưa tiếng phổ biến chức danh lập trình viên chuyên viên kiểm thử phần mềm đã, nghề “hot”, nghề thiếu ngành Cơng nghiệp PM Cơng việc tester tìm kiếm lỗi hệ thống PM thẩm định, xác minh xem hệ thống PM có đáp ứng yêu cầu kỹ thuật yêu cầu nghiệp vụ hay không Tester giúp cho sản phẩm hoàn thiện nhằm đáp ứng yêu cầu đặt khách hàng Sản phẩm hoàn thiện, chất lượng cao tạo thêm niềm tin uy tín cơng ty với đối tác Nếu khơng có khâu này, tình trạng khách hàng trả sản phẩm xảy thường xuyên Như thấy tester vơ quan trọng, nói khâu sống việc phát triển PM API testing phần khâu sống Tính cấp thiết, ý nghĩa khoa học thực tiễn API testing [2]API áp dụng từ lâu rồi, để phổ biến với thuật ngữ API Testing chưa nhiều Đa số tester test API bạn biết dừng lại việc có API từ đội Phát triển đưa, tiến hành gọi API Và giai đoạn test API bi đẩy xuống cuối giai đoạn làm sản phẩm Nói đơn giản, API cầu nối client server Client web máy tính, app điện thoại sử dụng hệ điều hành khác viết ngôn ngữ khác Tương tự, server back-end viết ngôn ngữ khác Để thằng nói chuyện với chúng phải nói ngơn ngữ API Trong dự án phần mềm, phần server client làm độc lập với nên có nhiều chỗ client chưa làm xong, khơng thể chờ xong xi test muộn–> Lúc việc test cần phải thực qua công cụ khác để kiểm tra liệu trao đổi client server có xác hay khơng cần thực sớm tốt Kể client làm xong rồi, test client mà thấy lỗi liên quan đến logic liệu cần test thêm API để biết xác server sai hay client sai –> sửa lỗi nhanh Ngày hệ thống tích hợp có phương thức trao đổi client server phổ biến Tester dù manual hay auto cần có kiến thức api testing sớm tốt hỗ trợ việc test hiệu giảm thiểu lỗi nguy hiểm xảy CHƯƠNG 1: CÁC KHÁI NIỆM CƠ BẢN 1.1 Protocol dùng Restful API Protocol gì? [3]Giả sử: Có người A B nói chuyện với qua điện thoại, người A hỏi câu im lặng, người B biết người A chờ đợi câu trả lời đến lượt người B nói Hai máy tính giao tiếp cách lịch mô tả với thuật ngữ “Protocol” – giao thức  Giao thức luật lệ chấp thuận để máy tính nói chuyện với Tuy nhiên, luật lệ chặt chẽ nhiều so với giao tiếp người với người Máy tính khơng thơng minh để nhận biết câu “A chồng B” hay “B vợ A” có ý nghĩa Để máy tính giao tiếp hiệu quả, server phải biết xác cách mà client xếp message gửi lên Chúng ta nghe đến Protocol cho mục đích khác nhau, ví dụ Mail có POP hay IMAP, message có XMPP, kết nối thiết bị: Bluetooth Trong web Protocol HTTP – HyperText Transfer Protocol, phổ biến mà hầu hết cơng ty chọn giao thức cho API HTTP hoạt động nào? Cuộc sống HTTP xoay quanh vòng luẩn quẩn: Request Response Client gửi request, server gửi lại response liệu server làm client muốn hay khơng Và API xây dựng thành phần: Request Reponse Trước tiên, ta phải hiểu cấu trúc thành phần a Request Một request chuẩn cần thứ: • • • • URL Method Header Body Hình Request URL: địa cho thứ (dùng danh từ), web page, image, video API mở rộng ý tưởng gốc URL cho thứ khác, ví dụ: customers, products Và client dễ dàng cho server biết muốn gì, gọi chung “resources” – nguồn lực Method: hành động client muốn tác động lên “resources”, thường động từ Có loại Method hay dùng: • GET: Yêu cầu server đưa lại resource: Hãy tưởng tượng cảnh vào fb, tay vuốt new feeds • POST: Yêu cầu server cho tạo resource Ví dụ: đăng ký chuyến GrabBike • PUT: Yêu cầu server cho sửa / thêm vào resource có hệ thống Ví dụ: Edit post fb • DELETE: Yêu cầu server cho xóa resourse Cái chả cần ví dụ Header: nơi chứa thơng tin cần thiết request end-users khơng biết có tồn Ví dụ: độ dài request body, thời gian gửi request, loại thiết bị sử dụng, loại định dạng response mà client có đọc được… Body: nơi chứa thông tin mà client điền Giả sử bạn đặt bánh pizza, thông tin phần body là: Loại bánh pizza, kích cỡ, số lượng đặt b Response Sau nhận request từ phía client, server xử lý request gửi ngược lại cho client response Cấu trúc response tương đối giống phần request Status code thay cho URL Method Một response có cầu trúc phần: • Status code • Header • Body Hình Response Status code: số có chữ số có ý nghĩa Chắc bạn không lạ lẫm với Error “404 Not Found” “503 Service Unavailable”, Danh sách status code có ở: https://en.wikipedia.org/wiki/List_of_HTTP_status_codes Header Body: tương tự Request 1.2 Định dạng liệu JSON XML a Định dạng JSON Ngày nay, JSON sử dụng nhiều Restful API Nó xây dựng từ Javascript, ngơn ngữ mà dùng nhiều, tương thích với front-end back-end web app web service JSON định dạng đơn giản với thành phần: keys values Key thể thuộc tính Object cịn Value thể giá trị Key Ví dụ: • Trường hợp đơn giản Hình Ví dụ key nằm bên trái, value bên phải • Trường hợp đặc biệt Hình Ví dụ key có values dãy key + value c Định dạng XML Trong JSON dùng { } [ ] để dánh dấu liệu XML tương tự HMTL, dùng thẻ để đánh dấu gọi nodes Lấy ln ví dụ viết xml, này: Hình Ví dụ XML d Định dạng liệu sử dụng HTTP Phần header có chức lưu thơng tin mà người dùng khơng biết, có thành phần xác định format data: Content-Type Khi client gửi Content-Type header request, nói với server liệu phần body request định dạng theo kiểu Khi client muốn gửi JSON đặt Content-Type “application/json” Khi bắt đầu nhận request, server check ContentType biết cách đọc liệu body Ngược lại, server gửi lại client response, gửi lại Content-Type client biết cách đọc body response Hình Giao tiếp Client Server Đôi client đọc loại định dạng, ví dụ JSON mà server lại trả XML client bị lỗi Do đó, thành phần khác header Accept giúp client xử lý vấn đề cách nói ln với server loại đọc Ví dụ : Accept : “application/json” Chốt lại: dựa vào thành phần Content-Type Accept, client server hiểu làm việc cách xác CHƯƠNG 2: TỔNG QUAN VỀ API VÀ API TESTING 2.1 Tổng quan API Hiện API nói chung Web API nói riêng ứng dụng ngày nhiều Kiến trúc ứng dụng đại phân tán, không phụ thuộc ngôn ngữ thúc đẩy việc ứng dụng API Vậy API gì? Nguồn gốc ưu điểm nào? 2.1.1 API gì? API phương thức, giao thức kết nối với thư viện ứng dụng khác Nó viết tắt Application Programming Interface – giao diện lập trình ứng dụng API cấp khả truy xuất đến tập hàm hay dùng Và từ trao đổi liệu ứng dụng Ví dụ: Khi sử dụng ứng dụng điện thoại di động, ứng dụng kết nối Internet gửi liệu tới máy chủ Sau đó, máy chủ lấy liệu đó, diễn giải nó, thực hành động cần thiết gửi trở lại điện thoại Ứng dụng sau diễn giải liệu trình bày thơng tin bạn muốn theo cách đọc Hình Tổng quan API 2.1.2 API thường ứng dụng vào đâu? Web API: hệ thống API sử dụng hệ thống website Hầu hết website ứng dụng đến Web API cho phép bạn kết nối, lấy liệu cập nhật sở liệu Ví dụ: Bạn thiết kế chức nằng login thơng Google, Facebook, Twitter, Github… Điều có nghĩa bạn gọi đến API Hoặc ứng dụng di động lấy liệu thông qua API "pantone_value": "15-4020" }, { "id": 2, "name": "fuchsia rose", "year": 2001, "color": "#C74375", "pantone_value": "17-2031" }, { "id": 3, "name": "true red", "year": 2002, "color": "#BF1932", "pantone_value": "19-1664" }, { "id": 4, "name": "aqua sky", "year": 2003, "color": "#7BC4C4", "pantone_value": "14-4811" }, { "id": 5, "name": "tigerlily", "year": 2004, "color": "#E2583E", "pantone_value": "17-1456" }, { "id": 6, "name": "blue turquoise", "year": 2005, "color": "#53B0AE", "pantone_value": "15-5217" } ], "support": { "url": "https://reqres.in/#support-heading", "text": "To keep ReqRes free, contributions towards server costs are appreciated!" } } 5.1.5 Single URL: https://reqres.in/api/unknow/2 Method: GET Params: None Request: /api/unknow/2 Response: 200 Ok Size: 1.04 Kb Sample response: { "data": { "id": 2, "name": "fuchsia rose", "year": 2001, "color": "#C74375", "pantone_value": "17-2031" }, "support": { "url": "https://reqres.in/#support-heading", "text": "To keep ReqRes free, contributions towards server costs are appreciated!" } } 5.1.6 Single NOT FOUND URL: https://reqres.in/api/unknow/23 Method: GET Params: None Request: api/unknow/23 Response: 404 Not found Size: 806 B Sample response: {} 5.1.7 Create URL: https://reqres.in/api/users?name=morpheus&job=leader Method: POST Params: { "name": "morpheus", "job": "leader" } Request: api/users Response: 201 Create Size: 807 B Sample response: { "name": "morpheus", "job": "leader", "id": "504", "createdAt": "2020-11-29T02:38:18.999Z" } 5.1.8 Update URL: https://reqres.in/api/users/2?name=morpheus&job=zion resident Method: PUT Params: { "name": "morpheus", "job": "zion resident" } Request: api/users/2 Response: 200 Ok Size: 804 B Sample response: { "name": "morpheus", "job": "zion resident", "updatedAt": "2020-11-29T02:41:42.916Z" } 5.1.9 Update URL: https://reqres.in/api/users/2?name=morpheus&job=zion resident Method: PATCH Params: { "name": "morpheus", "job": "zion resident" } Request: api/users/2 Response: 200 Ok Size: 795 B Sample response: { "name": "morpheus", "job": "zion resident", "updatedAt": "2020-11-29T02:45:23.549Z" } 5.1.10 Delete URL: https://reqres.in/api/users/2 Method: DELETE Params: None Request: api/users/2 Response: 204 No content Size: 710 B Sample response: 5.1.11 Register – successful URL: https://reqres.in/api/register Method: POST Params: { "email": "eve.holt@reqres.in", "password": "pistol" } Request: /api/register Response: 200 Ok Size: 785 B Sample response: { "id": 4, "token": "QpwL5tke4Pnpja7X4" } 5.1.12 Register – unsuccessful URL: https://reqres.in/api/register Method: POST Params: { "email": " sydney@fife", } Request: /api/register Response: 400 Bad request Size: 785 B Sample response: { "error": "Missing password" } 5.1.13 Login - successful URL: https://reqres.in/api/login Method: POST Params: { "email": "eve.holt@reqres.in", "password": "cityslicka" } Request: /api/login Response: 200 Ok Size: 780 B Sample response: { "token": "QpwL5tke4Pnpja7X4" } 5.1.14 Login – unsuccessful URL: https://reqres.in/api/login Method: POST Params: { "email": "peter@klaven" } Request: /api/login Response: 400 Bad request Size: 792 B Sample response: { "error": "Missing password" } 5.1.15 Delayed response URL: https://reqres.in/api/users?delay=3 Method: GET Params: None Request: /api/users?delay=3 Size: 1.74 Kb Response: 200 Ok Sample response: { "page": 1, "per_page": 6, "total": 12, "total_pages": 2, "data": [ { "id": 1, "email": "george.bluth@reqres.in", "first_name": "George", "last_name": "Bluth", "avatar": "https://reqres.in/img/faces/1-image.jpg" }, { "id": 2, "email": "janet.weaver@reqres.in", "first_name": "Janet", "last_name": "Weaver", "avatar": "https://reqres.in/img/faces/2-image.jpg" }, { "id": 3, "email": "emma.wong@reqres.in", "first_name": "Emma", "last_name": "Wong", "avatar": "https://reqres.in/img/faces/3-image.jpg" }, { "id": 4, "email": "eve.holt@reqres.in", "first_name": "Eve", "last_name": "Holt", "avatar": "https://reqres.in/img/faces/4-image.jpg" }, { "id": 5, "email": "charles.morris@reqres.in", "first_name": "Charles", "last_name": "Morris", "avatar": "https://reqres.in/img/faces/5-image.jpg" }, { "id": 6, "email": "tracey.ramos@reqres.in", "first_name": "Tracey", "last_name": "Ramos", "avatar": "https://reqres.in/img/faces/6-image.jpg" } ], "support": { "url": "https://reqres.in/#support-heading", "text": "To keep ReqRes free, contributions towards server costs are appreciated!" } } 5.2 Kết test API URL: https://reqres.in 5.1 Bảng kết kiểm thử API ST T API LIST USER Request Url: /api/users? page=2 SINGLE USER Response R u Size: 1.79 Size: 1.79 Status: 200 OK Status: 200 OK Response:applicatio n/json Response:applicatio n/json Url: /api/users/2 Size: 1.1 Size: 1.1 Method: GET Status: 200 OK Status: 200 OK Response:applicatio n/json Response:applicatio n/json Size: 820 B Size: 820 B Method: GET Sample response SINGLE Url: /api/users/23 USER NOT Method: GET FOUND Status: found 404 not Status: found Response:applicatio n/json P P 404 P not Response:applicatio n/json LIST SINGLE Url: /api/unknow Size: 1.51 Kb Size: 1.5 Kb Method: GET Status: 200 OK Status: 200 OK Response:applicatio n/json Response:applicatio n/json Url: /api/unknow/2 Size: 1.04 Kb Size: 1.05 Kb Method: GET Status: 200 OK Status: 200 OK Response:applicatio n/json Response:applicatio n/json Size: 806 B Size: 810 B SINGLE Url: api/unknow/23 NOT FOUND CREATE Status: found 404 not Status: found 404 P P P not Response:applicatio n/json Response:applicatio n/json Url: api/users Size: 807 B Size: 840 B Method: POST Status: 201 create Status: 201 create Params: Response:applicatio n/json Response:applicatio n/json Url: api/users/2 Size: 804 B Size: 812 B Method: PUT Status: 200 Ok Status: 200 Ok {"name": "morpheus", P "job": "leader"} UPDATE P Params: Response:applicatio n/json Response:applicatio n/json Url: api/users/2 Size: 795 B Size: 797 B Method: PATCH Status: 200 Ok Status: 200 Ok Params: Response:applicatio n/json Response:applicatio n/json Url: api/users/2 Size: 710 B Size: 716 B Method: DELETE Status: content {"name": "morpheus", "job": "zion resident"} UPDATE P {"name": "morpheus", "job": "zion resident"} 10 11 DELETE REGISTER SUCCESSFU L Url: /api/register Method: POST Params: {"email": "eve.holt@reqres.in", "password": "pistol"} 204 no Status: content 204 P no Response:applicatio n/json Response:applicatio n/json Size: 785 B Size: 789 B Status: 200 Ok Status: 200 Ok Response:applicatio n/json Response:applicatio n/json P 12 REGISTERUNSUCCESS FUL Url: /api/register Method: POST Params: 13 LOGIN SUCCESSFU L Size: 785 B Status: 400 Bad request Size: 788 B Status: 400 Bad request Response:applicatio n/json {"email":"sydney@fife"} Response:applicatio n/json Url: /api/login Size: 780 B Size: 780 B Method: POST Status: 200 Ok Status: 200 Ok Params: Response:applicatio n/json Response:applicatio n/json {"email": "eve.holt@reqres.in", P P "password":"cityslicka" } 14 LOGIN UNSUCCESS FUL Url: /api/login Method: POST Params: {"email":"peter@klaven" } 15 DELAYED RESPONSE Url: /api/users? delay=3 Method: GET Size: 792B Status: 400 Bad request Response:applicatio n/json Size: 792B P Status: 400 Bad request Response:applicatio n/json Size: 1.74 Kb Size: 1.74 Kb Status: 200 Ok Status: 200 Ok Response:applicatio n/json Response:applicatio n/json P CHƯƠNG 6: BẢN PHÂN CÔNG NHIỆM VỤ, KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Bảng phần công nhiệm vụ Kết luận hướng phát triển Kiểm thử phần mềm hoạt động quan trọng nhằm đảm bảo chất lượng phần mềm.Việc nghiên cứu lựa chọn kỹ thuật chiến lược kiểm thử phần mềm phù hợp giúp cho việc kiểm thử có hiệu quả,giảm chi phí thời gian.Việc xây dựng tài liệu kiểm thử phần mềm hợp lý giúp cho việc tổ chức,quản lý thực kiểm thử có hiệu Trong thời điểm tại,khi mà nhu cầu phần mềm ngày nhiều phức tạp yêu cầu tối ưu kiểm thử trước đưa đến tay người sử dụng đòi hoit cấp thiết hơn.Việc tự động hóa phần quy trình kiểm thử giúp hỗ trợ tester nâng cao suất chất lượng dự án.Tuy nhiên,chi phí cho phần mềm kiểm thử thuong mại thường cao,đơi làm cho dự án khơng có khả sinh lời.Vì chộn lựa cơng cụ kiểm tra tự động mã nguồn mở lựa chọn sáng suốt.Một lựa chọn Postman Kết đạt được: • Nắm tổng quan kiểm thử phần mềm,kỹ thuật kiểm thử phần mềm vấn đề liên quan • Tìm hiểu nắm phương pháp thiết kế testcase kiểm thử phần mềm áp dụng vào tốn cụ thể • Tìm hiểu pha quan trọng khơng thể thiếu q trình phát triển phần mềm, kiểm thử.Đặc biệt sâu kiểm thử API • Tìm hiểu cách xây dựng ca kiểm thử,xây dựng tool kiểm thử API • Sử dụng thành công chức cách thức hoạt động công cụ kiểm thử Postman phục vụ cho việc kiểm thử API Hướng phát triển: Khi nghiên cứu kiểm thử phần mềm nói chung cơng cụ Postman nói riêng,chúng em hiểu kiểm thử quan trọng quy trình sản xuất phần mềm,đảm bảo chất lượng phần mềm.Sự áp dụng với kiến thức tìm hiểu dừng lại tốn nhỏ.Hướng phát triển đề tài là: • Thực kiểm thử mơ hình tốn phần mềm rộng hơn,phức tạp • Tìm hiểu thêm công cụ kiểm thử tự động,kiểm thử tải,kiểm thử sở liệu Chúng em mong nhận góp ý Thầy bạn để có thêm kinh nghiệm kiến thứ để nội dung đề tài nghiên cứu hoàn thiện TÀI LIỆU THAM KHẢO [1] Testerviet, "ITPlus," ITPlus, 15 05 2015 [Online] Available: http://itplus-academy.edu.vn/Kiem-thu-phan-mem-la-lam-gi.html [2] ADMIN, "QA Training," QR-SOLUTION COMPANY, 8 2019 [Online] Available: http://qr-solutions.com.vn/2019/08/08/tai-sao-can-coapi-testing-cho-cac-thong-tich-hop-voi-nhau/ [3] G Nguyen, in API TESTING VỚI POSTMAN, 12, 2018, p 12 ... bắt đầu kiểm thử API? Thiết lập môi trường kiểm thử API Thiết lập môi trường kiểm thử API với tập hợp tham số cần thiết API Cấu hình sở liệu máy chủ theo yêu cầu ứng dụng Thử thực gọi API để đảm... Ứng dụng sau diễn giải liệu trình bày thơng tin bạn muốn theo cách đọc Hình Tổng quan API 2.1.2 API thường ứng dụng vào đâu? Web API: hệ thống API sử dụng hệ thống website Hầu hết website ứng dụng. .. tiến hành kiểm thử Xác định phạm vi yêu cầu kiểm thử Đặt câu hỏi liên quan đến API để xác định phạm vi u cầu kiểm thử Ví dụ: • Những môi trường nên sử dụng API nào? • Độ ưu tiên kiểm thuer API? •

Ngày đăng: 22/12/2021, 10:17

Mục lục

    1.1 Protocol dùng trong Restful API

    HTTP hoạt động như thế nào?

    1.2 Định dạng dữ liệu JSON và XML

    a Định dạng JSON

    d. Định dạng dữ liệu được sử dụng thế nào trong HTTP

    2.1 Tổng quan về API

    2.1.2 API thường ứng dụng vào đâu?

    2.1.3 Web API là gì?

    2.1.4 Những điểm nổi bật của Web API

    2.1.5 Web API hoạt động như thế nào?

Tài liệu cùng người dùng

Tài liệu liên quan