diff --git a/setup-test-env-zmq-proxy.sh b/setup-test-env-zmq-proxy.sh
new file mode 100755
index 000000000..e40dbb3cc
--- /dev/null
+++ b/setup-test-env-zmq-proxy.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+set -e
+
+. tools/functions.sh
+
+DATADIR=$(mktemp -d /tmp/OSLOMSG-ZEROMQ.XXXXX)
+trap "clean_exit $DATADIR" EXIT
+
+export TRANSPORT_URL=zmq://
+export ZMQ_MATCHMAKER=redis
+export ZMQ_REDIS_PORT=65123
+export ZMQ_IPC_DIR=${DATADIR}
+export ZMQ_USE_PUB_SUB=false
+export ZMQ_USE_ROUTER_PROXY=true
+
+cat > ${DATADIR}/zmq.conf <<EOF
+[DEFAULT]
+transport_url=${TRANSPORT_URL}
+rpc_zmq_matchmaker=${ZMQ_MATCHMAKER}
+rpc_zmq_ipc_dir=${ZMQ_IPC_DIR}
+use_pub_sub=${ZMQ_USE_PUB_SUB}
+use_router_proxy=${ZMQ_USE_ROUTER_PROXY}
+[matchmaker_redis]
+port=${ZMQ_REDIS_PORT}
+EOF
+
+redis-server --port $ZMQ_REDIS_PORT &
+
+oslo-messaging-zmq-proxy --debug True --config-file ${DATADIR}/zmq.conf > ${DATADIR}/zmq-proxy.log 2>&1 &
+
+$*
diff --git a/setup-test-env-zmq-pub-sub.sh b/setup-test-env-zmq-pub-sub.sh
new file mode 100755
index 000000000..4a937baf2
--- /dev/null
+++ b/setup-test-env-zmq-pub-sub.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+set -e
+
+. tools/functions.sh
+
+DATADIR=$(mktemp -d /tmp/OSLOMSG-ZEROMQ.XXXXX)
+trap "clean_exit $DATADIR" EXIT
+
+export TRANSPORT_URL=zmq://
+export ZMQ_MATCHMAKER=redis
+export ZMQ_REDIS_PORT=65123
+export ZMQ_IPC_DIR=${DATADIR}
+export ZMQ_USE_PUB_SUB=true
+export ZMQ_USE_ROUTER_PROXY=true
+
+cat > ${DATADIR}/zmq.conf <<EOF
+[DEFAULT]
+transport_url=${TRANSPORT_URL}
+rpc_zmq_matchmaker=${ZMQ_MATCHMAKER}
+rpc_zmq_ipc_dir=${ZMQ_IPC_DIR}
+use_pub_sub=${ZMQ_USE_PUB_SUB}
+use_router_proxy=${ZMQ_USE_ROUTER_PROXY}
+[matchmaker_redis]
+port=${ZMQ_REDIS_PORT}
+EOF
+
+redis-server --port $ZMQ_REDIS_PORT &
+
+oslo-messaging-zmq-proxy --debug True --config-file ${DATADIR}/zmq.conf > ${DATADIR}/zmq-proxy.log 2>&1 &
+
+$*
diff --git a/setup-test-env-zmq.sh b/setup-test-env-zmq.sh
index e40dbb3cc..0fa3fcd64 100755
--- a/setup-test-env-zmq.sh
+++ b/setup-test-env-zmq.sh
@@ -11,7 +11,7 @@ export ZMQ_MATCHMAKER=redis
 export ZMQ_REDIS_PORT=65123
 export ZMQ_IPC_DIR=${DATADIR}
 export ZMQ_USE_PUB_SUB=false
-export ZMQ_USE_ROUTER_PROXY=true
+export ZMQ_USE_ROUTER_PROXY=false
 
 cat > ${DATADIR}/zmq.conf <<EOF
 [DEFAULT]
diff --git a/tox.ini b/tox.ini
index 3f0a0f3ec..e1cea87d9 100644
--- a/tox.ini
+++ b/tox.ini
@@ -45,6 +45,12 @@ commands = {toxinidir}/setup-test-env-qpid.sh 1.0 python setup.py testr --slowes
 [testenv:py27-func-zeromq]
 commands = {toxinidir}/setup-test-env-zmq.sh python setup.py testr --slowest --testr-args='{posargs:oslo_messaging.tests.functional}'
 
+[testenv:py27-func-zeromq-proxy]
+commands = {toxinidir}/setup-test-env-zmq-proxy.sh python setup.py testr --slowest --testr-args='oslo_messaging.tests.functional'
+
+[testenv:py27-func-zeromq-pub-sub]
+commands = {toxinidir}/setup-test-env-zmq-pub-sub.sh python setup.py testr --slowest --testr-args='oslo_messaging.tests.functional'
+
 [testenv:bandit]
 deps = -r{toxinidir}/test-requirements.txt
 commands = bandit -r oslo_messaging -x tests -n5