Kiểm traMace. Bắt đầu nhanh

Kiểm traMace. Bắt đầu nhanh

Chào mọi người. Chúng tôi đang dần dần thoát ra khỏi bóng tối và tiếp tục loạt bài viết về sản phẩm của mình. Sau đó Trước đánh giá bài viết, chúng tôi đã nhận được rất nhiều phản hồi (chủ yếu là tích cực), các đề xuất và báo cáo lỗi. Hôm nay chúng tôi sẽ hiển thị TestMace đang hoạt động và bạn sẽ có thể đánh giá cao một số tính năng của ứng dụng của chúng tôi. Để hiểu rõ hơn, tôi khuyên bạn nên tham khảo tài liệu của chúng tôi tại http://docs-ru.testmace.com. Vì vậy, chúng ta hãy đi!

Cài đặt

Hãy bắt đầu với sự tầm thường. Ứng dụng này có sẵn và thực sự được thử nghiệm trên ba nền tảng - Linux, Windows, MacOS. Bạn có thể tải xuống trình cài đặt cho hệ điều hành mà bạn quan tâm từ trang web của chúng tôi. Đối với người dùng Linux có thể cài đặt gói chụp nhanh. Chúng tôi thực sự hy vọng rằng Microsoft Store và App Store sẽ sớm tiếp cận được nó (Có cần thiết không? Bạn nghĩ sao?).

Kịch bản thử nghiệm

Chúng tôi đã chọn kịch bản tiêu chuẩn sau đây làm đối tượng thử nghiệm:

  • Đăng nhập: người dùng - quản trị viên, mật khẩu - mật khẩu
  • thêm một mục mới
  • Hãy kiểm tra xem bản ghi đã được thêm chính xác chưa

Chúng tôi sẽ thử nghiệm trên https://testmace-quick-start.herokuapp.com/. Điều này là bình thường máy chủ json, hoàn hảo để thử nghiệm các ứng dụng như vậy. Chúng tôi vừa thêm ủy quyền bằng mã thông báo cho tất cả các tuyến máy chủ json và tạo phương thức đăng nhập để nhận mã thông báo này. Chúng tôi sẽ di chuyển dần dần, dần dần cải thiện dự án của mình.

Tạo một dự án và cố gắng tạo một thực thể mà không được phép

Đầu tiên, hãy tạo một dự án mới (Tập tin->Dự án mới). Nếu bạn khởi chạy ứng dụng lần đầu tiên, một dự án mới sẽ tự động mở ra. Trước tiên, chúng ta hãy thử đưa ra yêu cầu tạo bản ghi mới (trong trường hợp việc tạo bản ghi có sẵn mà không được phép). Chọn các mục từ menu ngữ cảnh của nút Dự án Thêm nút -> Bước yêu cầu. Đặt tên nút thành tạo-bài. Kết quả là một nút mới sẽ được tạo trong cây và một tab dành cho nút này sẽ mở ra. Hãy đặt các tham số yêu cầu sau:

Kiểm traMace. Bắt đầu nhanh

Tuy nhiên, nếu chúng tôi cố gắng thực hiện yêu cầu, máy chủ sẽ trả về mã 401 và nếu không được phép, chúng tôi sẽ không nhận được bất kỳ thứ gì trên máy chủ này. Vâng, nói chung, như mong đợi).

Thêm yêu cầu ủy quyền

Như đã nói, chúng tôi có điểm cuối POST /login, lấy json làm nội dung yêu cầu có dạng: {"username": "<username>", "password": "<password>"}Đâu username и password (một lần nữa, từ đoạn giới thiệu ở trên) có ý nghĩa admin и password tương ứng. Đáp lại, điểm cuối này trả về json như {"token": "<token>"}. Chúng tôi sẽ sử dụng nó để ủy quyền. Hãy tạo ra Bước yêu cầu nút có tên đăng nhập, sẽ đóng vai trò là tổ tiên Dự án nút Sử dụng thao tác kéo và thả, di chuyển một nút nhất định trên cây lên cao hơn nút đó tạo-bài. Hãy đặt các tham số sau cho yêu cầu mới được tạo:

Hãy thực hiện yêu cầu và nhận mã thứ hai trăm cùng với mã thông báo trong phản hồi. Một cái gì đó như thế này:

Kiểm traMace. Bắt đầu nhanh

Tái cấu trúc: loại bỏ trùng lặp tên miền

Cho đến nay các yêu cầu không được liên kết thành một tập lệnh duy nhất. Nhưng đây không phải là nhược điểm duy nhất. Nếu quan sát kỹ, bạn sẽ nhận thấy rằng ít nhất tên miền bị trùng lặp trong cả hai yêu cầu. Không tốt. Đã đến lúc cấu trúc lại phần này của tập lệnh trong tương lai và các biến sẽ giúp chúng ta thực hiện việc này.

Đối với phép tính gần đúng đầu tiên, các biến đóng vai trò tương tự như trong các công cụ và ngôn ngữ lập trình tương tự khác - loại bỏ sự trùng lặp, tăng khả năng đọc, v.v. Bạn có thể đọc thêm về các biến trong tài liệu của chúng tôi. Trong trường hợp này, chúng ta sẽ cần biến người dùng.

Hãy xác định một biến ở cấp nút Dự án domain với ý nghĩa https://testmace-quick-start.herokuapp.com. Đối với điều này nó là cần thiết

  • Mở tab có nút này và nhấp vào biểu tượng máy tính ở trên cùng bên phải
  • bấm vào + THÊM BIẾN
  • Nhập tên và giá trị biến
    Trong trường hợp của chúng tôi, hộp thoại có biến được thêm sẽ trông như thế này:

Kiểm traMace. Bắt đầu nhanh

ĐƯỢC RỒI. Bây giờ, do tính kế thừa, chúng ta có thể sử dụng biến này ở con cháu ở bất kỳ cấp độ lồng nhau nào. Trong trường hợp của chúng tôi đây là những nút đăng nhập и tạo-bài. Để sử dụng một biến trong trường văn bản, bạn cần viết ${<variable_name>}. Ví dụ: url đăng nhập được chuyển đổi thành ${domain}/login, tương ứng cho tạo-bài url nút sẽ trông như thế nào ${domain}/posts.

Do đó, được hướng dẫn bởi nguyên tắc DRY, chúng tôi đã cải thiện được một chút tình huống.

Lưu mã thông báo vào một biến

Vì chúng ta đang nói về các biến, hãy mở rộng chủ đề này một chút. Hiện tại, trong trường hợp đăng nhập thành công, chúng tôi nhận được từ máy chủ mã thông báo ủy quyền mà chúng tôi sẽ cần trong các yêu cầu tiếp theo. Hãy lưu mã thông báo này vào một biến. Bởi vì giá trị của biến sẽ được xác định trong quá trình thực thi tập lệnh, chúng tôi sử dụng một cơ chế đặc biệt cho việc này - biến động.

Đầu tiên, hãy thực hiện một yêu cầu đăng nhập. Trong tab Đã phân tích cú pháp trả lời, di chuyển con trỏ qua mã thông báo và trong menu ngữ cảnh (được gọi bằng nút chuột phải hoặc bằng cách nhấp vào nút ...) chọn mục Gán cho biến. Một hộp thoại sẽ xuất hiện với các trường sau:

  • Đường dẫn - phần nào của câu trả lời được chọn (trong trường hợp của chúng tôi là body.token)
  • Giá trị hiện tại — giá trị nào nằm dọc theo Đường dẫn (trong trường hợp của chúng tôi đây là giá trị mã thông báo)
  • Tên biến - tên của biến trong đó Giá trị hiện tại sẽ được bảo tồn. Trong trường hợp của chúng tôi nó sẽ là token
  • Node - biến sẽ được tạo trong tổ tiên nào Tên biến. Hãy chọn Dự án

Hộp thoại hoàn thành trông như thế này:

Kiểm traMace. Bắt đầu nhanh

Bây giờ mỗi khi nút được thực thi đăng nhập biến động token sẽ được cập nhật với giá trị mới từ phản hồi. Và biến này sẽ được lưu trữ trong Dự án nút và nhờ tính kế thừa, sẽ có sẵn cho con cháu.

Để truy cập các biến động, bạn phải sử dụng biến tích hợp $dynamicVar. Ví dụ: để truy cập mã thông báo được lưu trữ, bạn cần gọi ${$dynamicVar.token}.

Chúng tôi chuyển mã thông báo ủy quyền vào các yêu cầu

Ở các bước trước, chúng tôi đã nhận được mã thông báo ủy quyền và tất cả những gì chúng tôi cần làm là thêm tiêu đề Authorization có ý nghĩa Bearer <tokenValue> trong tất cả các yêu cầu yêu cầu sự cho phép, bao gồm cả tạo-bài. Có nhiều hướng khác nhau để làm điều đó:

  1. Sao chép mã thông báo theo cách thủ công và thêm tiêu đề ủy quyền vào các yêu cầu quan tâm. Phương pháp này hoạt động nhưng việc sử dụng nó chỉ giới hạn ở những yêu cầu thuộc loại “được thực hiện và vứt đi”. Không phù hợp để thực thi lặp lại các tập lệnh
  2. Sử dụng chức năng ủy quyền.
  3. Để sử dụng tiêu đề mặc định

Sử dụng phương pháp thứ hai có vẻ hiển nhiên, nhưng trong bối cảnh của bài viết này, cách tiếp cận này... không thú vị. Thực ra: cơ chế ủy quyền cộng trừ quen thuộc với bạn từ các công cụ khác (ngay cả khi chúng tôi có những thứ như thừa kế ủy quyền) và không có khả năng đặt ra câu hỏi.

Một điều nữa là các tiêu đề mặc định! Tóm lại, tiêu đề mặc định là tiêu đề HTTP kế thừa được thêm vào yêu cầu theo mặc định trừ khi bị tắt rõ ràng. Ví dụ: bằng cách sử dụng chức năng này, bạn có thể triển khai ủy quyền tùy chỉnh hoặc đơn giản là loại bỏ sự trùng lặp trong tập lệnh. Hãy sử dụng tính năng này để chuyển mã thông báo trong tiêu đề.

Trước đây, chúng tôi đã thận trọng lưu mã thông báo vào một biến động $dynamicVar.token ở cấp độ nút Dự án. Tất cả những gì còn lại là làm như sau:

  1. Xác định tiêu đề mặc định Authorization với ý nghĩa Bearer ${$dynamicVar.token} ở cấp độ nút Dự án. Để thực hiện việc này, trong giao diện Project của nút bạn cần mở hộp thoại có tiêu đề mặc định (nút Headers ở góc trên bên phải) và thêm tiêu đề tương ứng. Hộp thoại chứa các giá trị được điền sẽ trông như thế này:
    Kiểm traMace. Bắt đầu nhanh
  2. Vô hiệu hóa tiêu đề này khỏi yêu cầu đăng nhập. Điều này có thể hiểu được: tại thời điểm đăng nhập, chúng tôi chưa có mã thông báo và chúng tôi sẽ cài đặt nó theo yêu cầu này. Vì vậy, trong giao diện đăng nhập của request ở tab Headers trong khu vực của Thừa hưởng bỏ chọn tiêu đề Ủy quyền.

Đó là tất cả. Bây giờ tiêu đề ủy quyền sẽ được thêm vào tất cả các yêu cầu là con của nút Dự án, ngoại trừ nút đăng nhập. Hóa ra ở giai đoạn này, chúng tôi đã có sẵn kịch bản và tất cả những gì chúng tôi phải làm là khởi chạy nó. Bạn có thể chạy tập lệnh bằng cách chọn chạy trong menu ngữ cảnh của nút Dự án.

Kiểm tra tính chính xác của việc tạo bài viết

Ở giai đoạn này, tập lệnh của chúng tôi có thể đăng nhập và sử dụng mã thông báo ủy quyền để tạo một bài đăng. Tuy nhiên, chúng ta cần đảm bảo rằng bài viết mới tạo có đúng tên. Về bản chất, tất cả những gì còn lại là thực hiện những việc sau:

  • Gửi yêu cầu nhận bài viết theo id,
  • Kiểm tra tên nhận được từ máy chủ có khớp với tên gửi khi tạo bài viết không

Hãy nhìn vào bước đầu tiên. Vì giá trị id được xác định trong quá trình thực thi tập lệnh nên bạn cần tạo một biến động (hãy gọi nó là postId) từ nút tạo-bài ở cấp độ nút Dự án. Chúng ta đã biết cách thực hiện việc này rồi, chỉ cần tham khảo phần Lưu mã thông báo vào một biến. Tất cả những gì còn lại là tạo yêu cầu nhận bài đăng bằng id này. Để làm điều này, hãy tạo một requestStep được đăng tải với các thông số sau:

  • Loại yêu cầu: NHẬN
  • URL: ${domain}/posts/${$dynamicVar.postId}

Để thực hiện bước thứ hai, chúng ta cần làm quen với Quả quyết nút thắt. Nút Xác nhận là nút cho phép bạn viết séc cho các yêu cầu cụ thể. Mỗi nút Xác nhận có thể chứa một số xác nhận (kiểm tra). Bạn có thể đọc thêm về tất cả các loại khẳng định từ chúng tôi tài liệu. Chúng tôi sẽ sử dụng Compare khẳng định với toán tử equal. Có một số cách để tạo khẳng định:

  1. Dài. Tạo nút Xác nhận theo cách thủ công từ menu ngữ cảnh của nút Bước yêu cầu. Trong nút Xác nhận đã tạo, hãy thêm xác nhận quan tâm và điền vào các trường.
  2. Nhanh. Tạo nút Xác nhận cùng với xác nhận từ phản hồi của nút Yêu cầu bước bằng menu ngữ cảnh

Hãy sử dụng phương pháp thứ hai. Đây là những gì nó sẽ trông giống như trường hợp của chúng tôi.

Kiểm traMace. Bắt đầu nhanh

Đối với những người không hiểu, đây là những gì đang xảy ra:

  1. Thực hiện một yêu cầu trong nút được đăng tải
  2. Trong tab Đã phân tích cú pháp trả lời, gọi menu ngữ cảnh và chọn Tạo khẳng định -> So sánh -> bằng

Xin chúc mừng, chúng tôi đã tạo thử nghiệm đầu tiên của mình! Đơn giản phải không? Bây giờ bạn có thể chạy tập lệnh hoàn toàn và tận hưởng thành quả. Tất cả những gì còn lại là cấu trúc lại nó một chút và loại bỏ nó title thành một biến riêng biệt. Nhưng chúng tôi sẽ để việc này cho bạn làm bài tập về nhà)

Kết luận

Trong hướng dẫn này, chúng tôi đã tạo một kịch bản hoàn chỉnh, đồng thời xem xét một số tính năng của sản phẩm. Tất nhiên, chúng tôi không sử dụng tất cả các chức năng và trong các bài viết sau, chúng tôi sẽ cung cấp tổng quan chi tiết về các khả năng của TestMace. Giữ nguyên!

tái bút Đối với những người quá lười để sao chép tất cả các bước, chúng tôi vui lòng ghi lại kho với dự án từ bài viết. Bạn có thể mở nó bằng Tập tin -> Chủ đề mở và chọn thư mục Dự án.

Nguồn: www.habr.com

Thêm một lời nhận xét