Ở phần chiến lược vọc phá spiderum thông qua Manual Tesing lần trước mình đã có đưa ra cho các bạn một số lỗi nho nhỏ. Tuy nhiên đó không phải mục đích thật sự của mình với loạt bài viết này.
Ở đây mình muốn kiểm thử hiệu suất trước tiên mình phải trải qua bước test api trước, vì suy cho cùng mỗi bước trong kịch bản kiểm thử hiệu suất là giả lập người dùng để call api tới server thay cho những thao tác trên trình duyệt người dùng.
Bắt đâu nhé! Mình sẽ đan xem lý thuyết cùng các bước thông qua hình minh hoạ nhé!
Thiết lập môi trường test API
API testing khác với các loại kiểm thử phần mềm khác vì GUI không khả dụng.
Tuy nhiên, bạn được yêu cầu thiết lập môi trường ban đầu gọi API với một bộ tham số bắt buộc và cuối cùng là kiểm tra kết quả.
Do đó, thiết lập môi trường thử nghiệm API testing khá phức tạp. Cơ sở dữ liệu và máy chủ nên được cấu hình theo yêu cầu ứng dụng.
Sau khi cài đặt xong, Hàm API sẽ được gọi để kiểm tra xem API đó có hoạt động không.
Các loại đầu ra của API
Đầu ra của API có thể là:
- Bất kỳ loại dữ liệu nào
- Trạng thái (Pass hoặc Fail)
- Gọi một API function khác.
Test case trong API testing dựa vào:
– Giá trị trả về dựa trên điều kiện đầu vào: tương đối dễ kiểm tra, vì đầu vào có thể được xác định và kết quả có thể được xác thực.
– Không trả về bất cứ điều gì: Khi không có giá trị trả về, một hành vi API trên hệ thống sẽ được kiểm tra
– Kích hoạt một số API / Event / Interupt: Nếu đầu ra của API kích hoạt một số event hoặc gián đoạn, thì những listerner của event hoặc interupt đó sẽ được theo dõi.
– 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 đến hệ thống và cần được xác thực.
– Sửa đổi một số tài nguyên: Nếu lệnh gọi API sửa đổi một số tài nguyên thì nó phải được xác thực bằng cách truy cập các tài nguyên tương ứng.
Tìm API thông qua UI trên trình duyệt
Do mình là một người bên ngoài (bên thứ 3 kiểm thử) nên mình không hề biết trước các API mà đội ngũ spiderum xây dựng trước đó. Đây chính là lý do mình có bước này. Đúng ra thì thường bộ API thì phải được đội phát triển cung cấp cho đội ngũ kiểm thử. Tuy nhiên bài viết chỉ mang tính chất giải thích cũng như giúp bạn đọc hiểu được quy trình kiểm thử là chính. Các bạn có thể tìm kiếm thêm trên các diễn đàn kiểm thử chuyên nghiệp nhé!
Mình sẽ liệt kê chạy thử một vài API trên UI mà mình lấy được sau đó dùng postman để test nhé!
API và Postman là gì thì bạn có thể đọc lại bài viết trước nhé!
#4 Chiến lược kiểm thử hiệu năng Spiderum – Đừng vội! hãy hiểu bản chất vấn đề với API Testing Tiếp tục bài viết vọc phá spiderum nhé! Bài trước mình có nói sơ qua về chiến lược Manual Test Overview để nắm được kịch bản chức năng của spiderum trước khi đi vào kiểm thử hiệu suất của trang này. Tuy nhiên khoan hãy nghĩ điến chuyện kiểm thử hiệu suất vội, đơn giản là chúng ta phải hiểu được bản chất của một website là mô hình client-server. Người dùng sẽ thao tác trên trình duyệt web và gọi tới một máy chủ mang tên hosting quản lý server thông qua con số định danh IP loằng ngoằng và có cái tên vô cùng dễ nhớ chính là tên miền (domain) spiderum.com mà bạn đang thấy. Để hiểu thêm bạn có thể tìm đọc bài dưới đây của mình nói về kiến trúc Server-Client nhé! http://blog.ntechdevelopers.com/client-server-architecture-kien-truc-client-server/ Được rồi hiểu đơn giản phía client chính là mấy ông hay gọi là Frontend sẽ gọi hay phát một tín hiệu gì đó tới server hay mấy ông gọi là Backend. Vậy cái trao đổi ở thông tin dữ liệu qua lại giữa cái tương thẳng vào mắt bạn hình ảnh nội dung này và cái nội dung hậu cần cong đít xử lý thuật toán nọ kia mang tên là API nhé! API là viết tắt của Application Programming Interface – phương thức trung gian kết nối các ứng dụng và thư viện khác nhau. Nó cung cấp khả năng truy xuất đến một tập các hàm hay dùng, từ đó có thể trao đổi dữ liệu giữa các ứng dụng. Để hiểu rõ hơn API là gì, hãy tưởng tượng bạn đang ngồi trong một nhà hàng, trước mặt bạn là menu để gọi thức ăn. Nhà bếp là một phần của “hệ thống”, nơi sẽ chuẩn bị những món ăn mà bạn gọi. Tuy nhiên, làm thế nào để nhà bếp biết được bạn muốn ăn món nào? Và làm sao để họ phân phối thức ăn đến bàn của bạn?Đây là lúc cần đến sự xuất hiện của người phục vụ, đóng vai trò như API.Người phục vụ (hay API) sẽ nhận yêu cầu từ bạn và truyền đạt với nhà bếp (hệ thống) những thứ cần làm. Sau đó người phục vụ sẽ phản hồi ngược lại cho bạn, trong trường hợp này, họ sẽ mang thức ăn sau khi nhà bếp hoàn thành đến tận bàn cho bạn. API testing là một loại kiểm thử phần mềm liên quan đến việc kiểm thử các giao diện lập trình ứng dụng (APIs) một cách trực tiếp và là một phần của kiểm thử tích hợp để xác định xem hệ thống có đáp ứng các yêu cầu về tính năng, độ tin cậy, hiệu suất và bảo mật. Đi từ tầng dưới kim tự tháp lên trên, chi phí liên quan đến việc tạo ra và duy trì các phương pháp kiểm thử, thời gian thực hiện kiểm thử, phạm vi kiểm thử sẽ tăng lên. Các kim tự tháp tự động (Automation pyramid) nói rằng bạn nên làm nhiều hơn nữa kiểm thử tự động thông qua Unit test và API hơn là kiểm thử dựa trên GUI. Vậy dùng gì để test Api đây? Vâng, Postman chính là một công cụ cho phép chúng ta thao tác với API, phổ biến nhất là REST. Postman hiện là một trong những công cụ phổ biến nhất được sử dụng trong thử nghiệm các API. Với Postman, ta có thể gọi Rest API mà không cần viết dòng code nào. Postman là môi trường phát triển API hoàn chỉnh duy nhất. Ngày nay, có khoảng 6 triệu nhà phát triển, và hơn 200 nghìn công ty sử dụng bộ công cụ tích hợp toàn diện này để hỗ trợ mọi giai đoạn của vòng đời API. Với Postman, bạn có thể thiết kế, mô phỏng, gỡ lỗi, kiểm tra, tài liệu, theo dõi và xuất bản tất cả các API của mình ở một nơi.Khi mới bắt đầu với postman, bạn sẽ cảm thấy hơi khó khăn trong cách sử dụng. Khi bạn đã làm chủ được postman rồi thì bạn sẽ thấy được việc gọi các Rest API (Google, Amazon, Facebook,…) sẽ trở nên dễ dàng hơn. Lý do sử dụng postman Sử dụng Collections (Bộ sưu tập) – Postman cho phép người dùng tạo bộ sưu tập cho các lệnh gọi API của họ. Mỗi bộ sưu tập có thể tạo các thư mục con và nhiều yêu cầu (request). Điều này giúp việc tổ chức các bộ thử nghiệm. Collaboration – Collections và environment có thể được import hoặc export giúp chia sẻ tệp dễ dàng. API Testing – Test trạng thái phản hồi HTTP. Gỡ lỗi – Bảng điều khiển Postman giúp kiểm tra dữ liệu nào đã được truy xuất giúp dễ dàng gỡ lỗi kiểm tra. Ưu điểm: - Cho phép gửi HTTP Request với các method GET, POST, PUT, DELETE.- Cho phép post dữ liệu dưới dạng form (key-value), text, json.- Hiện kết quả trả về dạng text, hình ảnh, XML, JSON.- Hỗ trợ authorization (Oauth1, 2).- Cho phép thay đổi header của các request. Việc sử dụng Postman rất đơn giản. Bạn chỉ cần chọn method, điền URL, thêm các thông tin cho body, header trong những trường hợp cần thiết, rồi nhấn SEND. Việc của bạn là đợi và Postman sẽ cho bạn kết quả trả về nó có hình thù như thế nào. Bạn hỏi tôi là tôi nói tôi kiểm thử hiệu suất (Performance tesing) cơ mà? Liên quan khỉ gì đến test APIHaha, có lý do cả đó. Bài viết sau sẽ rõ nhé!blog.ntechdevelopers.com
Cách lấy API từ UI
Đầu tiên hãy vào spiderum và cùng bật F12 lên nhé! (hoặc chuột phải chọn Inspect Element).


Bạn có thấy quen quen không? Bài viết cào dữ liệu từ trang web mình có đề cập tới rồi đó. Nhưng không bạn vào tab Network sau đó refresh lại trang thì bạn sẽ thấy những gì nó gọi tới server và lấy file cũng như dữ liệu lên. Hãy tìm đến API của chức năng trong tab này nhé. Như hình dưới là mình lấy được thông tin của API “getExternalInfo” gồm tab header (dùng cho input đầu vào của api), response (dùng để nhận kết quả đầu ra và validate kết quả), preview (dùng để phân tích cấu trúc dữ liệu sau khi nhận được). Lấy dữ liệu dùng để làm gì thì lại đọc bài viết trước của mình nhé!
Ở đây mình dùng dữ liệu để cho bước chuẩn bị dữ liệu chạy kiểm thử hiệu suất trong bài viết sau cơ :)))

Bạn có liên tưởng được điều gì đó đến những vấn đề lộ thông tin người dùng của facebook không?
Chính xác, đây là cách mà ai đó có thể biết được thông tin của bạn (các thông tin mà bạn vô tình để ở chế độ công khai mà chủ trang đưa ra.
Ở đây mình có thể dùng kỹ thuật này kết hợp với tool để cào dữ liệu tự động và có được tất cả các thông tin của thành viên trên diễn dàn từ họ tên, email, bài viết, số người theo dõi...
Ví dụ mình chưa hề đăng nhập website, mình có thể lấy tất cả email của tất cả các thành viên trong diễn đàn. Bạn hỏi tôi để làm gì ah, để spam mail chơi thôi, hoặc là tìm bồ :)))
Bài viết cũng hơi dài rồi! Bài viết sau mình sẽ liệt kê các api mà mình thu thập được và sử dụng postman để test nhé!

--
Ủng hộ mình tại blog cá nhân:
http://blog.ntechdevelopers.com