def test_jmx_unicode_checkmark(self): obj = JMX() res = obj._get_http_request("url", "label", "method", 0, {"param": u"✓"}, True) prop = res.find(".//stringProp[@name='Argument.value']") self.assertNotEqual("BINARY", prop.text) self.assertEqual(u"✓", prop.text)
def configure(self, jmx_file=None, load=None, settings=None, has_ctg=None): executor = MockJMeterExecutor(load, settings, has_ctg) executor.engine.config.merge({Provisioning.PROV: 'local'}) executor.install_required_tools() self.obj = LoadSettingsProcessor(executor) if jmx_file: self.jmx = JMX(jmx_file)
def test_source_ips_multiple(self): obj = JMX() res = obj._get_http_request("/", "label", "method", 0, {}, True, use_random_host_ip=True, host_ips=["192.168.1.1", "192.168.1.2"]) self.assertEqual( "${__chooseRandom(192.168.1.1,192.168.1.2,randomAddr)}", res.find(".//stringProp[@name='HTTPSampler.ipSource']").text)
def test_param_url(self): obj = JMX() res = obj._get_http_request( url= "https://example_url.net/Xhtml;jsessionid=XXXX:XXXX?JacadaApplicationName=XXXX", label="label", method="method", timeout=0, body={}, keepalive=True) self.assertEqual( "/Xhtml;jsessionid=XXXX:XXXX?JacadaApplicationName=XXXX", res.find(".//stringProp[@name='HTTPSampler.path']").text)
def test_no_port(self): obj = JMX() res = obj._get_http_request("http://hostname", "label", "method", 0, {}, True) self.assertEqual( "", res.find(".//stringProp[@name='HTTPSampler.path']").text) self.assertEqual( "hostname", res.find(".//stringProp[@name='HTTPSampler.domain']").text) self.assertEqual( "", res.find(".//stringProp[@name='HTTPSampler.port']").text)
def test_variable_hostname(self): obj = JMX() res = obj._get_http_request("http://${hostName}:${Port}/${Path}", "label", "method", 0, {}, True) self.assertEqual( "/${Path}", res.find(".//stringProp[@name='HTTPSampler.path']").text) self.assertEqual( "${hostName}", res.find(".//stringProp[@name='HTTPSampler.domain']").text) self.assertEqual( "${Port}", res.find(".//stringProp[@name='HTTPSampler.port']").text)
def test_jmx_2tg(self): obj = JMeterExecutor() obj.engine = EngineEmul() obj.engine.config[Provisioning.PROV] = 'test' obj.execution = BetterDict() obj.execution.merge({ "concurrency": 1051, "ramp-up": 15, "iterations": 100, "scenario": {"script": __dir__() + "/../jmx/two_tg.jmx"} }) obj.prepare() jmx = JMX(obj.modified_jmx) selector = 'jmeterTestPlan>hashTree>hashTree>ThreadGroup' selector += '>stringProp[name=ThreadGroup\.num_threads]' thr = jmx.get(selector) self.assertEquals('420', thr[0].text) self.assertEquals('631', thr[1].text)
def test_json_body_app_str(self): obj = JMeterExecutor() obj.engine = EngineEmul() obj.execution.merge({ "scenario": { "requests": [{ "url": "http://blazedemo.com", "headers": { "Content-Type": "application/json" }, "body": "{\"store_id\": \"${store_id}\", \"display_name\": \"${display_name}\"}" }] } }) obj.prepare() jmx = JMX(obj.original_jmx) selector = 'elementProp[name="HTTPsampler.Arguments"]>collectionProp' selector += '>elementProp>stringProp[name="Argument.value"]' self.assertNotEqual(jmx.get(selector)[0].text.find('store_id'), -1)
def test_int_udv(self): res = JMX() data = {"varname2": "1", "varname": 1, 2: 3} res.add_user_def_vars_elements(data)