Toxiproxy, một khuôn khổ để mô phỏng các điều kiện mạng trong môi trường thử nghiệm

Mua sắm, phát triển một trong những nền tảng thương mại điện tử lớn nhất và phổ biến nhất trên web, dio gần đây đã thông báo rằng họ đã khởi chạy phiên bản mới của máy chủ proxy «Toxiproxy 2.3» được thiết kế để mô phỏng các lỗi và sự bất thường trong mạng và hệ thống để kiểm tra trạng thái của các ứng dụng khi các điều kiện đó xảy ra.

Chương trình nổi bật với việc cung cấp một API để thay đổi động các đặc tính của kênh giao tiếp, có thể được sử dụng để tích hợp Toxiproxy với các hệ thống kiểm tra đơn vị, ngoài ra còn hỗ trợ cho các nền tảng tích hợp liên tục và môi trường phát triển.

Giới thiệu về Toxiproxy

Khuôn khổ này được thiết kế đặc biệt để hoạt động trong môi trường thử nghiệm, CI và phát triển, đồng thời hỗ trợ thao tác xác định các kết nối, nhưng với sự hỗ trợ cho sự hỗn loạn và tùy chỉnh ngẫu nhiên.

Về cơ bản, Toxiproxy được định vị như một công cụ mà tất cả những người yêu cầu thực hiện các bài kiểm tra demo trên các ứng dụng không có điểm lỗi duy nhất. Toxiproxy đã được sử dụng thành công trong tất cả các môi trường phát triển và thử nghiệm trên Shopify kể từ tháng 2014 năm XNUMX.

Việc sử dụng toxiproxy bao gồm hai phần. Một proxy TCP được viết bằng Go (kho lưu trữ này chứa những gì) và một ứng dụng khách giao tiếp với proxy qua HTTP. Điều này cấu hình ứng dụng để tất cả các kết nối thử nghiệm đi qua Toxiproxy và sau đó có thể thao tác trạng thái của chúng thông qua HTTP.

Nói cách khác, proxy được khởi chạy giữa ứng dụng đang được kiểm tra và dịch vụ mạng mà ứng dụng này tương tác, sau đó bạn có thể mô phỏng sự xuất hiện của một độ trễ nhất định khi nhận được phản hồi từ máy chủ hoặc gửi yêu cầu, thay đổi băng thông, mô phỏng từ chối chấp nhận kết nối, làm gián đoạn quá trình thiết lập bình thường hoặc đóng kết nối, thiết lập lại kết nối đã thiết lập, bóp méo nội dung của các gói.

Để kiểm soát hoạt động của máy chủ proxy từ các ứng dụng, các thư viện máy khách cho Ruby, Go, Python, C # /. NET, PHP, JavaScript / Node.js, Java, Haskell, Rust và Elixir được cung cấp, cho phép bạn thay đổi mạng lưới điều kiện tương tác một cách nhanh chóng và ngay lập tức đánh giá kết quả.

Để thay đổi các đặc tính của kênh giao tiếp mà không thực hiện thay đổi mã, có thể sử dụng tiện ích toxiproxy-cli đặc biệt (API Toxiproxy được cho là được sử dụng trong các thử nghiệm đơn vị và tiện ích này có thể hữu ích cho các thử nghiệm tương tác).

Có gì mới trong Toxiproxy 2.3?

Đối với những thay đổi được bao gồm trong phiên bản mới được phát hành, có đề cập đến việc bao gồm bộ điều khiển điểm cuối máy khách cho HTTPS.

Cũng như việc tách các trình điều khiển thử nghiệm điển hình thành các tệp riêng biệt, việc triển khai ứng dụng khách.Populate API.

Ngoài ra, nó cũng nổi bật là hỗ trợ cho nền tảng armv7 và armv6 và khả năng thay đổi mức độ đăng ký cho máy chủ.

Cài đặt Toxiproxy trên Linux

Đối với những người quan tâm đến việc có thể cài đặt khuôn khổ này để có thể thực hiện các thử nghiệm của họ, họ có thể thực hiện điều này theo các bước mà chúng tôi chia sẻ dưới đây.

Nếu bạn là người dùng của Debian, Ubuntu hoặc bất kỳ bản phân phối nào khác dựa trên những thứ này, Bạn có thể thực hiện cài đặt bằng cách mở một thiết bị đầu cuối (bạn có thể sử dụng phím tắt Ctrl + Alt + T) và trong đó bạn sẽ nhập:
wget https://github.com/Shopify/toxiproxy/releases/download/v2.3.0/toxiproxy_2.3.0_linux_amd64.deb

Và chúng ta tiến hành cài đặt với:
sudo apt install ./toxiproxy_2.3.0_linux_amd64.deb

Trong trường hợp của những người dùng các bản phân phối có hỗ trợ các gói RPM, chẳng hạn như Fedora, openSuse, RHEL, trong số những người khác, gói để tải xuống như sau:
wget https://github.com/Shopify/toxiproxy/releases/download/v2.3.0/toxiproxy_2.3.0_linux_amd64.rpm

Và bạn cài đặt gói bằng cách gõ:
sudo rpm -i toxiproxy_2.3.0_linux_amd64.rpm

Sau khi cài đặt xong, bạn có thể bắt đầu dịch vụ bằng cách thực hiện lệnh sau trong terminal:
sudo service toxiproxy start

Cuối cùng nếu đBạn quan tâm đến việc có thể biết thêm về nó, Bạn nên biết rằng mã Toxiproxy được viết bằng Go và có giấy phép MIT và bạn có thể tham khảo hướng dẫn sử dụng khung này trong liên kết theo dõi.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.