Nghiên cứu và ứng dụng công cụ postman trong kiểm thử web api

63 26 1
Nghiên cứu và ứng dụng công cụ 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

TRƯỜNG ĐẠI HỌC HỊA BÌNH KHOA CƠNG NGHỆ THƠNG TIN – ĐIỆN TỬ VIỄN THƠNG KHĨA LUẬN TỐT NGHIỆP NGHIÊN CỨU VÀ ỨNG DỤNG CÔNG CỤ POSTMAN TRONG KIỂM THỬ WEB API Giảng viên hướng dẫn : Ths Nguyễn Thị Vân Sinh viên thực : Vương Thị Thu Phương Lớp : 519CNT MSV : 519CNT024 Hà Nội, năm 2023 MỤC LỤC LỜI CẢM ƠN i LỜI CAM ĐOAN ii DANH MỤC HÌNH ẢNH iii DANH MỤC BẢNG BIỂU iv DANH MỤC VIẾT TẮT v LỜI NÓI ĐẦU vii MỞ ĐẦU 1 Mục đích nghiên cứu đề tài Tình hình nghiên cứu đề tài Tính cấp thiết, ý nghĩa khoa học thực tiễn đề tài Bố cục tổng quát khóa luận CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ API 1.1 Khái niệm API 1.2 Protocal restful API 1.3 Khái niệm web API 1.3.1 Định dạng liệu JSON 1.3.2 Định dạng liệu XML 1.4 Tìm hiểu API Testing 1.4.1 Khái niệm kiểm thử API 1.4.2 Mục đích việc kiểm thử API testing 1.4.3 Một số mã trạng thái HTTP hay gặp kiểm thử API CHƯƠNG 2: ỨNG DỤNG CÔNG CỤ POSTMAN TRONG KIỂM THỬ API 2.1 Giới thiệu công cụ Postman 2.2 Làm việc với Postman 2.2.1 Làm việc với request 2.2.2 Pre-script 10 2.2.3 Tests Script 11 2.2.4 Run collection 12 2.2.5 Eviroment 15 CHƯƠNG 3: THỰC NGHIỆM KIỂM THỬ API TRONG WEB “EDUQUIZ” 18 3.1 Giới thiệu web “Eduquiz” 18 3.2 Quy trình thực kiểm thử API 18 3.3 Thiết kế trường hợp kiểm thử (Testcase) 19 3.3.1 Chức đăng ký 19 3.3.2 Chức đăng nhập 23 3.4 Ứng dụng công cụ Postman kiểm thử API web “Eduquiz” 25 3.4.1 Chức đăng ký 25 3.4.2 Chức đăng nhập 37 3.4.3 Kiểm thử Performance with web “Eduquiz” 48 3.4.4 Đánh giá kết kiểm thử 51 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 52 Ưu nhược điểm test API công cụ Postman 52 a) Ưu điểm 52 b) Nhược điểm 52 Hướng phát triển 52 TÀI LIỆU THAM KHẢO 53 LỜI CẢM ƠN Để có thành học tập ngày hơm nay, ngồi nỗ lực phấn đấu khơng ngừng thân phần khơng nhỏ đóng góp nên thành cơng nhờ hướng dẫn, dạy dỗ thầy cô khoa Công nghệ thông tin & Điện tử viễn thông nói riêng trường Đại học Hịa Bình nói chung suốt gần năm năm em học tập nghiên cứu trường Lời đầu tiên, cho phép em gửi lời cảm ơn chân thành đến cô Nguyễn Thị Vân người hướng dẫn tận tình đưa dẫn hiệu trình em làm khóa luận Cơ bảo em nhiệt tình nghiêm túc để hồn thành khóa luận tốt nghiệp cách tốt Tiếp theo em xin chân thành cảm ơn Khoa Công Nghệ thông tin & Điện tử viễn thông tạo môi trường học tập tốt, giúp em hoàn thiện kĩ chuyên môn kỹ mềm Những kiến thức, kỹ mềm khơng giúp em hồn thành khóa luận mà cịn áp dụng vào sống, cơng việc tương lai Cuối em xin gửi lời cảm ơn tập thể 519CNT trao đổi, động viên khích lệ em học tập năm qua q trình thực khóa luận Trong q trình thực khóa luận, bên cạnh cố gắng hồn thành tốt cịn có sai sót khơng thể tránh khỏi Vì vậy, em mong nhận góp ý thầy bạn để khóa luận em hồn thiện Em xin chân thành cảm ơn! Hà Nội, ngày 03 tháng 07 năm 2023 Sinh viên Vương Thị Thu Phương i LỜI CAM ĐOAN Em xin cam đoan đề tài: "Nghiên cứu ứng dụng công cụ Postman kiểm thử web API" cơng trình nghiên cứu độc lập hướng dẫn giáo viên hướng dẫn: Nguyễn Thị Vân Đề tài, nội dung báo cáo sản phẩm mà em nỗ lực nghiên cứu trình học tập trường Kết trình bày báo cáo hồn tồn trung thực Em xin chịu hoàn toàn trách nhiệm, kỷ luật mơn nhà trường đề có vấn đề xảy Sinh viên Vương Thị Thu Phương ii DANH MỤC HÌNH ẢNH Hình 1: Tổng quan API Hình : Request Hình 3: Respone Hình 4: Web API Hình 5: Kim tự tháp tự động hóa Hình 6: Kết sau chạy request 10 Hình 7: Chạy request bình thường 10 Hình 8: Chạy request có Pre-request 11 Hình 9: Tạo tên biến ngẫu nhiên 11 Hình 10: Kết ta chạy request 11 Hình 11: Bố cục Request 12 Hình 12: Runner Collection 13 Hình 13: Runner Collection 13 Hình 14: Runner Collection 14 Hình 15: Runner Collection 15 Hình 16: Created Environments 15 Hình 17: Created Environments 16 Hình 18: Created Environments 16 Hình 19: Created Environments 17 Hình 20: Giao diện trang web Eduquiz 18 Hình 21: Test results với testcase_01 26 Hình 22: Send request “Đăng ký” với testcase_01 27 Hình 23: Test results với testcase_02 28 Hình 24: Send request “Đăng ký” với testcase_02 29 Hình 25: Test results với testcase_03 30 Hình 26: Send request “Đăng ký” với testcase_03 31 Hình 27: Test Results với testcase_04 32 Hình 28: Send request “Đăng ký” với testcase_04 33 Hình 29: Test results với testcase_05 34 Hình 30: Send request “Đăng ký” với testcase_05 35 Hình 31: Test results với testcase_06 36 Hình 32: Send request “Đăng ký” với testcase_06 37 Hình 33: Test results với testcase_01 38 Hình 34: Send Request thành công với testcase_01 39 Hình 35: Test results với testcase_01 40 Hình 36: Send Request thành cơng với testcase_02 41 Hình 37: Test results với testcase_03 42 Hình 38: Send Request thành cơng với testcase_03 43 Hình 39: Test results với testcase_04 44 Hình 40: Send Request thành công với testcase_04 44 Hình 41: Test results với testcase_05 46 Hình 42: Send request với testcase_05 46 iii Hình 43: Test results với testcase_06 48 Hình 44: Send request “Đăng nhập” thành công 48 Hình 45: Response time gửi 100 user vào request 49 Hình 46: Response time gửi 200 user vào request 50 DANH MỤC BẢNG BIỂU Bảng 1: Kịch đăng ký tài khoản 19 Bảng 2: Testcase chức “Đăng nhập” 23 Bảng 3: Kịch cho chức “Đăng nhập” 24 Bảng 4: Testcase cho chức đăng nhập 25 Bảng 5: Thống kê số performance sau gửi 100 user lên request 49 Bảng 6: Thống kê số performance sau gửi 200 user lên request 50 Bảng 7: Kết kiểm thử chức 51 iv DANH MỤC VIẾT TẮT Chi tiết Ý nghĩa API Application Programming Interface XML Extensible Markup Language JSON JavaScript Object Notation HTTP HyperText Transfer Protocol HTTPS HyperText Transfer Protocol Secure API giao diện cho phép ứng dụng giao tiếp với ứng dụng khác thông qua lệnh đơn giản cách lệnh gửi định dạng mà liệu truy xuất thơng qua API khác với API SOAP REST XML có chức truyền liệu mô tả nhiều loại liệu khác Tác dụng XML đơn giản hóa việc chia sẻ liệu tảng hệ thống kết nối thông qua mạng Internet kiểu định dạng liệu tuân theo quy luật định mà hầu hết ngơn ngữ lập trình đọc JSON tiêu chuẩn mở để trao đổi liệu web giao thức truyền tải siêu văn sử dụng www dùng để truyền tải liệu Web server đến trình duyệt Web ngược lại Giao thức sử dụng cổng 80 (port 80) chủ yếu giao thức Http có sử dụng thêm SSL (Secure Sockets Layer) để mã hóa liệu lúc truyền tải Từ viết tắt v SOAP Simple Object Access Protocol XMPP Extensible Messaging and Presence Protocol liệu nhầm gia tăng thêm tính an tồn cho việc truyền liệu Web server trình duyệt Web Giao thức Https sử dụng cổng 433 để truyền liệu Đây giao thức nhắn tin cho phép chương trình chạy trực tiếp nhiều hệ điều hành khác (Linux Windows,…) giao tiếp với qua Ngôn ngữ XML Giao thức HTTP giao thức nhắn tin tức thời thiết lập tốt mà hàng triệu người sử dụng, cho dù họ có biết hay khơng Các ứng dụng nhắn tin phổ biến khác bắt đầu dạng ứng dụng trò chuyện XMPP trước biến thành thứ độc quyền vi LỜI NĨI ĐẦU Trong năm gần với phát triển mạnh công nghệ thông tin, ngành công nghệ phần mềm chiếm vị trí quan trọng xu hướng phát triển kinh tế công nghiệp hóa, đại hóa nước ta Cùng với phát triển chương trình phần mềm đời ngày nhiều, đòi hỏi nhà sản suất phần mềm phải có phương pháp để nâng cao chất lượng sản phẩm tối ưu hiệu suất làm việc để cạnh tranh Vì kiểm thử phần mềm ngày đóng vai trị quan trọng ngành công nghiệp phát triển phần mềm không Việt Nam mà giới Kiểm thử phần mềm khâu quan trọng trình phát triển phần mềm Kiểm thử phần mềm để kiểm tra phần mềm có với đặc tả thiết kế hệ thống khơng, có đáp ứng u cầu người dùng khơng, có lỗi lập trình khơng, hoạt động có hiệu không,…Như vậy, kiểm thử phần mềm để đáp ứng yêu cầu người dùng, phát triển lỗi để từ nâng cao chất lượng phần mềm Vậy làm để kiểm tra dự án phần mềm ta chạy ổn định, đạt tính hiệu cao, lại tiết kiệm thời gian kinh phí q trình kiểm thử điều thiết yếu nhà kiểm thử Vì vậy, với mong muốn có nhìn xác thực, rõ ràng quy trình kiểm thử phần mềm, đảm bảo chất lượng phần mềm tiếp cận với công cụ hỗ trợ kiểm thử, giải phần vấn đề tiết kiệm thời gian, kinh phí việc tìm kiếm lỗi, quản lý lỗi tiến hành kiểm thử; đồng thời rèn kỹ làm việc, tạo tiền đề định hướng cho tương lai sau trường Được đồng ý Th.S Nguyễn Thị Vân Khoa Công nghệ thông tin Điện tử viễn thông em chọn đề tài “Nghiên cứu ứng dụng cơng cụ Postman vào kiểm thử web API” vii Hình 34: Send Request thành công với testcase_01 b) Testcase_02: Nhập username, nhập sai password ngược lại ❖ Request to URL: https://api-dev.eduquiz.vn/auth/api/v1/login ❖ Method: POST ❖ Body: { "username": "postman", "password": "123@123" } ❖ Prequest – Script: Khơng có ❖ Tests: //Set biến token evironments var jsonData = JSON.parse(responseBody); pm.environment.set("token", jsonData.access_token); //kiểm tra trạng thái status trả mong muốn khô ng pm.test("200 status", function () { pm.response.to.have.status(200); }); //Kiểm tra giá trị responseTime trả có mong đợ i pm.test("Response time", function () { pm.expect(pm.response.responseTime).to.be.below(400); }); 39 //Kiểm tra biến mơi trường có giá trị hay không pm.test("environment to be production", function () { pm.expect(pm.environment.get("token")).to.equal (pm.variables.get("token")); }); ❖ Response: Status code: 500 Internal server error Time: 2.17s Size: 13.19KB Test Results: Hình 35: Test results với testcase_01 Body: 40 Hình 36: Send Request thành công với testcase_02 c) Testcase_03: Nhập username đúng, để trống password ngược lại ❖ Request to URL: https://api-dev.eduquiz.vn/auth/api/v1/login ❖ Method: POST ❖ Body: { "username": "postman", "password": ""} ❖ Prequest – Script: Khơng có ❖ Tests: //Set biến token evironments var jsonData = JSON.parse(responseBody); pm.environment.set("token", jsonData.access_token); //kiểm tra trạng thái status trả mong muốn kh ông pm.test("200 status", function () { pm.response.to.have.status(200); }); //Kiểm tra giá trị responseTime trả có mong đ ợi pm.test("Response time", function () { 41 pm.expect(pm.response.responseTime).to.be.below(400) ; }); //Kiểm tra biến mơi trường có giá trị hay không pm.test("environment to be production", function () { pm.expect(pm.environment.get("token")).to.equal (pm.variables.get("token")); }); ❖ Response: Status code: 200 OK Time: 332 ms Size: 400B Test Results: Hình 37: Test results với testcase_03 Body: { "message": "Mật bắt buộc.", "errors": { "password": [ "Mật bắt buộc."]}} 42 Hình 38: Send Request thành công với testcase_03 d) Testcase_04: Nhập space đầu cuối user name password ❖ Request to URL: https://api-dev.eduquiz.vn/auth/api/v1/login ❖ Method: POST ❖ Body: { "username": " postman ", "password": " eduquiz123@ " } ❖ Prequest – Script: Khơng có ❖ Tests: //Set biến token evironments var jsonData = JSON.parse(responseBody); pm.environment.set("token", jsonData.access_token); //kiểm tra trạng thái status trả mong muốn khôn g pm.test("200 status", function () { pm.response.to.have.status(200); }); //Kiểm tra giá trị responseTime trả có mong đợi pm.test("Response time", function () { pm.expect(pm.response.responseTime).to.be.below(400); }); //Kiểm tra biến môi trường có giá trị hay k hơng pm.test("environment to be production", function () { pm.expect(pm.environment.get("token")).to.equal 43 (pm.variables.get("token")); }); ❖ Response: Status code: 500 Internal server error Time: 2.05s Size: 13.19KB Test Results: Hình 39: Test results với testcase_04 Body: Hình 40: Send Request thành công với testcase_04 e) Testcase_05: Nhập username password không tồn hệ thống 44 ❖ Request to URL: https://api-dev.eduquiz.vn/auth/api/v1/login ❖ Method: POST ❖ Body: { "username": "hoa98", "password": "123@123" } ❖ Prequest – Script: Khơng có ❖ Tests: //Set biến token evironments var jsonData = JSON.parse(responseBody); pm.environment.set("token", jsonData.access_token); //kiểm tra trạng thái status trả mong muốn khô ng pm.test("200 status", function () { pm.response.to.have.status(200); }); //Kiểm tra giá trị responseTime trả có mong đợ i pm.test("Response time", function () { pm.expect(pm.response.responseTime).to.be.below(400); }); //Kiểm tra biến mơi trường có giá trị hay không pm.test("environment to be production", function () { pm.expect(pm.environment.get("token")).to.equal (pm.variables.get("token")); }); ❖ Response: Status code: 200 OK Time: 2.10s Size: 13.19KB Test Results: 45 Hình 41: Test results với testcase_05 Body: Hình 42: Send request với testcase_05 46 f) Testcase_06: Nhập username password ❖ Request to URL: https://api-dev.eduquiz.vn/auth/api/v1/login ❖ Method: POST ❖ Body: { "username": "postman", "password": "eduquiz123@" } ❖ Prequest – Script: Không có ❖ Tests: //Set biến token evironments var jsonData = JSON.parse(responseBody); pm.environment.set("token", jsonData.access_token); //kiểm tra trạng thái status trả mong muốn kh ông pm.test("200 status", function () { pm.response.to.have.status(200); }); //Kiểm tra giá trị responseTime trả có mong đ ợi pm.test("Response time", function () { pm.expect(pm.response.responseTime).to.be.below(400) ; }); //Kiểm tra biến mơi trường có giá trị hay không pm.test("environment to be production", function () { pm.expect(pm.environment.get("token")).to.equal (pm.variables.get("token")); }); ❖ Response: Status code: 200 OK Time: 391ms Size: 477B Test results: 47 Hình 43: Test results với testcase_06 Body: { "access_token": "23388|unOqo8QndenkGFcDs5N82f 7luSoxW64QfgtqUwHF", "token_type": "Bearer" } Hình 44: Send request “Đăng nhập” thành cơng 3.4.3 Kiểm thử Performance with web “Eduquiz” 100 user gửi request (API trang chủ) lên thời điểm: 48 Avera ge(Th ời gian Samples( phản tông số hồi yêu cầu ) trung bình )Đơn vị /ms URL (Std Dev )Độ lệch Error % (Phần trăm reque s fail) Throu ghput (Thôn g lượng : số reque 90% st sv Line xử lí /đơn vị thời gian) Đơn vị : /sec 95% 99% Line https://apidev.eduquiz.vnquiz/api/v1/public/mast 100 er-data/schools 4772 82.93 10.8 4876 4898 4961 https://apidev.eduquiz.vn/auth/api/v1/login 5003 2779.3 10.1 8752 9533 9669 11901 3897.9 4.3 17687 1810 18491 100 https://apidev.eduquiz.vn/quiz/api/v1/user/exams 100 /share-with-me Bảng 5: Thống kê số performance sau gửi 100 user lên request  Reponse Time: Hình 45: Response time gửi 100 user vào request 200 user gửi request (API trang chủ) lên thời điểm: 49 Averag e(Thời gian Samples phản (tông số (Std Dev hồi yêu cầu )Độ lệch trung ) bình )Đơn vị /ms URL Error % (Phần trăm reque s fail) Throu ghput (Thôn g lượng : số reque 90% 95% 99 st sv Line Line % xử lí /đơn vị thời gian) Đơn vị : /sec https://apidev.eduquiz.vnquiz/api/v1/public/ 200 master-data/schools 10280 449648 9.0 10837 1114 114 13 https://apidev.eduquiz.vn/auth/api/v1/login 200 10210 5561.42 9.0 17691 1884 195 52 https://apidev.eduquiz.vn/quiz/api/v1/user/ex 200 ams/share-with-me 25360 8.894.880 494.743.87 0 3.9 38053 3888 405 99 Bảng 6: Thống kê số performance sau gửi 200 user lên request  Reponse Time: Hình 46: Response time gửi 200 user vào request 50 3.4.4 Đánh giá kết kiểm thử Đánh giá tồn q trình kiểm thử tổng số 12 test case chức hệ thống: Chức Tổng số test Số test pass Số test failure Tỉ lệ thành công Đăng ký 06 04 02 87% Đăng nhập 06 04 02 97% Bảng 7: Kết kiểm thử chức  Trong đó: • Với hai chức Đăng ký, Đăng nhập thực thi đầy đủ test case Ngồi cịn số lỗi tồn như: Mặc dù Postman hỗ trợ nhiều tích hợp cung cấp số tính liên quan đến quản lý API, khơng đáp ứng yêu cầu phức tạp dự án lớn • Với hiệu trang website theo số thống kê trên, nhận thấy: ▪ 10-100 user truy cập => Web lag ,thời gian hiển thị thơng tin trung bình ổn ▪ >200 user =>Thời gian hiển thị thông tin đa số khoảng >9s ,có thể tới 30s (Đặc biệt trang bảng xếp hạng)  Vì cần bổ sung kiểm tra tính hợp lệ trường tạo thông báo lỗi cho trường • Với tính như: tính khả dụng, tính bảo mật khả tương thích hệ thống đáp ứng tốt • Các báo cáo kiểm thử, gợi ý tìm sửa lỗi ghi lại đầy đủ dạng báo cáo hỗ trợ Jija 51 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Ưu nhược điểm test API công cụ Postman a) Ưu điểm ➢ Hiểu rõ Web API: Tìm hiểu khái niệm nguyên tắc hoạt động Web API cách chúng tương tác với ứng dụng dịch vụ web khác ➢ Sử dụng Postman, bạn tạo kiểm thử API cách dễ dàng Bạn xây dựng yêu cầu HTTP GET, POST, PUT, DELETE gửi chúng đến API, sau nhận xem phản hồi từ API Điều giúp bạn hiểu rõ cách giao tiếp với API kiểm tra chúng cho tính ổn định đáng tin cậy ➢ Sử dụng Postman, bạn kiểm tra gỡ lỗi API cách chi tiết Bạn xem thông tin phản hồi, kiểm tra mã trạng thái, kiểm tra liệu trả xem log để xác định vấn đề xảy trình gọi API b) Nhược điểm ➢ Học phí thời gian: Việc nghiên cứu làm quen với Web API Postman đòi hỏi khoảng thời gian nỗ lực đáng kể Bạn cần tìm hiểu khái niệm bản, nguyên tắc hoạt động, cú pháp API Ngoài ra, bạn cần thực hành áp dụng kiến thức học để có thành thạo ➢ Sự phụ thuộc vào tài liệu API bên thứ ba: Khi làm việc với API bên thứ ba, bạn phải dựa vào tài liệu cung cấp từ nhà cung cấp API Đôi khi, tài liệu không đầy đủ, khơng cập nhật thường xun, điều tạo khó khăn q trình tìm hiểu sử dụng API Hướng phát triển ➢ Trong thời gian tới, tiếp tục phát triển thêm test case mới, bao quát cho tính để khắc phục nhược điểm, hạn chế ➢ Nghiên cứu thêm tính nâng cao Postman, ví dụ như: Flow Postman, Sử dụng CI/CD tự động hóa API testting, Automation with Postman 52 TÀI LIỆU THAM KHẢO [1] Document API: https://learning.postman.com/docs/publishing-yourapi/documenting-your-api/ [2] Postman Learning Center: https://learning.postman.com/docs [3] An Introduction to APIs - Brian Cooksey: https://zapier.com/learn/apis/ [4] Tìm hiểu test API: https://giangtester.com/tong-hop-cac-post-ve-api-testing [5] Hướng dẫn sữ dụng Postman test API: https://viblo.asia/p/huong-dan-su-dungpostman-cho-test-api-aWj53Lb1K6m [6] Testcase API: https://www.slideshare.net/pavan5780/api-test-cases [7] Performance API testig with Postman: https://www.linkedin.com/pulse/apiperformance-testing-postman-canary-md-salekin-newaz 53

Ngày đăng: 31/08/2023, 11:07

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

Tài liệu liên quan