From 32d76aa37d964580b3251eb2bbf8690a7a936167 Mon Sep 17 00:00:00 2001 From: JingLu5 Date: Tue, 22 Aug 2017 08:38:29 +0000 Subject: Test case: Fio volume benchmark testcase using job file JIRA: YARDSTICK-791 In some use cases, Fio is used with a job file instead of parameters. This work is about adding support for the job file and add a new test case for volume testing. Change-Id: I312d61bf6e7d95f23eedb0b6487f6103b7d76355 Signed-off-by: JingLu5 --- tests/opnfv/test_cases/opnfv_yardstick_tc006.yaml | 68 ++++++++++++++++++++++ tests/unit/benchmark/scenarios/storage/test_fio.py | 14 +++++ 2 files changed, 82 insertions(+) create mode 100644 tests/opnfv/test_cases/opnfv_yardstick_tc006.yaml (limited to 'tests') diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc006.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc006.yaml new file mode 100644 index 000000000..a35629f81 --- /dev/null +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc006.yaml @@ -0,0 +1,68 @@ +############################################################################## +# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +--- + +schema: "yardstick:task:0.1" +description: > + Yardstick TC006 config file; + Measure volume storage IOPS, throughput and latency using fio with job file. + +{% set directory = directory or "/FIO_Test" %} +{% set provider = provider or none %} +{% set physical_network = physical_network or 'physnet1' %} +{% set segmentation_id = segmentation_id or none %} + +schema: "yardstick:task:0.1" + +scenarios: +- + type: Fio + options: + job_file: "job_file.ini" + directory: {{ directory }} + + host: fio.yardstick-TC006 + + runner: + type: Iteration + iterations: 1 + interval: 1 + + sla: + read_bw: 6000 + read_iops: 1500 + read_lat: 500.1 + write_bw: 6000 + write_iops: 1500 + write_lat: 500.1 + action: monitor + +context: + name: yardstick-TC006 + image: yardstick-image + flavor: yardstick-flavor + user: ubuntu + servers: + fio: + floating_ip: true + volume: + name: test-volume + size: 200 + volume_mountpoint: /dev/vdb + + networks: + test: + cidr: '10.0.1.0/24' + {% if provider == "vlan" %} + provider: {{provider}} + physical_network: {{physical_network}} + {% if segmentation_id %} + segmentation_id: {{segmentation_id}} + {% endif %} + {% endif %} diff --git a/tests/unit/benchmark/scenarios/storage/test_fio.py b/tests/unit/benchmark/scenarios/storage/test_fio.py index 55e443885..17594b9f4 100644 --- a/tests/unit/benchmark/scenarios/storage/test_fio.py +++ b/tests/unit/benchmark/scenarios/storage/test_fio.py @@ -55,6 +55,20 @@ class FioTestCase(unittest.TestCase): self.assertIsNotNone(p.client) self.assertEqual(p.setup_done, True) + def test_fio_job_file_successful_setup(self, mock_ssh): + + options = { + 'job_file': 'job_file.ini', + 'directory': '/FIO_Test' + } + args = {'options': options} + p = fio.Fio(args, self.ctx) + p.setup() + + mock_ssh.SSH.from_node().execute.return_value = (0, '', '') + self.assertIsNotNone(p.client) + self.assertEqual(p.setup_done, True) + def test_fio_successful_no_sla(self, mock_ssh): options = { -- cgit 1.2.3-korg