예제 #1
0
    def test_install_Grinder(self):
        path = os.path.abspath(__dir__() + "/../../build/tmp/grinder-taurus/lib/grinder.jar")
        shutil.rmtree(os.path.dirname(os.path.dirname(path)), ignore_errors=True)

        self.assertFalse(os.path.exists(path))

        obj = GrinderExecutor()
        obj.engine = EngineEmul()
        obj.settings.merge({"path": path})
        obj.settings.merge(
            {
                "properties-file": __dir__() + "/../grinder/grinder.base.properties",
                "properties": {"sample_prop": "some_val"},
            }
        )
        obj.execution.merge(
            {
                "scenario": {
                    "script": __dir__() + "/../grinder/helloworld.py",
                    "properties-file": __dir__() + "/..//grinder/grinder.properties",
                    "properties": {"grinder.useConsole": "false"},
                }
            }
        )
        obj.prepare()

        self.assertTrue(os.path.exists(path))
예제 #2
0
 def test_fail_on_zero_results(self):
     obj = GrinderExecutor()
     obj.engine = EngineEmul()
     obj.execution.merge({"concurrency": {"local": 2},
                          "scenario": {"script": __dir__() + "/../grinder/helloworld.py"}})
     obj.prepare()
     self.assertRaises(RuntimeWarning, obj.post_process)
예제 #3
0
    def test_install_Grinder(self):
        path = os.path.abspath(
            __dir__() + "/../../build/tmp/grinder-taurus/lib/grinder.jar")
        shutil.rmtree(os.path.dirname(os.path.dirname(path)),
                      ignore_errors=True)

        self.assertFalse(os.path.exists(path))

        obj = GrinderExecutor()
        obj.engine = EngineEmul()
        obj.settings.merge({"path": path})
        obj.settings.merge({
            "properties-file":
            __dir__() + "/../grinder/grinder.base.properties",
            "properties": {
                "sample_prop": "some_val"
            }
        })
        obj.execution.merge({
            "scenario": {
                "script": __dir__() + "/../grinder/helloworld.py",
                "properties-file":
                __dir__() + "/..//grinder/grinder.properties",
                "properties": {
                    "grinder.useConsole": "false"
                }
            }
        })
        obj.prepare()

        self.assertTrue(os.path.exists(path))
예제 #4
0
    def test_install_Grinder(self):
        path = os.path.abspath(__dir__() + "/../../build/tmp/grinder-taurus/lib/grinder.jar")
        shutil.rmtree(os.path.dirname(os.path.dirname(path)), ignore_errors=True)

        grinder_link = GrinderExecutor.DOWNLOAD_LINK
        grinder_version = GrinderExecutor.VERSION
        mirrors_source = GrinderExecutor.MIRRORS_SOURCE
        try:
            GrinderExecutor.DOWNLOAD_LINK = "file:///" + __dir__() + \
                                            "/../resources/grinder/grinder-{version}_{version}-binary.zip"
            GrinderExecutor.VERSION = "3.11"
            GrinderExecutor.MIRRORS_SOURCE = "file:///" + __dir__() + "/../resources/jmeter/unicode_file"

            self.assertFalse(os.path.exists(path))

            obj = GrinderExecutor()
            obj.engine = EngineEmul()
            obj.settings.merge({"path": path})
            obj.settings.merge({"properties-file": __dir__() + "/../resources/grinder/grinder.base.properties",
                                "properties": {"sample_prop": "some_val"}})
            obj.execution.merge({"scenario": {
                "script": __dir__() + "/../resources/grinder/helloworld.py",
                "properties-file": __dir__() + "/..//resources/grinder/grinder.properties",
                "properties": {"grinder.useConsole": "false"}}})
            obj.prepare()

            self.assertTrue(os.path.exists(path))
        finally:
            GrinderExecutor.DOWNLOAD_LINK = grinder_link
            GrinderExecutor.VERSION = grinder_version
            GrinderExecutor.MIRRORS_SOURCE = mirrors_source
예제 #5
0
    def test_install_Grinder_link(self):
        path = os.path.abspath(BUILD_DIR + "grinder-taurus/lib/grinder.jar")
        shutil.rmtree(os.path.dirname(os.path.dirname(path)),
                      ignore_errors=True)

        self.assertFalse(os.path.exists(path))

        obj = GrinderExecutor()
        obj.engine = EngineEmul()
        link = "file:///" + RESOURCES_DIR + "grinder/grinder-3.11_3.11-binary.zip"
        obj.settings.merge({"download-link": link})
        obj.settings.merge({"path": path})
        obj.settings.merge({
            "properties-file":
            RESOURCES_DIR + "grinder/grinder.base.properties",
            "properties": {
                "sample_prop": "some_val"
            }
        })
        obj.execution.merge({
            "scenario": {
                "script": RESOURCES_DIR + "grinder/helloworld.py",
                "properties-file":
                RESOURCES_DIR + "grinder/grinder.properties",
                "properties": {
                    "grinder.useConsole": "false"
                }
            }
        })
        obj.prepare()

        self.assertTrue(os.path.exists(path))
예제 #6
0
    def test_install_Grinder(self):
        path = os.path.abspath(__dir__() + "/../../build/tmp/grinder-taurus/lib/grinder.jar")
        shutil.rmtree(os.path.dirname(os.path.dirname(path)), ignore_errors=True)

        grinder_link = GrinderExecutor.DOWNLOAD_LINK
        grinder_version = GrinderExecutor.VERSION
        mirrors_source = GrinderExecutor.MIRRORS_SOURCE
        GrinderExecutor.DOWNLOAD_LINK = "file:///" + __dir__() + "/../data/grinder-{version}_{version}-binary.zip"
        GrinderExecutor.VERSION = "3.11"
        GrinderExecutor.MIRRORS_SOURCE = "file:///" + __dir__() + "/../data/unicode_file"

        self.assertFalse(os.path.exists(path))

        obj = GrinderExecutor()
        obj.engine = EngineEmul()
        obj.settings.merge({"path": path})
        obj.settings.merge({"properties-file": __dir__() + "/../grinder/grinder.base.properties",
                            "properties": {"sample_prop": "some_val"}})
        obj.execution.merge({"scenario": {
            "script": __dir__() + "/../grinder/helloworld.py",
            "properties-file": __dir__() + "/..//grinder/grinder.properties",
            "properties": {"grinder.useConsole": "false"}}})
        obj.prepare()

        self.assertTrue(os.path.exists(path))

        GrinderExecutor.DOWNLOAD_LINK = grinder_link
        GrinderExecutor.VERSION = grinder_version
        GrinderExecutor.MIRRORS_SOURCE = mirrors_source
예제 #7
0
 def test_resource_files_collection_noscript(self):
     obj = GrinderExecutor()
     obj.engine = EngineEmul()
     obj.execution.merge({"scenario": {"properties-file": __dir__() + "/../grinder/grinder.properties"}})
     res_files = obj.resource_files()
     artifacts = os.listdir(obj.engine.artifacts_dir)
     self.assertEqual(len(res_files), 2)
     self.assertEqual(len(artifacts), 2)
예제 #8
0
 def test_requests(self):
     obj = GrinderExecutor()
     obj.engine = EngineEmul()
     obj.execution.merge(
         {"scenario": {
             "requests": ['http://blazedemo.com']
         }})
     obj.prepare()
예제 #9
0
 def test_resource_files_collection_local(self):
     obj = GrinderExecutor()
     obj.engine = EngineEmul()
     obj.execution.merge({"scenario": {"script": "tests/grinder/helloworld.py",
                                       "properties-file": "tests/grinder/grinder.properties"}})
     obj.prepare()
     artifacts = os.listdir(obj.engine.artifacts_dir)
     self.assertEqual(len(artifacts), 2)
예제 #10
0
 def test_resource_files_collection_local(self):
     obj = GrinderExecutor()
     obj.engine = EngineEmul()
     obj.execution.merge({"scenario": {"script": __dir__() + "/../grinder/helloworld.py",
                                       "properties-file": __dir__() + "/../grinder/grinder.properties"}})
     obj.prepare()
     artifacts = os.listdir(obj.engine.artifacts_dir)
     self.assertEqual(len(artifacts), 2)
예제 #11
0
 def test_resource_files_collection_noscript(self):
     obj = GrinderExecutor()
     obj.engine = EngineEmul()
     obj.execution.merge({"scenario": {"properties-file": "tests/grinder/grinder.properties"}})
     res_files = obj.resource_files()
     artifacts = os.listdir(obj.engine.artifacts_dir)
     self.assertEqual(len(res_files), 2)
     self.assertEqual(len(artifacts), 2)
예제 #12
0
 def test_resource_files_collection_basic(self):
     obj = GrinderExecutor()
     obj.engine = EngineEmul()
     obj.execution.merge(
         {"scenario": {
             "script": __dir__() + "/../grinder/helloworld.py"
         }})
     res_files = obj.resource_files()
     self.assertEqual(len(res_files), 1)
예제 #13
0
 def test_resource_files_collection_remote(self):
     obj = GrinderExecutor()
     obj.engine = EngineEmul()
     obj.execution.merge({"scenario": {"script": __dir__() + "/../grinder/helloworld.py",
                                       "properties-file": __dir__() + "/../grinder/grinder.properties"}})
     res_files = obj.resource_files()
     artifacts = os.listdir(obj.engine.artifacts_dir)
     self.assertEqual(len(res_files), 2)
     self.assertEqual(len(artifacts), 2)
예제 #14
0
 def test_requests(self):
     obj = GrinderExecutor()
     obj.engine = EngineEmul()
     obj.settings.merge(
         {'path': __dir__() + "/../grinder/fake_grinder.jar"})
     obj.execution.merge(
         {"scenario": {
             "requests": ['http://blazedemo.com']
         }})
     obj.prepare()
예제 #15
0
    def test_script_generation(self):
        obj = GrinderExecutor()
        obj.engine = EngineEmul()
        obj.settings.merge({'path': __dir__() + "/../resources/grinder/fake_grinder.jar"})
        obj.execution.merge({
            "scenario": {
                "default-address": "http://blazedemo.com",
                "headers": {
                    "My-Header": "Its-Value",
                    "Another-Header": "Another-Value",
                },
                "timeout": "30s",
                "think-time": "2s",
                "store-cookie": True,
                "requests": [
                    '/',
                    {'url': 'http://example.com/',
                     'method': 'POST',
                     'think-time': "1s",
                     'headers': {
                         'Custom': 'Header',
                     }},
                ]
            }
        })
        obj.prepare()
        script = open(os.path.join(obj.engine.artifacts_dir, 'grinder_requests.py')).read()

        default_addr = re.findall(r"url='http://blazedemo.com'", script)
        self.assertEquals(1, len(default_addr))

        requests = re.findall(r"request\.([A-Z]+)\('(.+?)'", script)
        self.assertEquals(2, len(requests))
        self.assertEquals(requests[0], ('GET', '/'))
        self.assertEquals(requests[1], ('POST', 'http://example.com/'))

        sleeps = re.findall(r"grinder\.sleep\((.+)\)", script)
        self.assertEquals(3, len(sleeps))
        self.assertEquals(sleeps[0], 'sleep_time, 0')
        self.assertEquals(sleeps[1], '2000')
        self.assertEquals(sleeps[2], '1000')

        headers = re.findall(r"NVPair\('(.+)', '(.+)'\)", script)
        self.assertEquals(3, len(headers))
        self.assertIn(("My-Header", "Its-Value"), headers)
        self.assertIn(("Another-Header", "Another-Value"), headers)
        self.assertIn(("Custom", "Header"), headers)

        timeout = re.findall(r"defaults.setTimeout\((\d+)\)", script)
        self.assertEquals(1, len(timeout))
        self.assertEquals(timeout[0], '30000')

        cookies = re.findall(r"defaults.setUseCookies\(1\)", script)
        self.assertEquals(1, len(cookies))
예제 #16
0
    def test_resource_files_collection_invalid(self):
        obj = GrinderExecutor()
        obj.engine = EngineEmul()
        obj.execution.merge({"scenario": {"script": "tests/grinder/helloworld.py",
                                          "properties-file": "tests/grinder/grinder_invalid.properties"}})
        res_files = obj.resource_files()
        artifacts = os.listdir(obj.engine.artifacts_dir)
        self.assertEqual(len(res_files), 2)
        self.assertEqual(len(artifacts), 2)

        self.assertIn("helloworld.py", open(os.path.join(obj.engine.artifacts_dir,
                                                         "grinder_invalid.properties")).read())
예제 #17
0
    def test_resource_files_collection_invalid(self):
        obj = GrinderExecutor()
        obj.engine = EngineEmul()
        obj.execution.merge({"scenario": {"script": __dir__() + "/../grinder/helloworld.py",
                                          "properties-file": __dir__() + "/../grinder/grinder_invalid.properties"}})
        res_files = obj.resource_files()
        artifacts = os.listdir(obj.engine.artifacts_dir)
        self.assertEqual(len(res_files), 2)
        self.assertEqual(len(artifacts), 2)

        self.assertIn("helloworld.py", open(os.path.join(obj.engine.artifacts_dir,
                                                         "grinder_invalid.properties")).read())
예제 #18
0
    def test_script_generation(self):
        obj = GrinderExecutor()
        obj.engine = EngineEmul()
        obj.settings.merge({'path': __dir__() + "/../grinder/fake_grinder.jar"})
        obj.execution.merge({
            "scenario": {
                "default-address": "http://blazedemo.com",
                "headers": {
                    "My-Header": "Its-Value",
                    "Another-Header": "Another-Value",
                },
                "timeout": "30s",
                "think-time": "2s",
                "store-cookie": True,
                "requests": [
                    '/',
                    {'url': 'http://example.com/',
                     'method': 'POST',
                     'think-time': "1s",
                     'headers': {
                         'Custom': 'Header',
                     }},
                ]
            }
        })
        obj.prepare()
        script = open(os.path.join(obj.engine.artifacts_dir, 'grinder_requests.py')).read()

        default_addr = re.findall(r"url='http://blazedemo.com'", script)
        self.assertEquals(1, len(default_addr))

        requests = re.findall(r"request\.([A-Z]+)\('(.+?)'", script)
        self.assertEquals(2, len(requests))
        self.assertEquals(requests[0], ('GET', '/'))
        self.assertEquals(requests[1], ('POST', 'http://example.com/'))

        sleeps = re.findall(r"grinder\.sleep\((.+)\)", script)
        self.assertEquals(2, len(sleeps))
        self.assertEquals(sleeps[0], '2000')
        self.assertEquals(sleeps[1], '1000')

        headers = re.findall(r"NVPair\('(.+)', '(.+)'\)", script)
        self.assertEquals(3, len(headers))
        self.assertIn(("My-Header", "Its-Value"), headers)
        self.assertIn(("Another-Header", "Another-Value"), headers)
        self.assertIn(("Custom", "Header"), headers)

        timeout = re.findall(r"defaults.setTimeout\((\d+)\)", script)
        self.assertEquals(1, len(timeout))
        self.assertEquals(timeout[0], '30000')

        cookies = re.findall(r"defaults.setUseCookies\(1\)", script)
        self.assertEquals(1, len(cookies))
예제 #19
0
 def test_fail_on_zero_results(self):
     obj = GrinderExecutor()
     obj.engine = EngineEmul()
     obj.execution.merge({
         "concurrency": {
             "local": 2
         },
         "scenario": {
             "script": __dir__() + "/../grinder/helloworld.py"
         }
     })
     obj.prepare()
     self.assertRaises(RuntimeWarning, obj.post_process)
예제 #20
0
 def test_fail_on_zero_results(self):
     obj = GrinderExecutor()
     obj.engine = EngineEmul()
     obj.settings.merge({'path': __dir__() + "/../resources/grinder/fake_grinder.jar"})
     obj.execution.merge({"concurrency": {"local": 2},
                          "scenario": {"script": __dir__() + "/../resources/grinder/helloworld.py"}})
     obj.prepare()
     obj.engine.prepared = [obj]
     obj.engine.started = [obj]
     obj.engine.provisioning = Local()
     obj.engine.provisioning.engine = obj.engine
     obj.engine.provisioning.executors = [obj]
     self.assertRaises(ToolError, obj.engine.provisioning.post_process)
예제 #21
0
 def test_resource_files_collection(self):
     obj = GrinderExecutor()
     obj.engine = EngineEmul()
     obj.execution.merge({
         "scenario": {
             "script": "tests/grinder/helloworld.py",
             "properties-file": "tests/grinder/grinder.properties"
         }
     })
     res_files = obj.resource_files()
     artifacts = os.listdir(obj.engine.artifacts_dir)
     self.assertEqual(len(res_files), 2)
     self.assertEqual(len(artifacts), 2)
예제 #22
0
 def test_fail_on_zero_results(self):
     obj = GrinderExecutor()
     obj.engine = EngineEmul()
     obj.settings.merge({'path': __dir__() + "/../grinder/fake_grinder.jar"})
     obj.execution.merge({"concurrency": {"local": 2},
                          "scenario": {"script": __dir__() + "/../grinder/helloworld.py"}})
     obj.prepare()
     obj.engine.prepared = [obj]
     obj.engine.started = [obj]
     obj.engine.provisioning = Local()
     obj.engine.provisioning.engine = obj.engine
     obj.engine.provisioning.executors = [obj]
     self.assertRaises(RuntimeWarning, obj.engine.provisioning.post_process)
예제 #23
0
    def test_install_Grinder(self):
        path = os.path.abspath(
            __dir__() + "/../../build/tmp/grinder-taurus/lib/grinder.jar")
        shutil.rmtree(os.path.dirname(os.path.dirname(path)),
                      ignore_errors=True)

        grinder_link = GrinderExecutor.DOWNLOAD_LINK
        grinder_version = GrinderExecutor.VERSION
        GrinderExecutor.DOWNLOAD_LINK = "file://" + __dir__(
        ) + "/../data/grinder-{version}_{version}-binary.zip"
        GrinderExecutor.VERSION = "3.11"

        self.assertFalse(os.path.exists(path))

        obj = GrinderExecutor()
        obj.engine = EngineEmul()
        obj.settings.merge({"path": path})
        obj.execution = BetterDict()
        obj.execution.merge({
            "scenario": {
                "script": "tests/grinder/helloworld.py",
                "properties-file": "tests/grinder/grinder.properties",
                "properties": {
                    "grinder.useConsole": "false"
                }
            }
        })
        obj.prepare()

        self.assertTrue(os.path.exists(path))

        obj.prepare()
        GrinderExecutor.DOWNLOAD_LINK = grinder_link
        GrinderExecutor.VERSION = grinder_version
예제 #24
0
 def test_grinder_mirrors(self):
     path = os.path.abspath(
         __dir__() + "/../../build/tmp/grinder-taurus/lib/grinder.jar")
     shutil.rmtree(os.path.dirname(os.path.dirname(path)),
                   ignore_errors=True)
     obj = GrinderExecutor()
     grinder_tool = Grinder(path, obj.log, GrinderExecutor.VERSION)
     grinder_tool.install()
예제 #25
0
    def test_with_results(self):
        obj = GrinderExecutor()

        obj.engine = EngineEmul()
        obj.settings.merge({'path': __dir__() + "/../resources/grinder/fake_grinder.jar"})
        obj.execution.merge({
            "concurrency": {"local": 2},
            "scenario": {"script": __dir__() + "/../resources/grinder/helloworld.py"}})
        obj.prepare()
        obj.engine.prepared = [obj]
        obj.engine.started = [obj]
        prov = Local()
        prov.engine = obj.engine
        prov.executors = [obj]
        obj.engine.provisioning = prov
        obj.reader.buffer = ['some info']
        obj.engine.provisioning.post_process()
예제 #26
0
    def test_with_results(self):
        obj = GrinderExecutor()

        obj.engine = EngineEmul()
        obj.settings.merge({'path': __dir__() + "/../grinder/fake_grinder.jar"})
        obj.execution.merge({
            "concurrency": {"local": 2},
            "scenario": {"script": __dir__() + "/../grinder/helloworld.py"}})
        obj.prepare()
        obj.engine.prepared = [obj]
        obj.engine.started = [obj]
        prov = Local()
        prov.engine = obj.engine
        prov.executors = [obj]
        obj.engine.provisioning = prov
        obj.reader.buffer = ['some info']
        obj.engine.provisioning.post_process()
예제 #27
0
 def test_grinder_widget(self):
     obj = GrinderExecutor()
     obj.engine = EngineEmul()
     obj.execution.merge({"scenario": {"script": __dir__() + "/../grinder/helloworld.py"}})
     obj.prepare()
     obj.get_widget()
     self.assertEqual(obj.widget.widgets[0].text, "Script: helloworld.py")
예제 #28
0
 def test_grinder_widget(self):
     obj = GrinderExecutor()
     obj.engine = EngineEmul()
     obj.execution.merge({"scenario": {"script": "tests/grinder/helloworld.py"}})
     obj.prepare()
     obj.get_widget()
     self.assertEqual(obj.widget.script_name.text, "Script: helloworld.py")
예제 #29
0
 def test_grinder_widget(self):
     obj = GrinderExecutor()
     obj.engine = EngineEmul()
     obj.settings.merge({'path': __dir__() + "/../resources/grinder/fake_grinder.jar"})
     obj.engine.config.merge({"provisioning": 'local'})
     obj.execution.merge({"concurrency": {"local": 2},
                          "ramp-up": 2,
                          "hold-for": 2,
                          "scenario": {"script": __dir__() + "/../resources/grinder/helloworld.py"}})
     obj.prepare()
     obj.get_widget()
     self.assertEqual(obj.widget.widgets[0].text, "Grinder: helloworld.py")
예제 #30
0
 def test_grinder_widget(self):
     obj = GrinderExecutor()
     obj.engine = EngineEmul()
     obj.engine.config.merge({"provisioning": 'local'})
     obj.execution.merge({"concurrency": {"local": 2},
                          "ramp-up": 2,
                          "hold-for": 2,
                          "scenario": {"script": __dir__() + "/../grinder/helloworld.py"}})
     obj.prepare()
     obj.get_widget()
     self.assertEqual(obj.widget.widgets[0].text, "Script: helloworld.py")
예제 #31
0
    def test_full_Grinder(self):
        obj = GrinderExecutor()
        obj.kpi_file = os.path.abspath(__dir__() + '/../grinder/test.log')
        obj.engine = EngineEmul()
        obj.settings.merge({'path': __dir__() + "/../grinder/fake_grinder.jar"})
        obj.execution.merge({"concurrency": {"local": 2},
                             "hold-for": 5,
                             "scenario": {"requests": ['http://blazedemo.com']}})
        obj.prepare()

        self.assertEqual(len(obj.cmd_line), 5)
        cmd_line = ' '.join(obj.cmd_line)
        self.assertTrue(cmd_line.startswith('java -classpath'))
        self.assertNotEqual(cmd_line.find('net.grinder.Grinder'), -1)

        try:
            obj.cmd_line = __dir__() + "/../grinder/grinder" + EXE_SUFFIX
            obj.startup()
            while not obj.check():
                time.sleep(obj.engine.check_interval)
        finally:
            obj.shutdown()
        obj.post_process()
        self.assertFalse(obj.has_results())
예제 #32
0
 def test_requests(self):
     obj = GrinderExecutor()
     obj.engine = EngineEmul()
     obj.settings.merge({'path': __dir__() + "/../grinder/fake_grinder.jar"})
     obj.execution.merge({"scenario": {"requests": ['http://blazedemo.com']}})
     obj.prepare()
예제 #33
0
def get_grinder():
    obj = GrinderExecutor()
    obj.engine = EngineEmul()
    obj.env = obj.engine.env
    obj.settings.merge({'path': RESOURCES_DIR + "grinder/fake_grinder.jar"})
    return obj
예제 #34
0
 def test_requests(self):
     obj = GrinderExecutor()
     obj.engine = EngineEmul()
     obj.execution.merge({"scenario": {"requests": ['http://blazedemo.com']}})
     obj.prepare()
예제 #35
0
    def test_full_Grinder(self):
        obj = GrinderExecutor()
        obj.kpi_file = os.path.abspath(__dir__() + '/../grinder/test.log')
        obj.engine = EngineEmul()
        obj.settings.merge(
            {'path': __dir__() + "/../grinder/fake_grinder.jar"})
        obj.execution.merge({
            "concurrency": {
                "local": 2
            },
            "hold-for": 5,
            "scenario": {
                "requests": ['http://blazedemo.com']
            }
        })
        obj.prepare()

        self.assertEqual(len(obj.cmd_line), 5)
        cmd_line = ' '.join(obj.cmd_line)
        self.assertTrue(cmd_line.startswith('java -classpath'))
        self.assertNotEqual(cmd_line.find('net.grinder.Grinder'), -1)

        try:
            obj.cmd_line = __dir__() + "/../grinder/grinder" + EXE_SUFFIX
            obj.startup()
            while not obj.check():
                time.sleep(obj.engine.check_interval)
        finally:
            obj.shutdown()
        obj.post_process()
        self.assertFalse(obj.has_results())
예제 #36
0
 def test_resource_files_collection_basic(self):
     obj = GrinderExecutor()
     obj.engine = EngineEmul()
     obj.execution.merge({"scenario": {"script": __dir__() + "/../grinder/helloworld.py"}})
     res_files = obj.resource_files()
     self.assertEqual(len(res_files), 1)
예제 #37
0
    def test_full_Grinder(self):
        obj = GrinderExecutor()
        obj.kpi_file = os.path.abspath(__dir__() + "/../grinder/test.log")
        obj.engine = EngineEmul()
        obj.execution.merge(
            {"concurrency": {"local": 2}, "hold-for": 5, "scenario": {"requests": ["http://blazedemo.com"]}}
        )
        obj.prepare()

        try:
            obj.cmd_line = __dir__() + "/../grinder/grinder.sh"
            obj.startup()
            while not obj.check():
                time.sleep(obj.engine.check_interval)
        finally:
            obj.shutdown()
        self.assertRaises(RuntimeWarning, obj.post_process)
예제 #38
0
def get_grinder():
    obj = GrinderExecutor()
    obj.engine = EngineEmul()
    obj.env = obj.engine.env
    obj.settings.merge({'path': RESOURCES_DIR + "grinder/fake_grinder.jar"})
    return obj
예제 #39
0
    def test_full_Grinder(self):
        obj = GrinderExecutor()
        obj.kpi_file = os.path.abspath(__dir__() + '/../grinder/test.log')
        obj.engine = EngineEmul()
        obj.execution.merge({
            "concurrency": {
                "local": 2
            },
            "hold-for": 5,
            "scenario": {
                "requests": ['http://blazedemo.com']
            }
        })
        obj.prepare()

        try:
            obj.cmd_line = __dir__() + "/../grinder/grinder.sh"
            obj.startup()
            while not obj.check():
                time.sleep(obj.engine.check_interval)
        finally:
            obj.shutdown()
        self.assertRaises(RuntimeWarning, obj.post_process)
예제 #40
0
 def test_diagnostics(self):
     obj = GrinderExecutor()
     obj.kpi_file = os.path.abspath(RESOURCES_DIR + 'grinder/test.log')
     obj.engine = EngineEmul()
     obj.settings.merge(
         {'path': RESOURCES_DIR + "grinder/fake_grinder.jar"})
     obj.execution.merge({
         "hold-for": 2,
         "scenario": {
             "keepalive": False,
             "requests": ['http://blazedemo.com']
         }
     })
     obj.prepare()
     try:
         obj.cmd_line = RESOURCES_DIR + "grinder/grinder" + EXE_SUFFIX
         obj.startup()
         while not obj.check():
             time.sleep(obj.engine.check_interval)
     finally:
         obj.shutdown()
     obj.post_process()
     self.assertIsNotNone(obj.get_error_diagnostics())