jmeter 面试题
时间: 2024-12-16 14:13:45 浏览: 13
在JMeter面试题中,关于简单脚本编写的问题可能会考察对基本元素的理解以及如何构造测试计划。这里有两个关键点:
1. **foreach控制器**[^1]: 考察对循环控制的理解。在JMeter中,`foreach controller`用于遍历给定的数据源(如CSV文件),这有助于模拟多用户或多数据集的情况。面试时可能询问如何配置该控制器以迭代执行不同数据项,比如:
```jmx
<hashTree>
<elementProp>
<name>__jmeter_variables</name>
< elementType>Arguments</elementType>
<testElement>
<stringProp name="Arguments.name">data</stringProp>
<collectionProp name="Arguments.arguments">
<element>
<string>value1</string>
</element>
<element>
<string>value2</string>
</element>
<!-- 更多值 -->
</collectionProp>
</testElement>
</elementProp>
<elementProp>
<name>Argument Names</name>
< elementType>Arguments</elementType>
<testElement>
<collectionProp name="Arguments.arguments">
<element>
<string>${data}</string>
</element>
</collectionProp>
</testElement>
</elementProp>
<controller guiclass="ForeachControl" testclass="ForeachController" testname="Loop through data" enabled="true">
<stringProp name="FORWARD_ONLY">${__jmeter_variables.data}</stringProp>
...
</controller>
</hashTree>
```
2. **线程组与采样器**[^2]: 需要了解如何组合线程组和各种采样器。线程组定义了并发用户和调度策略,而采样器则负责实际的HTTP、FTP或其他请求。面试者可能会问如何配置一个基本的测试计划,包括添加HTTP请求器作为采样器,并连接到线程组:
- 添加一个HTTP请求器(如HTTP Request Defaults)
- 设置线程组参数(如用户数、持续时间等)
```xml
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="My Thread Group" enabled="true">
...
<SamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPRequest" testname="My HTTP Request" enabled="true">
<elementProp .../>
</SamplerProxy>
...
</ThreadGroup>
```
阅读全文