Add traffic duration support in test case 89/64189/1
authorOrest Voznyy <orestx.voznyy@intel.com>
Mon, 8 Oct 2018 17:06:02 +0000 (20:06 +0300)
committerAbhijit Sinha <abhijit.sinha@intel.com>
Tue, 30 Oct 2018 10:12:50 +0000 (10:12 +0000)
Implement code to support traffic_duration field in test case options.
This updates the 'duration' in Landslide session profile.
traffic_duration should always be much less than runner duration/timeout.

JIRA: YARDSTICK-1427

Change-Id: I51094bade683ca8758136ccb619e8894a2ecef72
Signed-off-by: Orest Voznyy <orestx.voznyy@intel.com>
(cherry picked from commit ae2ceba66519555749c67eefe2170ea716a1411b)

samples/vnf_samples/nsut/vepc/tc_epc_default_bearer_create_landslide.yaml
yardstick/network_services/vnf_generic/vnf/tg_landslide.py
yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_landslide.py

index 0b94d31..ee17df1 100644 (file)
@@ -27,6 +27,7 @@ scenarios:
     tg__0: tg__0.traffic_gen
     vnf__0: vnf__0.vnf_epc
   options:
+    traffic_duration: 70
     dmf:
       transactionRate: 5
       packetSize: 512
index a146b72..1575686 100644 (file)
@@ -600,6 +600,13 @@ class LandslideResourceHelper(sample_vnf.ClientResourceHelper):
     def create_test_session(self, test_session):
         # Use tcl client to create session
         test_session['library'] = self._user_id
+
+        # If no traffic duration set in test case, use predefined default value
+        # in session profile
+        test_session['duration'] = self.scenario_helper.all_options.get(
+            'traffic_duration',
+            test_session['duration'])
+
         LOG.debug("Creating session='%s'", test_session['name'])
         self._tcl.create_test_session(test_session)
 
index 5343997..15f7b36 100644 (file)
@@ -337,6 +337,7 @@ class TestLandslideTrafficGen(unittest.TestCase):
         'traffic_profile': '../../traffic_profiles/landslide/'
                            'landslide_dmf_udp.yaml',
         'options': {
+            'traffic_duration': 71,
             'test_cases': [
                 {
                     'BearerAddrPool': '2002::2',
@@ -1178,10 +1179,24 @@ class TestLandslideResourceHelper(unittest.TestCase):
     def test_create_test_session_res_helper(self, *args):
         self.res_helper._user_id = self.SUCCESS_RECORD_ID
         self.res_helper._tcl = mock.Mock()
-        test_session = {'name': 'test'}
-        self.assertIsNone(self.res_helper.create_test_session(test_session))
+        self.res_helper.scenario_helper.all_options = {'traffic_duration': 71}
+        _session = {'name': 'test', 'duration': 60}
+        self.assertIsNone(self.res_helper.create_test_session(_session))
         self.res_helper._tcl.create_test_session.assert_called_once_with(
-            {'name': 'test', 'library': self.SUCCESS_RECORD_ID})
+            {'name': _session['name'],
+             'duration': 71,
+             'library': self.SUCCESS_RECORD_ID})
+
+    def test_create_test_session_res_helper_no_traffic_duration(self, *args):
+        self.res_helper._user_id = self.SUCCESS_RECORD_ID
+        self.res_helper._tcl = mock.Mock()
+        self.res_helper.scenario_helper.all_options = {}
+        _session = {'name': 'test', 'duration': 60}
+        self.assertIsNone(self.res_helper.create_test_session(_session))
+        self.res_helper._tcl.create_test_session.assert_called_once_with(
+            {'name': _session['name'],
+             'duration': 60,
+             'library': self.SUCCESS_RECORD_ID})
 
     @mock.patch.object(tg_landslide.LandslideTclClient,
                        'resolve_test_server_name',