sử dụng postman để test tự động cho nhiều api



  • 1. Postman là gì?

    Bạn cần test giá trị json trả về của một API? Bạn cần test các trường hợp trả về của API đó một cách nhanh chóng?
    Postman chính là một công cụ cần thiết giúp cho bạn làm điều đó một cách dễ dàng. Vậy postman là gì?
    Postman là một App Extensions, cho phép làm việc với các API, nhất là REST, giúp ích rất nhiều cho việc testing. Hỗ trợ tất cả các phương thức HTTP (GET, POST, PUT, DELETE, OPTIONS, HEAD ...).

    2.Test postman tự động cho nhiều api chỉ bằng click runner

    Yêu cầu:
    Chúng ta có 2 table: Library và Book, quan hệ 1.n, và spec như sau:

    • Bạn có 1 api để create một Library: Post: url/libraries
    • Từ library vừa tạo, bạn tạo 1 book: Post: url/libraries/{library_id}/books
      Thực hiện:
      Dùng postman để test tự động cho 2 api này (post man sẽ thực hiện từng bước và trả về giá trị mong muốn đối với từng test case).

    Tạo model cho 2 bảng trên

    
       class CreateLibraries < ActiveRecord::Migration[5.0]
          def change
            create_table :libraries do |t|
              t.string :name
    
              t.timestamps
            end
          end
        end
    
       
    
      class CreateBooks < ActiveRecord::Migration[5.0]
          def change
            create_table :books do |t|
              t.string :library_id
              t.string :name
        
              t.timestamps
            end
          end
        end
       
    • Thiết lập quan hệ 1.n trong model
    
        #model/library.rb
     class Book < ApplicationRecord
          belongs_to :library
    end
        #model/library.rb
    class Library < ApplicationRecord
          has_many :books
    end
    
       
    • config routes
    
       resources :libraries do
         resources :books
      end
       

    Tạo controller

    
           #controllers/books_controller.rb
     class BooksController < ApplicationController
      def create
        library = Library.find_by(id: params[:library_id])
        return 404 unless library.present?
        book = Book.new(library_id: library.id, name: params[:name])
        if book.save
          render json: { name: book.name }, status: 201
        end
      end
    end
            #controllers/libraries_controller.rb
    class LibrariesController < ApplicationController
      def create
        library = Library.new name: params[:name]
        if library.save
          render json: { id: library.id, name: library.name }, status: 201
        end
      end
    end
       

    Vậy là bước chuẩn bị api để chúng ta test đã xong, giờ chúng ta sẽ sử dụng postman để test

    Đầu tiên, chúng ta mở postman và tạo collection
    tạo thư mục trong collection này
    tạo môi trường test
    Môi trường test này giúp chúng ta có thể tạo ra các biến môi trường, điều này có ý nghĩa quan trọng đối việc api thứ 2 có thể sử dụng biến
    {library_id} mà biến này thì được tạo ra ở api thứ nhất và thay đổi theo từng lần gọi của chúng ta.

    add request vào thư mục test trong collection

    Chúng ta sẽ có 2 request cần test như sau
    Ta thấy ở trên có dòng lệnh

    
     postman.setEnvironmentVariable("library_id", JSON.parse(responseBody).id);
     

    đây là phần set biến môi trường trong môi trường test này, điều này có nghĩa là mọi request đều có thể dùng biến {library_id} bằng cách gọi
    {{library_id}}.

    
     tests["Status code"] = responseCode.code == 201;
     

    câu lệnh này là chúng ta sẽ so sánh status trả về của request với 201

    Request 2:

    Chúng ta tiến hành chạy test tự động đối với collection này

    click vào runner của postman sẽ hiện ra cửa sổ mới, config như trên hình
    Sau đó Start Test

    Và đây là kết quả, chúng ta có 2 test case passed và 0 failed. Chúng ta có thể tạo ra các bước khác, với các test case khác và chạy test tự động như trên. Export file json đối với collection và môi trường test để có thể các thành viên khác trong team cũng có thể sử dụng.

    3. Kết Luận

    Postman là công cụ mạnh hỗ trợ rất nhiều cho việc testing, một công việc không thể thiếu trước khi đưa ra sản phẩm của minh. hi vọng qua bài viết này, các bạn có cái nhìn sâu hơn về nó, và ứng dung hiệu quả trong công việc.
    Nguồn: Viblo



  • Mình có thắc mắc muốn hỏi:
    Mình được bên A cấp API. Mình có thể tạo ra hệ thống, hay web để có thể cho nhiều người khác xem kết quả của API của mình được không
    A cấp API cho B
    B tạo mã cho C, D, E
    C, D, E đăng nhập vào xem kết quả của C, D, E theo mã cá nhân của họ


Hãy đăng nhập để trả lời
 

Có vẻ như bạn đã mất kết nối tới LaptrinhX, vui lòng đợi một lúc để chúng tôi thử kết nối lại.