Skip to content

Toxiproxy.Net is a .Net client for Shopify's Toxiproxy. Toxiproxy is a proxy to test your system by simulating network failure.

License

Notifications You must be signed in to change notification settings

mgkeen/Toxiproxy.Net

 
 

Repository files navigation

Toxiproxy.Net

Toxiproxy.Net is a .Net client for Shopify's Toxiproxy REST/JSON Api. Toxiproxy is a proxy to test your system by simulating network failure.

Project

Build status

Master branch

Build status

Test Coverage

Coverage Status

Getting started

To install via the nuget package console

Install-Package Toxiproxy.Net

A copy of toxiproxy compiled for windows is in the compiled folder. Linux, Darwin and Windows builds are available from the official release site

Usage

The unit tests give a good overview of how to fully use the api. Here are some examples to get started -

Set up a proxy

var connection = new Connection();
var client = connection.Client();

//proxy all traffic from 127.0.0.1:44399 to https://google.com
var localToGoogleProxy = new Proxy() { 
    Name = "localToGoogle", 
    Enabled = true, 
    Listen = "127.0.0.1:44399", 
    Upstream = "google.com:443" 
};

client.Add(localToGoogleProxy);

Disable a proxy

var connection = new Connection();
var client = connection.Client();
var proxy = client.FindProxy("localToGoogle");

proxy.Enabled = false;
proxy.Update();

Timeout a proxy

var connection = new Connection();
var client = connection.Client();
var proxy = client.FindProxy("localToGoogle");
	
var timeout = proxy.UpStreams().TimeoutToxic;
timeout.Enabled = true;
timeout.Update();

Return a list of all proxies

var connection = new Connection();
var client = connection.Client();

client.All();

Reset all proxes to a good state automatically

// assuming the proxy is running with its default settings e.g. localhost:8474
// and there is a connection defined with the name "ms_sql"
// create a connection to toxiproxy that will call reset on disposal
// this resets the state of all the toxics and re-enables all of the proxies
using (var connection = new Connection(true))
{

    // find the upstream latency toxic
    var latency = connection.Client().FindProxy("ms_sql").UpStreams().LatencyToxic;

    // set a latency of 1 second 
    latency.Latency = 1000;

    // save it
    latency.Update();

    // do your test....

} 

Thanks

soneyworld Federico Orlandini vromantp

About

Toxiproxy.Net is a .Net client for Shopify's Toxiproxy. Toxiproxy is a proxy to test your system by simulating network failure.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%