diff --git a/lib/d/test/test_utils.d b/lib/d/test/test_utils.d
index 174100b..d0548b7 100644
--- a/lib/d/test/test_utils.d
+++ b/lib/d/test/test_utils.d
@@ -35,6 +35,7 @@
 import thrift.transport.buffered;
 import thrift.transport.framed;
 import thrift.transport.http;
+import thrift.transport.zlib;
 
 // This is a likely victim of @@BUG4744@@ when used with command argument
 // parsing.
@@ -79,6 +80,7 @@
   buffered,
   framed,
   http,
+  zlib,
   raw
 }
 
@@ -90,6 +92,8 @@
       return new TFramedTransportFactory;
     case TransportType.http:
       return new TServerHttpTransportFactory;
+    case TransportType.zlib:
+      return new TZlibTransportFactory;
     case TransportType.raw:
       return new TTransportFactory;
   }
diff --git a/lib/d/test/thrift_test_client.d b/lib/d/test/thrift_test_client.d
index 49419f7..c9911e2 100644
--- a/lib/d/test/thrift_test_client.d
+++ b/lib/d/test/thrift_test_client.d
@@ -35,6 +35,7 @@
 import thrift.transport.buffered;
 import thrift.transport.framed;
 import thrift.transport.http;
+import thrift.transport.zlib;
 import thrift.transport.socket;
 import thrift.transport.ssl;
 import thrift.util.hashset;
@@ -47,6 +48,7 @@
   buffered,
   framed,
   http,
+  zlib,
   raw
 }
 
@@ -68,6 +70,7 @@
   bool ssl;
   ProtocolType protocolType;
   TransportType transportType;
+  bool zlib;
   bool trace;
 
   getopt(args,
@@ -75,6 +78,7 @@
     "protocol", &protocolType,
     "ssl", &ssl,
     "transport", &transportType,
+    "zlib", &zlib,
     "trace", &trace,
     "port", &port,
     "host", (string _, string value) {
@@ -102,22 +106,28 @@
     socket = new TSocket(host, port);
   }
 
-  TProtocol protocol;
+  TTransport transport;
   final switch (transportType) {
     case TransportType.buffered:
-      protocol = createProtocol(new TBufferedTransport(socket), protocolType);
+      transport = new TBufferedTransport(socket);
       break;
     case TransportType.framed:
-      protocol = createProtocol(new TFramedTransport(socket), protocolType);
+      transport = new TFramedTransport(socket);
       break;
     case TransportType.http:
-      protocol = createProtocol(
-        new TClientHttpTransport(socket, host, "/service"), protocolType);
+      transport = new TClientHttpTransport(socket, host, "/service");
+      break;
+    case TransportType.zlib:
+      transport = new TZlibTransport(socket);
       break;
     case TransportType.raw:
-      protocol = createProtocol(socket, protocolType);
+      transport = socket;
       break;
   }
+  if (zlib && transportType != TransportType.zlib) {
+    transport = new TZlibTransport(socket);
+  }
+  TProtocol protocol = createProtocol(transport, protocolType);
 
   auto client = tClient!ThriftTest(protocol);
 
diff --git a/lib/d/test/thrift_test_server.d b/lib/d/test/thrift_test_server.d
index ce820d6..192ff31 100644
--- a/lib/d/test/thrift_test_server.d
+++ b/lib/d/test/thrift_test_server.d
@@ -42,6 +42,7 @@
 import thrift.transport.buffered;
 import thrift.transport.framed;
 import thrift.transport.http;
+import thrift.transport.zlib;
 import thrift.transport.ssl;
 import thrift.util.cancellation;
 import thrift.util.hashset;
@@ -246,11 +247,12 @@
   size_t numIOThreads = 1;
   TransportType transportType;
   bool ssl = false;
+  bool zlib = false;
   bool trace = true;
   size_t taskPoolSize = totalCPUs;
 
   getopt(args, "port", &port, "protocol", &protocolType, "server-type",
-    &serverType, "ssl", &ssl, "num-io-threads", &numIOThreads,
+    &serverType, "ssl", &ssl, "zlib", &zlib, "num-io-threads", &numIOThreads,
     "task-pool-size", &taskPoolSize, "trace", &trace,
     "transport", &transportType);
 
