def test_comments(self): element = FlowControlAction(comments='My flow') rendered_doc = tag_wrapper(element.to_xml(), self.root_tag) parsed_doc = xmltodict.parse(rendered_doc)[self.root_tag] for tag in parsed_doc[self.root_tag]['stringProp']: if tag['@name'] == 'TestPlan.comments': assert tag['#text'] == 'My flow'
def test_incr(self): element = Counter(variable_name="var", incr=2) rendered_doc = tag_wrapper(element.to_xml(), 'result') parsed_doc = xmltodict.parse(rendered_doc) for tag in parsed_doc['result']['CounterConfig']['stringProp']: if tag['@name'] == 'CounterConfig.incr': assert tag['#text'] == '2'
def test_unit(self): element = FreeFormArrivalsThreadGroup(unit=Unit.SECOND) rendered_doc = element.to_xml() parsed_doc = xmltodict.parse(tag_wrapper(rendered_doc, 'test_results')) for tag in parsed_doc['test_results']['com.blazemeter.jmeter.threads.arrivals.FreeFormArrivalsThreadGroup']['stringProp']: if tag['@name'] == 'Unit': assert tag['#text'] == 'S'
def test_filename(self): element = FreeFormArrivalsThreadGroup(log_filename='file') rendered_doc = element.to_xml() parsed_doc = xmltodict.parse(tag_wrapper(rendered_doc, 'test_results')) for tag in parsed_doc['test_results']['com.blazemeter.jmeter.threads.arrivals.FreeFormArrivalsThreadGroup']['stringProp']: if tag['@name'] == 'LogFilename': assert tag['#text'] == 'file'
def test_target_rate(self): element = FreeFormArrivalsThreadGroup(schedule=[{"start": 1, "end": 2, "duration": 3}]) rendered_doc = element.to_xml() parsed_doc = xmltodict.parse(tag_wrapper(rendered_doc, 'test_results')) for tag in parsed_doc['test_results']['com.blazemeter.jmeter.threads.arrivals.FreeFormArrivalsThreadGroup']['collectionProp']['collectionProp']['stringProp']: if tag['@name'] == '49': assert tag['#text'] == '1'
def test_concurrency_limit(self): element = FreeFormArrivalsThreadGroup(concurrency_limit=50) rendered_doc = element.to_xml() parsed_doc = xmltodict.parse(tag_wrapper(rendered_doc, 'test_results')) for tag in parsed_doc['test_results']['com.blazemeter.jmeter.threads.arrivals.FreeFormArrivalsThreadGroup']['stringProp']: if tag['@name'] == 'ConcurrencyLimit': assert tag['#text'] == '50'
def test_on_sample_error(self): element = FreeFormArrivalsThreadGroup(on_sample_error=ThreadGroupAction.START_NEXT_LOOP) rendered_doc = element.to_xml() parsed_doc = xmltodict.parse(tag_wrapper(rendered_doc, 'test_results')) for tag in parsed_doc['test_results']['com.blazemeter.jmeter.threads.arrivals.FreeFormArrivalsThreadGroup']['stringProp']: if tag['@name'] == 'ThreadGroup.on_sample_error': assert tag['#text'] == 'startnextloop'
def test_is_regex(self): element = JSONAssertion(is_regex=False) rendered_doc = element.to_xml() parsed_doc = xmltodict.parse(tag_wrapper(rendered_doc, 'test_result')) for tag in parsed_doc['test_result']['JSONPathAssertion']['boolProp']: if tag['@name'] == 'ISREGEX': assert tag['#text'] == 'false'
def test_invert(self): element = JSONAssertion(invert=True) rendered_doc = element.to_xml() parsed_doc = xmltodict.parse(tag_wrapper(rendered_doc, 'test_result')) for tag in parsed_doc['test_result']['JSONPathAssertion']['boolProp']: if tag['@name'] == 'INVERT': assert tag['#text'] == 'true'
def test_functional_mode(self): element = TestPlan(functional_mode=True) rendered_doc = element.to_xml().replace('<?xml version="1.0" encoding="UTF-8"?>','') parsed_doc = xmltodict.parse(tag_wrapper(rendered_doc, 'test_results')) for tag in parsed_doc['test_results']['jmeterTestPlan']['hashTree']['TestPlan']['boolProp']: if tag['@name'] == 'TestPlan.functional_mode': assert tag['#text'] == 'true'
def test_serialize_threadgroups(self): element = TestPlan(serialize_threadgroups=False) rendered_doc = element.to_xml().replace('<?xml version="1.0" encoding="UTF-8"?>','') parsed_doc = xmltodict.parse(tag_wrapper(rendered_doc, 'test_results')) for tag in parsed_doc['test_results']['jmeterTestPlan']['hashTree']['TestPlan']['boolProp']: if tag['@name'] == 'TestPlan.serialize_threadgroups': assert tag['#text'] == 'false'
def test_validation(self): element = JSONAssertion(validation=True) rendered_doc = element.to_xml() parsed_doc = xmltodict.parse(tag_wrapper(rendered_doc, 'test_result')) for tag in parsed_doc['test_result']['JSONPathAssertion']['boolProp']: if tag['@name'] == 'JSONVALIDATION': assert tag['#text'] == 'true'
def test_expect_null(self): element = JSONAssertion(expect_null=True) rendered_doc = element.to_xml() parsed_doc = xmltodict.parse(tag_wrapper(rendered_doc, 'test_result')) for tag in parsed_doc['test_result']['JSONPathAssertion']['boolProp']: if tag['@name'] == 'EXPECT_NULL': assert tag['#text'] == 'true'
def test_file_encoding(self): element = CsvDataSetConfig(file_path='main.py', variable_names=['var1', 'var2'], file_encoding=FileEncoding.UTF16) rendered_doc = tag_wrapper(element.to_xml(), 'result') parsed_doc = xmltodict.parse(rendered_doc) assert parsed_doc['result']['CSVDataSet']['stringProp'][2][ '#text'] == 'UTF-16'
def test_delimiter(self): element = CsvDataSetConfig(file_path='main.py', variable_names=['var1', 'var2'], delimiter='|') rendered_doc = tag_wrapper(element.to_xml(), 'result') parsed_doc = xmltodict.parse(rendered_doc) assert parsed_doc['result']['CSVDataSet']['stringProp'][1][ '#text'] == '|'
def test_on_sample_error(self): element = TearDownThreadGroup( on_sample_error=ThreadGroupAction.START_NEXT_LOOP) rendered_doc = element.to_xml() parsed_doc = xmltodict.parse(tag_wrapper(rendered_doc, 'test_results')) for tag in parsed_doc['test_results']['PostThreadGroup']['stringProp']: if tag['@name'] == 'ThreadGroup.on_sample_error': assert tag['#text'] == 'startnextloop'
def test_header2(self): element = HTTPHeaderManager(headers=[{'var': '12'}, {'var2': '22'}]) rendered_doc = tag_wrapper(element.to_xml(), 'result') parsed_doc = xmltodict.parse(rendered_doc) for tag in parsed_doc['result']['HeaderManager']['collectionProp']['elementProp']: if tag['@name'] == 'var': assert tag['stringProp'][0]['#text'] == 'var' assert tag['stringProp'][1]['#text'] == '12'
def test_name(self): element = Header(name='var', value='1') rendered_doc = tag_wrapper(element.to_xml(), 'result') parsed_doc = xmltodict.parse(rendered_doc) assert parsed_doc['result']['elementProp']['@name'] == 'var' for tag in parsed_doc['result']['elementProp']['stringProp']: if tag['@name'] == 'Header.name': assert tag['#text'] == 'var'
def test_scope1(self): element = JSONExtractor(scope=Scope.MAIN_AND_SUB) rendered_doc = element.to_xml() parsed_doc = xmltodict.parse(tag_wrapper(rendered_doc, 'test_result')) for tag in parsed_doc['test_result']['JSONPostProcessor'][ 'stringProp']: if tag['@name'] == 'Sample.scope': assert tag['#text'] == 'all'
def test_match_numbers(self): element = JSONExtractor(match_numbers=0) rendered_doc = element.to_xml() parsed_doc = xmltodict.parse(tag_wrapper(rendered_doc, 'test_result')) for tag in parsed_doc['test_result']['JSONPostProcessor'][ 'stringProp']: if tag['@name'] == 'JSONPostProcessor.match_numbers': assert tag['#text'] == '0'
def test_jsonPathExprs(self): element = JSONExtractor(jsonPathExprs='expr[*].result') rendered_doc = element.to_xml() parsed_doc = xmltodict.parse(tag_wrapper(rendered_doc, 'test_result')) for tag in parsed_doc['test_result']['JSONPostProcessor'][ 'stringProp']: if tag['@name'] == 'JSONPostProcessor.jsonPathExprs': assert tag['#text'] == 'expr[*].result'
def test_custom_message(self): element = ResponseAssertion(custom_message="Mes") rendered_doc = element.to_xml() parsed_doc = xmltodict.parse(tag_wrapper(rendered_doc, 'test_result')) for tag in parsed_doc['test_result']['ResponseAssertion'][ 'stringProp']: if tag['@name'] == 'Assertion.custom_message': assert tag['#text'] == 'Mes'
def test_header_contain(self): element = CsvDataSetConfig( file_path='main.py', variable_names=['var1', 'var2'], ) rendered_doc = tag_wrapper(element.to_xml(), 'result') is_contain = 'xml version' in rendered_doc assert is_contain is False
def test_shared_mode(self): element = CsvDataSetConfig(file_path='main.py', variable_names=['var1', 'var2'], share_mode=ShareMode.GROUP) rendered_doc = tag_wrapper(element.to_xml(), 'result') parsed_doc = xmltodict.parse(rendered_doc) assert parsed_doc['result']['CSVDataSet']['stringProp'][4][ '#text'] == 'shareMode.group'
def test_stop_thread(self): element = CsvDataSetConfig(file_path='main.py', variable_names=['var1', 'var2'], stop_thread=True) rendered_doc = tag_wrapper(element.to_xml(), 'result') parsed_doc = xmltodict.parse(rendered_doc) assert parsed_doc['result']['CSVDataSet']['boolProp'][3][ '#text'] == 'true'
def test_event_tags(self): element = BackendListener(event_tags='tag for fun') rendered_doc = tag_wrapper(element.to_xml(), self.root_tag) parsed_doc = xmltodict.parse(rendered_doc)[self.root_tag] temp = parsed_doc[self.root_tag]['elementProp']['collectionProp']['elementProp'][8]['stringProp'][1] for key in temp: if key == '#text': assert temp[key] == 'tag for fun'
def test_test_field(self): element = ResponseAssertion(test_field=TestField.REQUEST_DATA) rendered_doc = element.to_xml() parsed_doc = xmltodict.parse(tag_wrapper(rendered_doc, 'test_result')) for tag in parsed_doc['test_result']['ResponseAssertion'][ 'stringProp']: if tag['@name'] == 'Assertion.test_field': assert tag['#text'] == 'Assertion.request_data'
def test_influx_db_url(self): element = BackendListener(influx_db_url='localhost') rendered_doc = tag_wrapper(element.to_xml(), self.root_tag) parsed_doc = xmltodict.parse(rendered_doc)[self.root_tag] temp = parsed_doc[self.root_tag]['elementProp']['collectionProp']['elementProp'][1]['stringProp'][1] for key in temp: if key == '#text': assert temp[key] == 'localhost'
def test_scope1(self): element = ResponseAssertion(scope=Scope.MAIN_AND_SUB) rendered_doc = element.to_xml() parsed_doc = xmltodict.parse(tag_wrapper(rendered_doc, 'test_result')) for tag in parsed_doc['test_result']['ResponseAssertion'][ 'stringProp']: if tag['@name'] == 'Assertion.scope': assert tag['#text'] == 'all'
def test_defaultValues(self): element = JSONExtractor(defaultValues='default') rendered_doc = element.to_xml() parsed_doc = xmltodict.parse(tag_wrapper(rendered_doc, 'test_result')) for tag in parsed_doc['test_result']['JSONPostProcessor'][ 'stringProp']: if tag['@name'] == 'JSONPostProcessor.defaultValues': assert tag['#text'] == 'default'