用python读取jmx文件, 在指定的线程组中,找到这个线程组下面的所有控制器,并将其按照顺序,返回到字典中
时间: 2024-04-16 13:28:48 浏览: 98
你可以稍作修改,将找到的控制器按顺序存储在一个字典中。以下是更新后的示例代码:
```python
import xml.etree.ElementTree as ET
def find_controllers_in_thread_group(jmx_file, thread_group_name):
tree = ET.parse(jmx_file)
root = tree.getroot()
controllers = {}
# 查找所有线程组
thread_groups = root.findall(".//ThreadGroup")
for thread_group in thread_groups:
name = thread_group.attrib.get("testname")
if name == thread_group_name:
# 查找当前线程组下的所有控制器
controller_elements = thread_group.findall(".//kg.apc.jmeter.control.Controller")
for index, controller_element in enumerate(controller_elements):
controller_name = controller_element.attrib.get("testname")
controllers[controller_name] = index
break
return controllers
```
在更新后的代码中,我们使用一个字典 `controllers` 来存储控制器的名称和它们在线程组中的顺序。`controller_name` 存储控制器名称,`index` 存储控制器在线程组中的索引位置。
你可以调用 `find_controllers_in_thread_group` 函数来查找指定线程组下的所有控制器,并将它们按顺序存储在返回的字典中。注意,字典中的键是控制器的名称,值是控制器在线程组中的索引位置。
希望这个更新后的代码对你有帮助!如果有任何问题,请随时提问。
阅读全文