diff --git a/src/test/utils/ACL.py b/src/test/utils/ACL.py
index b246de1..ecb159e 100644
--- a/src/test/utils/ACL.py
+++ b/src/test/utils/ACL.py
@@ -16,6 +16,8 @@
 import json
 import requests
 import os,sys,time
+import logging
+logging.getLogger('scapy.runtime').setLevel(logging.ERROR)
 from scapy.all import *
 from CordTestUtils import get_mac, get_controller
 from OnosCtrl import OnosCtrl
diff --git a/src/test/utils/Channels.py b/src/test/utils/Channels.py
index 71cda6a..8266c7e 100644
--- a/src/test/utils/Channels.py
+++ b/src/test/utils/Channels.py
@@ -19,6 +19,8 @@
 import time
 import monotonic
 import random
+import logging
+logging.getLogger('scapy.runtime').setLevel(logging.ERROR)
 from scapy.all import *
 from McastTraffic import *
 from IGMP import *
diff --git a/src/test/utils/Cluster.py b/src/test/utils/Cluster.py
index c42ea64..31b6bbb 100644
--- a/src/test/utils/Cluster.py
+++ b/src/test/utils/Cluster.py
@@ -23,6 +23,8 @@
 from socket import socket
 import pexpect
 from Stats import Stats
+import logging
+logging.getLogger('scapy.runtime').setLevel(logging.ERROR)
 from scapy.all import *
 from OnosFlowCtrl import OnosFlowCtrl
 from nose.twistedtools import reactor, deferred
diff --git a/src/test/utils/CordLogger.py b/src/test/utils/CordLogger.py
index e58e4ff..cbebee5 100644
--- a/src/test/utils/CordLogger.py
+++ b/src/test/utils/CordLogger.py
@@ -1,4 +1,6 @@
 from OnosLog import OnosLog
+import logging
+logging.getLogger('scapy.runtime').setLevel(logging.ERROR)
 from scapy.all import log
 from onosclidriver import OnosCliDriver
 from OnosCtrl import OnosCtrl
@@ -9,6 +11,7 @@
 import unittest
 import os
 import time
+import warnings
 
 def get_controller_names(controllers):
         controller_names = [ 'cord-onos' if controllers.index(c) == 0 else 'cord-onos-{}'.format(controllers.index(c)+1) for c in controllers ]
@@ -31,6 +34,10 @@
     archive_dir = os.path.join(setup_dir, 'test_logs')
     onos_data_dir = os.path.join(setup_dir, 'cord-onos-data')
 
+    def __init__(self, *args, **kwargs):
+        warnings.simplefilter('ignore')
+        super(CordLogger, self).__init__(*args, **kwargs)
+
     @classmethod
     def cliSessionEnter(cls):
         try:
diff --git a/src/test/utils/OnosFlowCtrl.py b/src/test/utils/OnosFlowCtrl.py
index 844bc3c..8ccc095 100644
--- a/src/test/utils/OnosFlowCtrl.py
+++ b/src/test/utils/OnosFlowCtrl.py
@@ -17,6 +17,8 @@
 import requests
 import os,sys,time
 from nose.tools import *
+import logging
+logging.getLogger('scapy.runtime').setLevel(logging.ERROR)
 from scapy.all import *
 from OnosCtrl import OnosCtrl, get_controller
 
@@ -304,4 +306,3 @@
             log.error('Flow post request returned with status %d' %response.status_code)
 
         return False
-
diff --git a/src/test/utils/SSHTestAgent.py b/src/test/utils/SSHTestAgent.py
index 1f6a6d0..e5930bf 100644
--- a/src/test/utils/SSHTestAgent.py
+++ b/src/test/utils/SSHTestAgent.py
@@ -1,5 +1,7 @@
-import os, sys
+import os, sys, time
 from paramiko import SSHClient, WarningPolicy, AutoAddPolicy
+import logging
+logging.getLogger('scapy.runtime').setLevel(logging.ERROR)
 from scapy.all import *
 
 class SSHTestAgent(object):
@@ -47,6 +49,7 @@
                     output += data
                 else:
                     break
+        time.sleep(0.1)
         channel.close()
         self.client.close()
         return st, output
