2)配置原件
1--CSV Data Set Config
用途
- 参数化测试:从CSV文件中读取数据,为每个请求提供不同的参数值。
- 数据驱动测试:使用外部数据文件来驱动测试,使测试更加灵活和可扩展。
配置步骤
-
准备CSV文件
- 创建一个CSV文件,每行代表一组测试数据。
- 例如,创建一个名为
test_data.csv
的文件,内容如下:username,password user1,pass1 user2,pass2 user3,pass3
-
添加CSV Data Set Config
- 右键点击线程组(Thread Group)。
- 选择“添加” -> “配置元件” -> “CSV Data Set Config”。
-
配置CSV Data Set Config
- 名称:给CSV Data Set Config一个有意义的名称。
- 文件名:指定CSV文件的路径(可以是绝对路径或相对路径)。
- 变量名:为CSV文件中的每一列指定一个变量名。这些变量名将在测试计划中使用。
- 分隔符:指定CSV文件中的分隔符,默认是逗号(,)。
- 忽略第一行:选择是否忽略CSV文件的第一行(通常是列标题)。
- 回收策略:选择当数据集用尽时的行为。
True
:重新开始读取文件。False
:停止测试。
- 共享模式:选择数据共享模式。
All threads
:所有线程共享同一个数据集。Current thread group
:当前线程组内的线程共享同一个数据集。Current thread
:每个线程都有自己独立的数据集。
示例配置
假设我们需要测试一个登录接口,使用CSV文件中的用户名和密码进行参数化。
-
创建CSV文件:
- 文件名:
test_data.csv
- 内容:
username,password user1,pass1 user2,pass2 user3,pass3
- 文件名:
-
创建线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“登录测试”)。
-
添加CSV Data Set Config:
- 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> CSV Data Set Config。
- 配置CSV Data Set Config:
- 名称:CSV Data Set Config
- 文件名:
test_data.csv
- 变量名:
username,password
- 分隔符:
,
- 忽略第一行:勾选
- 回收策略:
False
- 共享模式:
Current thread
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 服务器名称或IP:目标服务器的地址。
- 端口号:目标服务器的端口。
- 协议:HTTP或HTTPS。
- 方法:POST(假设登录接口是POST请求)。
- 路径:登录接口的路径(例如
/login
)。 - 参数:
- 名称:
username
- 值:
${username}
- 名称:
password
- 值:
${password}
- 名称:
-
添加监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 运行测试,查看结果。
优化建议
-
文件路径:
- 确保CSV文件的路径正确,可以使用相对路径以便于移植。
-
数据量:
- 如果CSV文件中的数据量很大,确保JMeter有足够的内存来处理这些数据。
-
数据共享:
- 根据测试需求选择合适的共享模式。对于需要每个线程独立数据的场景,选择
Current thread
模式。
- 根据测试需求选择合适的共享模式。对于需要每个线程独立数据的场景,选择
-
调试:
- 使用“查看结果树”监听器查看请求和响应的详细信息,确保变量被正确替换。
-
错误处理:
- 如果CSV文件中的数据格式不正确,可能会导致测试失败。确保CSV文件的格式正确,并在必要时添加错误处理逻辑。
2--HTTP信息头管理器
用途
- 设置请求头:为HTTP请求添加自定义的头信息。
- 保持一致性:确保所有相关的HTTP请求都包含相同的头信息。
- 模拟真实请求:许多Web应用依赖于特定的请求头信息,使用HTTP信息头管理器可以更真实地模拟用户请求。
配置步骤
-
添加HTTP信息头管理器
- 右键点击线程组(Thread Group)或特定的HTTP请求。
- 选择“添加” -> “配置元件” -> “HTTP信息头管理器”。
-
配置HTTP信息头管理器
- 名称:给HTTP信息头管理器一个有意义的名称。
- 添加头信息:点击“添加”按钮,添加需要的头信息。
- 名称:头信息的名称(例如
Content-Type
、Authorization
、Cookie
等)。 - 值:头信息的值(例如
application/json
、Bearer <token>
、sessionid=12345
等)。
- 名称:头信息的名称(例如
示例配置
假设我们需要测试一个需要认证的API,并且每个请求都需要包含特定的Authorization头和Content-Type头。
-
创建线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“API测试”)。
-
添加HTTP信息头管理器:
- 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> HTTP信息头管理器。
- 配置HTTP信息头管理器:
- 名称:HTTP信息头管理器
- 添加头信息:
- 名称:
Authorization
- 值:
Bearer <your_token>
- 名称:
Content-Type
- 值:
application/json
- 名称:
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 服务器名称或IP:目标服务器的地址。
- 端口号:目标服务器的端口。
- 协议:HTTP或HTTPS。
- 方法:GET、POST等。
- 路径:API的路径(例如
/api/v1/users
)。
-
添加监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 运行测试,查看结果。
优化建议
-
避免重复配置:
- 如果多个HTTP请求需要相同的头信息,可以将HTTP信息头管理器添加到线程组级别,而不是每个请求单独配置。这样可以减少重复配置,提高维护的便利性。
-
动态头信息:
- 对于需要动态生成的头信息(例如Token),可以使用JMeter的变量或函数。例如,可以在头信息的值中使用
${token}
,然后在测试计划中定义token
变量。
- 对于需要动态生成的头信息(例如Token),可以使用JMeter的变量或函数。例如,可以在头信息的值中使用
-
调试和验证:
- 使用“查看结果树”监听器查看请求和响应的详细信息,确保头信息被正确添加。
- 可以使用“查看结果树”中的“请求”选项卡查看发送的请求头信息。
-
性能考虑:
- 尽量减少不必要的头信息,只添加必需的头信息,以减少请求的开销。
- 对于大型测试计划,确保头信息的配置不会导致性能瓶颈。
3--HTTP缓存管理器
用途
- 减少重复请求:避免多次请求相同的静态资源(如图片、CSS、JavaScript文件),从而减少网络流量和服务器负载。
- 提高测试效率:通过缓存机制,可以加快测试用例的执行速度,特别是在多次迭代测试中。
- 模拟真实用户行为:浏览器通常会缓存静态资源,使用HTTP缓存管理器可以使测试更接近真实用户的上网体验。
配置步骤
-
添加HTTP缓存管理器
- 右键点击线程组(Thread Group)或测试计划(Test Plan)。
- 选择“添加” -> “配置元件” -> “HTTP 缓存管理器”。
-
配置HTTP缓存管理器
- 名称:给HTTP缓存管理器一个有意义的名称。
- 清除每迭代的缓存:选择是否在每次迭代开始时清空缓存。
True
:每次迭代开始时清空缓存。False
:不清空缓存,保持上一次迭代的缓存状态。
- 使用Expires字段:选择是否使用HTTP响应中的Expires头来决定缓存的有效期。
True
:使用Expires头。False
:不使用Expires头。
- 最大缓存条目数:设置缓存的最大条目数。超过这个数量时,最早的缓存条目将被移除。
- 最大缓存大小:设置缓存的最大总大小(以字节为单位)。超过这个大小时,最早的缓存条目将被移除。
示例配置
假设我们需要测试一个Web应用程序,并希望模拟浏览器的缓存机制以减少不必要的网络请求。
-
创建线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“缓存测试”)。
-
添加HTTP缓存管理器:
- 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> HTTP 缓存管理器。
- 配置HTTP缓存管理器:
- 名称:HTTP 缓存管理器
- 清除每迭代的缓存:False
- 使用Expires字段:True
- 最大缓存条目数:50
- 最大缓存大小:10000000(10MB)
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 服务器名称或IP:目标服务器的地址。
- 端口号:目标服务器的端口。
- 协议:HTTP或HTTPS。
- 方法:GET(假设请求的是静态资源)。
- 路径:静态资源的路径(例如
/images/logo.png
)。
-
添加监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 运行测试,查看结果。
注意事项
- 缓存策略:HTTP缓存管理器会根据HTTP响应头中的Cache-Control、Expires等字段来决定缓存的有效期。
- 缓存大小:合理设置最大缓存条目数和最大缓存大小,避免占用过多内存。
- 清除缓存:根据测试需求选择是否在每次迭代开始时清空缓存。如果不清空缓存,可以更好地模拟用户在多次访问同一页面时的行为。
4-- Http cookie管理器
用途
- 管理Cookie:自动处理和存储服务器返回的Cookie,并在后续请求中自动发送这些Cookie。
- 保持会话状态:确保多个请求之间的会话状态保持一致,特别是在需要登录或其他会话管理的情况下。
配置步骤
-
添加HTTP Cookie管理器
- 右键点击线程组(Thread Group)或测试计划(Test Plan)。
- 选择“添加” -> “配置元件” -> “HTTP Cookie Manager”。
-
配置HTTP Cookie管理器
- 名称:给HTTP Cookie管理器一个有意义的名称。
- Cookie策略:选择处理Cookie的策略。常见的策略有:
default
:默认策略,适用于大多数情况。compatibility
:兼容旧版浏览器的行为。netscape
:遵循Netscape规范。rfc2109
:遵循RFC 2109规范。rfc2965
:遵循RFC 2965规范。ignore
:忽略所有Cookie。
- 共享Cookie:选择是否在多个用户线程之间共享Cookie。
True
:所有线程共享同一个Cookie池。False
:每个线程有自己的独立Cookie池。
- 预定义Cookie:手动添加预定义的Cookie。这对于某些需要初始Cookie的测试场景非常有用。
- 名称:Cookie的名称。
- 值:Cookie的值。
- 域名:Cookie的域名。
- 路径:Cookie的路径。
- 注释:可选的注释信息。
- 过期时间:Cookie的过期时间(可选)。
- 安全:是否标记为安全Cookie(仅通过HTTPS传输)。
示例配置
假设我们需要测试一个需要登录的Web应用程序,并且希望JMeter能够自动管理Cookie以保持会话状态。
-
创建线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“登录测试”)。
-
添加HTTP Cookie管理器:
- 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> HTTP Cookie Manager。
- 配置HTTP Cookie管理器:
- 名称:HTTP Cookie Manager
- Cookie策略:default
- 共享Cookie:False
- 预定义Cookie:(如果需要)
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 服务器名称或IP:目标服务器的地址。
- 端口号:目标服务器的端口。
- 协议:HTTP或HTTPS。
- 方法:POST(假设登录接口是POST请求)。
- 路径:登录接口的路径(例如
/login
)。 - 参数:添加登录所需的参数(例如
username
和password
)。
-
添加监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 运行测试,查看结果。
注意事项
- Cookie生命周期:HTTP Cookie管理器会根据服务器返回的Set-Cookie头自动管理Cookie的生命周期。
- 安全Cookie:如果服务器返回的Cookie标记为安全(Secure),则只有在HTTPS请求中才会发送该Cookie。
- 跨域Cookie:HTTP Cookie管理器会自动处理跨域Cookie,但需要确保域名和路径匹配。
5--HTTP请求默认值
用途
- 设置默认值:为多个HTTP请求设置通用的默认值,如服务器地址、端口号、协议等。
- 简化配置:避免在每个HTTP请求中重复配置相同的参数。
配置步骤
-
添加HTTP请求管理器
- 右键点击线程组(Thread Group)。
- 选择“添加” -> “配置元件” -> “HTTP请求默认值”(HTTP Request Defaults)。
-
配置HTTP请求管理器
- 名称:给HTTP请求管理器一个有意义的名称。
- 服务器名称或IP:目标服务器的地址。
- 端口号:目标服务器的端口。
- 协议:HTTP或HTTPS。
- 内容编码:请求的编码方式(如UTF-8)。
- 路径:请求的默认路径(可选)。
- 方法:请求的默认方法(如GET、POST等)。
- 参数:请求的默认参数(可选)。
- HTTP头部:请求的默认头部信息(可选)。
示例配置
假设我们需要测试一个Web应用,所有请求都指向同一个服务器,并且使用相同的协议和端口。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
-
添加HTTP请求管理器:
- 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> HTTP请求默认值。
- 配置HTTP请求管理器:
- 名称:HTTP请求默认值
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 内容编码:请求的编码方式(例如
UTF-8
)。 - 路径:请求的默认路径(可选,例如
/api
)。 - 方法:请求的默认方法(可选,例如
GET
)。
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:请求名称(例如“获取用户列表”)。
- 路径:请求的具体路径(例如
/users
)。 - 方法:请求的方法(例如
GET
)。 - 参数:请求的参数(可选)。
- HTTP头部:请求的头部信息(可选)。
-
添加监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 运行测试,查看结果。
优化建议
-
默认值:
- 尽可能多地设置默认值,减少每个HTTP请求的配置工作量。
-
路径和方法:
- 如果所有请求的路径和方法相同,可以在HTTP请求管理器中设置默认值,避免在每个请求中重复配置。
-
参数和头部:
- 对于常用的参数和头部信息,可以在HTTP请求管理器中设置默认值,但在具体请求中也可以覆盖这些默认值。
-
动态参数:
- 使用JMeter的变量和函数来动态生成请求参数,例如使用
${variable}
来引用变量。
- 使用JMeter的变量和函数来动态生成请求参数,例如使用
-
调试:
- 使用“查看结果树”监听器查看请求和响应的详细信息,确保请求的配置正确无误。
6--Bolt Connection Configuration
用途
- 连接 Neo4j 数据库:设置与 Neo4j 数据库的连接信息。
- 执行 Cypher 查询:在测试中执行 Cypher 查询,测试图形数据库的性能。
配置步骤
-
安装 Neo4j 插件
- 下载并安装 JMeter 的 Neo4j 插件。插件通常包含在 JMeter 的插件管理器中。
- 打开 JMeter,点击“选项” -> “插件管理器” -> “可用插件”,搜索并安装 Neo4j 插件。
-
添加 Bolt Connection Configuration
- 右键点击线程组(Thread Group)。
- 选择“添加” -> “配置元件” -> “Bolt Connection Configuration”。
-
配置 Bolt Connection Configuration
- 名称:给 Bolt Connection Configuration 一个有意义的名称。
- Bolt URL:Neo4j 数据库的 Bolt 协议 URL(例如
bolt://localhost:7687
)。 - 用户名:连接 Neo4j 数据库的用户名。
- 密码:连接 Neo4j 数据库的密码。
- 数据库:连接的数据库名称(可选,默认为
neo4j
)。 - 超时时间:连接和查询的超时时间(可选)。
- 复用连接:选择是否复用连接(通常选择
True
)。
示例配置
假设我们需要测试一个 Neo4j 数据库,执行一些 Cypher 查询来验证性能。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Neo4j 性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“查询测试”)。
-
添加 Bolt Connection Configuration
- 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> Bolt Connection Configuration。
- 配置 Bolt Connection Configuration:
- 名称:Bolt Connection Configuration
- Bolt URL:
bolt://localhost:7687
- 用户名:
neo4j
- 密码:
password
- 数据库:
neo4j
- 超时时间:30000(30秒)
- 复用连接:True
-
添加 Bolt Sampler
- 右键点击线程组 -> 添加 -> 取样器 -> Bolt Sampler。
- 配置 Bolt Sampler:
- 名称:查询名称(例如“获取用户列表”)。
- 查询:要执行的 Cypher 查询(例如
MATCH (u:User) RETURN u
)。 - 参数:查询参数(可选)。
- 结果变量:存储查询结果的变量名称(可选)。
-
添加监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 运行测试,查看结果。
优化建议
-
连接复用:
- 选择复用连接(
True
),可以减少连接的开销,提高测试效率。
- 选择复用连接(
-
超时时间:
- 设置合理的超时时间,避免因网络延迟或数据库性能问题导致测试失败。
-
查询优化:
- 确保 Cypher 查询的性能优化,避免执行耗时较长的查询。
-
错误处理:
- 使用断言和监听器来捕获和分析查询结果,及时发现和解决问题。
-
资源监控:
- 在测试过程中监控 Neo4j 数据库的资源使用情况(如CPU、内存、磁盘I/O等),确保测试环境的稳定性。
7--DNS缓存管理器
用途
- 减少DNS查询:避免每次请求都进行DNS解析,减少网络延迟。
- 提高测试效率:通过缓存DNS解析结果,加快测试用例的执行速度。
- 模拟真实用户行为:浏览器通常会缓存DNS解析结果,使用DNS缓存管理器可以使测试更接近真实用户的上网体验。
配置步骤
-
添加DNS缓存管理器
- 右键点击线程组(Thread Group)或测试计划(Test Plan)。
- 选择“添加” -> “配置元件” -> “DNS缓存管理器”。
-
配置DNS缓存管理器
- 名称:给DNS缓存管理器一个有意义的名称。
- 清除每迭代的缓存:选择是否在每次迭代开始时清空DNS缓存。
True
:每次迭代开始时清空缓存。False
:不清空缓存,保持上一次迭代的缓存状态。
- 使用系统DNS缓存:选择是否使用操作系统的DNS缓存。
True
:使用操作系统的DNS缓存。False
:不使用操作系统的DNS缓存,使用JMeter内置的DNS缓存。
示例配置
假设我们需要测试一个Web应用,并希望使用DNS缓存管理器来减少DNS查询,提高测试效率。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
-
添加DNS缓存管理器:
- 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> DNS缓存管理器。
- 配置DNS缓存管理器:
- 名称:DNS缓存管理器
- 清除每迭代的缓存:False
- 使用系统DNS缓存:False
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:请求的方法(例如
GET
)。 - 路径:请求的路径(例如
/index.html
)。
- 服务器名称或IP:目标服务器的地址(例如
-
添加监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 运行测试,查看结果。
优化建议
-
清除每迭代的缓存:
- 根据测试需求选择是否在每次迭代开始时清空DNS缓存。如果不清空缓存,可以更好地模拟用户在多次访问同一页面时的行为。
-
使用系统DNS缓存:
- 如果操作系统已经有一个高效的DNS缓存机制,可以选择使用系统的DNS缓存。否则,使用JMeter内置的DNS缓存通常更可靠。
-
测试环境:
- 确保测试环境中DNS解析服务的稳定性和可靠性,避免因DNS解析问题导致测试失败。
-
调试:
- 使用“查看结果树”监听器查看请求和响应的详细信息,确保DNS解析结果正确无误。
-
性能监控:
- 在测试过程中监控系统的网络性能和DNS解析时间,确保测试环境的稳定性。
8--FTP默认请求
用途
- 设置默认值:为多个FTP请求设置通用的默认值,如服务器地址、端口号、用户名和密码等。
- 简化配置:避免在每个FTP请求中重复配置相同的参数。
配置步骤
-
添加FTP默认请求
- 右键点击线程组(Thread Group)。
- 选择“添加” -> “配置元件” -> “FTP请求默认值”(FTP Request Defaults)。
-
配置FTP默认请求
- 名称:给FTP默认请求一个有意义的名称。
- 服务器地址:FTP服务器的地址。
- 端口号:FTP服务器的端口(默认为21)。
- 用户名:连接FTP服务器的用户名。
- 密码:连接FTP服务器的密码。
- 被动模式:选择是否使用被动模式(通常选择
True
)。 - 超时时间:连接和传输的超时时间(可选)。
示例配置
假设我们需要测试一个FTP服务器,上传和下载文件,并希望使用FTP默认请求来设置通用的连接信息。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“FTP性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“FTP测试”)。
-
添加FTP默认请求:
- 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> FTP请求默认值。
- 配置FTP默认请求:
- 名称:FTP默认请求
- 服务器地址:FTP服务器的地址(例如
ftp.example.com
)。 - 端口号:FTP服务器的端口(默认为21)。
- 用户名:连接FTP服务器的用户名(例如
user
)。 - 密码:连接FTP服务器的密码(例如
password
)。 - 被动模式:True
- 超时时间:30000(30秒)
-
添加FTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> FTP请求。
- 配置FTP请求:
- 名称:请求名称(例如“上传文件”)。
- 服务器地址:留空,使用默认值。
- 端口号:留空,使用默认值。
- 用户名:留空,使用默认值。
- 密码:留空,使用默认值。
- 被动模式:留空,使用默认值。
- 命令:选择FTP命令(例如
STOR
表示上传文件)。 - 远程文件:远程文件路径(例如
/remote/path/file.txt
)。 - 本地文件:本地文件路径(例如
C:\local\path\file.txt
)。 - 二进制模式:选择是否使用二进制模式(通常选择
True
)。
-
添加监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 运行测试,查看结果。
优化建议
-
默认值:
- 尽可能多地设置默认值,减少每个FTP请求的配置工作量。
-
命令和文件路径:
- 确保FTP命令和文件路径的正确性,避免因路径错误导致测试失败。
-
超时时间:
- 设置合理的超时时间,避免因网络延迟或服务器性能问题导致测试失败。
-
被动模式:
- 选择被动模式(
True
),可以避免防火墙和NAT设备的影响,提高测试的稳定性。
- 选择被动模式(
-
错误处理:
- 使用断言和监听器来捕获和分析FTP请求的结果,及时发现和解决问题。
-
资源监控:
- 在测试过程中监控FTP服务器的资源使用情况(如CPU、内存、磁盘I/O等),确保测试环境的稳定性。
9--HTTP授权管理器
用途
- 管理认证信息:为HTTP请求添加自定义的认证信息。
- 支持多种认证方式:支持Basic、Digest、NTLM等多种认证方式。
- 简化配置:避免在每个HTTP请求中重复配置认证信息。
配置步骤
-
添加HTTP授权管理器
- 右键点击线程组(Thread Group)。
- 选择“添加” -> “配置元件” -> “HTTP授权管理器”(HTTP Authorization Manager)。
-
配置HTTP授权管理器
- 名称:给HTTP授权管理器一个有意义的名称。
- 添加授权条目:点击“添加”按钮,添加需要的授权条目。
- Base URL:需要认证的URL的基础部分(例如
http://example.com
)。 - 用户名:认证的用户名。
- 密码:认证的密码。
- 域:认证域(可选,主要用于NTLM认证)。
- 认证方案:选择认证方式(例如Basic、Digest、NTLM等)。
- Base URL:需要认证的URL的基础部分(例如
示例配置
假设我们需要测试一个需要Basic认证的Web应用,并为多个请求添加认证信息。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
-
添加HTTP授权管理器:
- 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> HTTP授权管理器。
- 配置HTTP授权管理器:
- 名称:HTTP授权管理器
- 添加授权条目:
- Base URL:
http://example.com
- 用户名:
user
- 密码:
password
- 域:(可选,留空)
- 认证方案:Basic
- Base URL:
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:请求名称(例如“获取用户列表”)。
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:请求的方法(例如
GET
)。 - 路径:请求的路径(例如
/api/users
)。
-
添加监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 运行测试,查看结果。
优化建议
-
认证方案:
- 根据目标服务器的认证方式选择合适的认证方案。常见的认证方式包括Basic、Digest和NTLM。
-
Base URL:
- 确保Base URL的正确性,Base URL应该是需要认证的URL的基础部分。
-
多条认证信息:
- 如果需要为多个不同的URL添加认证信息,可以在HTTP授权管理器中添加多条授权条目。
-
动态认证信息:
- 使用JMeter的变量和函数来动态生成认证信息,例如使用
${username}
和${password}
来引用变量。
- 使用JMeter的变量和函数来动态生成认证信息,例如使用
-
调试:
- 使用“查看结果树”监听器查看请求和响应的详细信息,确保认证信息被正确添加。
-
错误处理:
- 使用断言和监听器来捕获和分析认证失败的情况,及时发现和解决问题。
10--JDBC Connection Configuration
用途
- 连接数据库:设置与数据库的连接信息,如数据库URL、用户名、密码等。
- 执行SQL查询:在测试中执行SQL查询,测试数据库的性能。
- 管理连接池:管理数据库连接池,提高测试效率。
配置步骤
-
添加JDBC Connection Configuration
- 右键点击线程组(Thread Group)。
- 选择“添加” -> “配置元件” -> “JDBC Connection Configuration”。
-
配置JDBC Connection Configuration
- 变量名称:给数据库连接一个唯一的变量名称,用于在其他元件中引用。
- 数据库URL:数据库的连接字符串(例如
jdbc:mysql://localhost:3306/mydatabase
)。 - JDBC驱动类:数据库驱动类的全限定名(例如
com.mysql.jdbc.Driver
)。 - 用户名:连接数据库的用户名。
- 密码:连接数据库的密码。
- 连接池配置:
- 最大活动连接数:连接池中最大的活动连接数。
- 最大空闲连接数:连接池中最大的空闲连接数。
- 初始连接数:连接池初始化时创建的连接数。
- 最小空闲连接数:连接池中最小的空闲连接数。
- 最大等待时间:等待连接的最大时间(毫秒)。
- 属性:可以添加额外的连接属性(可选)。
示例配置
假设我们需要测试一个MySQL数据库,执行一些SQL查询来验证性能。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“数据库性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“查询测试”)。
-
添加JDBC Connection Configuration
- 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> JDBC Connection Configuration。
- 配置JDBC Connection Configuration:
- 变量名称:
myDatabase
- 数据库URL:
jdbc:mysql://localhost:3306/mydatabase
- JDBC驱动类:
com.mysql.jdbc.Driver
- 用户名:
root
- 密码:
password
- 连接池配置:
- 最大活动连接数:10
- 最大空闲连接数:5
- 初始连接数:2
- 最小空闲连接数:1
- 最大等待时间:30000(30秒)
- 变量名称:
-
添加JDBC请求:
- 右键点击线程组 -> 添加 -> 取样器 -> JDBC请求。
- 配置JDBC请求:
- 变量名称:选择刚刚配置的数据库连接变量名称(例如
myDatabase
)。 - SQL查询:要执行的SQL查询(例如
SELECT * FROM users
)。 - 查询类型:选择查询类型(例如
Select Statement
)。 - 结果变量:存储查询结果的变量名称(可选)。
- 变量名称:选择刚刚配置的数据库连接变量名称(例如
-
添加监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 运行测试,查看结果。
优化建议
-
连接池配置:
- 最大活动连接数:根据测试需求和数据库的性能设置合理的最大活动连接数。
- 最大空闲连接数:设置合理的最大空闲连接数,避免连接池中过多的空闲连接浪费资源。
- 初始连接数:设置合理的初始连接数,确保测试开始时有足够的连接可用。
- 最小空闲连接数:设置合理的最小空闲连接数,确保连接池中始终有一定数量的空闲连接。
- 最大等待时间:设置合理的最大等待时间,避免因连接不足导致测试失败。
-
数据库驱动类:
- 确保使用的数据库驱动类是最新的,并且与数据库版本兼容。
-
SQL查询优化:
- 确保SQL查询的性能优化,避免执行耗时较长的查询。
-
错误处理:
- 使用断言和监听器来捕获和分析查询结果,及时发现和解决问题。
-
资源监控:
- 在测试过程中监控数据库的资源使用情况(如CPU、内存、磁盘I/O等),确保测试环境的稳定性。
11--Java默认请求
用途
- 设置默认值:为多个Java请求设置通用的默认值,如类名、方法名等。
- 简化配置:避免在每个Java请求中重复配置相同的参数。
配置步骤
-
添加Java默认请求
- 右键点击线程组(Thread Group)。
- 选择“添加” -> “配置元件” -> “Java请求默认值”(Java Request Defaults)。
-
配置Java默认请求
- 名称:给Java默认请求一个有意义的名称。
- 类名:要调用的Java类的全限定名。
- 方法名:要调用的Java方法名。
- 参数:方法的参数列表。
- 参数类型:参数的类型列表。
- 参数值:参数的值列表。
- 其他属性:可以添加其他属性(可选)。
示例配置
假设我们需要测试一个Java类的方法,并希望使用Java默认请求来设置通用的连接信息。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Java方法性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“Java测试”)。
-
添加Java默认请求:
- 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> Java请求默认值。
- 配置Java默认请求:
- 名称:Java默认请求
- 类名:要调用的Java类的全限定名(例如
com.example.MyClass
)。 - 方法名:要调用的Java方法名(例如
myMethod
)。 - 参数:方法的参数列表(例如
param1,param2
)。 - 参数类型:参数的类型列表(例如
java.lang.String,java.lang.Integer
)。 - 参数值:参数的值列表(例如
value1,123
)。
-
添加Java请求:
- 右键点击线程组 -> 添加 -> 取样器 -> Java请求。
- 配置Java请求:
- 名称:请求名称(例如“调用MyMethod”)。
- 类名:留空,使用默认值。
- 方法名:留空,使用默认值。
- 参数:留空,使用默认值。
- 参数类型:留空,使用默认值。
- 参数值:留空,使用默认值。
-
添加监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 运行测试,查看结果。
优化建议
-
默认值:
- 尽可能多地设置默认值,减少每个Java请求的配置工作量。
-
类名和方法名:
- 确保类名和方法名的正确性,避免因类名或方法名错误导致测试失败。
-
参数配置:
- 确保参数列表、参数类型和参数值的正确性,避免因参数错误导致测试失败。
-
动态参数:
- 使用JMeter的变量和函数来动态生成参数值,例如使用
${variable}
来引用变量。
- 使用JMeter的变量和函数来动态生成参数值,例如使用
-
调试:
- 使用“查看结果树”监听器查看请求和响应的详细信息,确保Java请求的配置正确无误。
-
错误处理:
- 使用断言和监听器来捕获和分析Java请求的结果,及时发现和解决问题。
12--Keystore Configuration
用途
- 配置密钥库:设置用于存储私钥和证书的密钥库文件。
- 配置信任库:设置用于存储受信任的CA证书的信任库文件。
- 支持SSL/TLS连接:确保JMeter能够正确地处理SSL/TLS连接,支持安全的HTTPS请求。
配置步骤
-
添加Keystore Configuration
- 右键点击线程组(Thread Group)。
- 选择“添加” -> “配置元件” -> “Keystore Configuration”。
-
配置Keystore Configuration
- 名称:给Keystore Configuration一个有意义的名称。
- 密钥库文件路径:密钥库文件的路径(例如
/path/to/keystore.jks
)。 - 密钥库类型:密钥库的类型(默认为
JKS
)。 - 密钥库密码:密钥库的密码。
- 密钥别名:密钥的别名(如果密钥库中包含多个密钥)。
- 密钥密码:密钥的密码(如果密钥密码与密钥库密码不同)。
- 信任库文件路径:信任库文件的路径(例如
/path/to/truststore.jks
)。 - 信任库类型:信任库的类型(默认为
JKS
)。 - 信任库密码:信任库的密码。
示例配置
假设我们需要测试一个需要SSL/TLS连接的Web应用,并希望使用Keystore Configuration来配置密钥库和信任库。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“SSL/TLS性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“SSL/TLS测试”)。
-
添加Keystore Configuration
- 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> Keystore Configuration。
- 配置Keystore Configuration:
- 名称:Keystore Configuration
- 密钥库文件路径:
/path/to/keystore.jks
- 密钥库类型:
JKS
- 密钥库密码:
keystore_password
- 密钥别名:
my_key_alias
- 密钥密码:
key_password
- 信任库文件路径:
/path/to/truststore.jks
- 信任库类型:
JKS
- 信任库密码:
truststore_password
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:请求名称(例如“获取用户列表”)。
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
443
)。 - 协议:HTTPS。
- 方法:请求的方法(例如
GET
)。 - 路径:请求的路径(例如
/api/users
)。
-
添加监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 运行测试,查看结果。
优化建议
-
密钥库和信任库路径:
- 确保密钥库和信任库文件路径的正确性,确保JMeter能够找到这些文件。
-
密码管理:
- 确保密钥库和信任库的密码正确无误,避免因密码错误导致连接失败。
-
密钥别名:
- 如果密钥库中包含多个密钥,确保选择正确的密钥别名。
-
调试:
- 使用“查看结果树”监听器查看请求和响应的详细信息,确保SSL/TLS连接配置正确无误。
-
错误处理:
- 使用断言和监听器来捕获和分析SSL/TLS连接的错误,及时发现和解决问题。
-
性能监控:
- 在测试过程中监控系统的网络性能和SSL/TLS连接的性能,确保测试环境的稳定性。
13--LDAP扩展请求默认值
用途
- 设置默认值:为多个LDAP扩展请求设置通用的默认值,如服务器地址、端口号、用户名和密码等。
- 简化配置:避免在每个LDAP扩展请求中重复配置相同的参数。
配置步骤
-
添加LDAP扩展请求默认值
- 右键点击线程组(Thread Group)。
- 选择“添加” -> “配置元件” -> “LDAP扩展请求默认值”(LDAP Extended Request Defaults)。
-
配置LDAP扩展请求默认值
- 名称:给LDAP扩展请求默认值一个有意义的名称。
- 服务器地址:LDAP服务器的地址(例如
ldap.example.com
)。 - 端口号:LDAP服务器的端口(默认为389)。
- 用户名:连接LDAP服务器的用户名。
- 密码:连接LDAP服务器的密码。
- 基DN:LDAP目录的基DN(例如
dc=example,dc=com
)。 - 扩展请求OID:扩展请求的OID(对象标识符)。
- 扩展请求值:扩展请求的值(可选)。
- 其他属性:可以添加其他属性(可选)。
示例配置
假设我们需要测试一个LDAP服务器,执行一些扩展请求来验证性能。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“LDAP性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“LDAP测试”)。
-
添加LDAP扩展请求默认值:
- 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> LDAP扩展请求默认值。
- 配置LDAP扩展请求默认值:
- 名称:LDAP扩展请求默认值
- 服务器地址:
ldap.example.com
- 端口号:389
- 用户名:
cn=admin,dc=example,dc=com
- 密码:
admin_password
- 基DN:
dc=example,dc=com
- 扩展请求OID:
1.3.6.1.4.1.1466.20037
(示例OID,具体根据需求选择) - 扩展请求值:(可选,根据需求填写)
-
添加LDAP扩展请求:
- 右键点击线程组 -> 添加 -> 取样器 -> LDAP扩展请求。
- 配置LDAP扩展请求:
- 名称:请求名称(例如“执行扩展请求”)。
- 服务器地址:留空,使用默认值。
- 端口号:留空,使用默认值。
- 用户名:留空,使用默认值。
- 密码:留空,使用默认值。
- 基DN:留空,使用默认值。
- 扩展请求OID:留空,使用默认值。
- 扩展请求值:留空,使用默认值。
-
添加监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 运行测试,查看结果。
优化建议
-
默认值:
- 尽可能多地设置默认值,减少每个LDAP扩展请求的配置工作量。
-
服务器地址和端口号:
- 确保服务器地址和端口号的正确性,避免因地址或端口错误导致连接失败。
-
用户名和密码:
- 确保用户名和密码的正确性,避免因认证失败导致请求失败。
-
基DN:
- 确保基DN的正确性,基DN是LDAP目录的根节点,用于定位目录结构。
-
扩展请求OID和值:
- 确保扩展请求OID和值的正确性,避免因OID或值错误导致请求失败。
-
调试:
- 使用“查看结果树”监听器查看请求和响应的详细信息,确保LDAP扩展请求的配置正确无误。
-
错误处理:
- 使用断言和监听器来捕获和分析LDAP扩展请求的结果,及时发现和解决问题。
14--Random Variable
用途
- 生成随机值:为测试中的变量生成随机值。
- 模拟真实用户行为:通过随机化数据,使测试更接近真实用户的使用场景。
- 数据多样性:为测试提供多样化的输入数据,提高测试的覆盖率。
配置步骤
-
添加Random Variable
- 右键点击线程组(Thread Group)。
- 选择“添加” -> “配置元件” -> “随机变量”(Random Variable)。
-
配置Random Variable
- 名称:给随机变量一个有意义的名称。
- 变量名称:生成的随机值将存储在这个变量中,可以在其他元件中引用这个变量。
- 最小值:生成随机值的最小值。
- 最大值:生成随机值的最大值。
- 输出格式:生成随机值的格式(例如
%d
表示整数,%s
表示字符串)。 - 种子:随机数生成器的种子值,用于生成可重复的随机序列(可选)。
示例配置
假设我们需要测试一个Web应用,生成随机的用户ID和订单号。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
-
添加随机变量(用户ID):
- 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> 随机变量。
- 配置随机变量:
- 名称:随机用户ID
- 变量名称:
randomUserId
- 最小值:1000
- 最大值:9999
- 输出格式:
%d
- 种子:(可选,留空)
-
添加随机变量(订单号):
- 右键点击线程组 -> 添加 -> 配置元件 -> 随机变量。
- 配置随机变量:
- 名称:随机订单号
- 变量名称:
randomOrderId
- 最小值:100000
- 最大值:999999
- 输出格式:
%d
- 种子:(可选,留空)
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:请求名称(例如“提交订单”)。
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:请求的方法(例如
POST
)。 - 路径:请求的路径(例如
/submitOrder
)。 - 参数:
- 名称:
userId
- 值:
${randomUserId}
- 名称:
orderId
- 值:
${randomOrderId}
- 名称:
-
添加监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 运行测试,查看结果。
优化建议
-
变量名称:
- 给变量一个有意义的名称,以便在其他元件中引用。
-
最小值和最大值:
- 根据测试需求设置合理的最小值和最大值,确保生成的随机值符合预期范围。
-
输出格式:
- 根据需要选择合适的输出格式,例如
%d
表示整数,%s
表示字符串。
- 根据需要选择合适的输出格式,例如
-
种子:
- 如果需要生成可重复的随机序列,可以设置种子值。否则,留空以生成不可预测的随机值。
-
调试:
- 使用“查看结果树”监听器查看请求和响应的详细信息,确保随机变量的配置正确无误。
-
错误处理:
- 使用断言和监听器来捕获和分析请求的结果,及时发现和解决问题。
15--TCP取样器配置
用途
- 发送和接收TCP消息:模拟客户端与TCP服务器之间的通信。
- 测试TCP服务器:验证TCP服务器的性能和功能。
- 自定义消息格式:支持多种消息格式,如文本、二进制等。
配置步骤
-
添加TCP取样器
- 右键点击线程组(Thread Group)。
- 选择“添加” -> “取样器” -> “TCP取样器”(TCP Sampler)。
-
配置TCP取样器
- 名称:给TCP取样器一个有意义的名称。
- 服务器名称或IP:TCP服务器的地址。
- 端口号:TCP服务器的端口。
- 超时时间:连接和传输的超时时间(毫秒)。
- 重试次数:连接失败时的重试次数。
- 关闭连接:选择是否在每次请求后关闭连接。
- 请求数据:要发送的消息内容。
- 请求编码:消息的编码方式(例如UTF-8)。
- 响应编码:服务器返回的消息的编码方式(例如UTF-8)。
- 响应超时:等待服务器响应的超时时间(毫秒)。
- 使用EOL字节:选择是否在请求数据末尾添加EOL字节(通常用于文本消息)。
- EOL字节:指定EOL字节(例如
\n
)。 - 使用二进制模式:选择是否使用二进制模式发送和接收消息。
- 响应字段:指定从服务器返回的消息中提取特定字段(可选)。
示例配置
假设我们需要测试一个TCP服务器,发送一条简单的文本消息并接收响应。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“TCP性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“TCP测试”)。
-
添加TCP取样器:
- 右键点击刚刚创建的线程组 -> 添加 -> 取样器 -> TCP取样器。
- 配置TCP取样器:
- 名称:TCP取样器
- 服务器名称或IP:
tcp.example.com
- 端口号:12345
- 超时时间:30000(30秒)
- 重试次数:3
- 关闭连接:False
- 请求数据:
Hello, TCP Server!
- 请求编码:UTF-8
- 响应编码:UTF-8
- 响应超时:30000(30秒)
- 使用EOL字节:True
- EOL字节:
\n
- 使用二进制模式:False
- 响应字段:(可选,留空)
-
添加监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 运行测试,查看结果。
优化建议
-
服务器地址和端口号:
- 确保服务器地址和端口号的正确性,避免因地址或端口错误导致连接失败。
-
超时时间:
- 设置合理的超时时间,避免因网络延迟或服务器性能问题导致测试失败。
-
重试次数:
- 根据测试需求设置合理的重试次数,确保在网络不稳定时能够重新尝试连接。
-
关闭连接:
- 如果需要保持连接,选择不关闭连接(
False
)。如果每次请求后都需要关闭连接,选择关闭连接(True
)。
- 如果需要保持连接,选择不关闭连接(
-
请求和响应编码:
- 确保请求和响应的编码方式一致,避免因编码问题导致消息解析错误。
-
使用EOL字节:
- 如果发送的是文本消息,建议使用EOL字节(例如
\n
),以便服务器正确解析消息。
- 如果发送的是文本消息,建议使用EOL字节(例如
-
二进制模式:
- 如果发送和接收的是二进制数据,选择使用二进制模式(
True
)。
- 如果发送和接收的是二进制数据,选择使用二进制模式(
-
调试:
- 使用“查看结果树”监听器查看请求和响应的详细信息,确保TCP取样器的配置正确无误。
-
错误处理:
- 使用断言和监听器来捕获和分析TCP请求的结果,及时发现和解决问题。
16--用户定义的变量
用途
- 定义变量:为测试计划定义全局变量,这些变量可以在任何地方引用。
- 简化配置:避免在多个地方重复配置相同的值。
- 提高灵活性:通过修改变量值,可以轻松地调整测试计划的行为。
配置步骤
-
添加用户定义的变量
- 右键点击测试计划(Test Plan)。
- 选择“添加” -> “配置元件” -> “用户定义的变量”(User Defined Variables)。
-
配置用户定义的变量
- 名称:变量的名称。
- 值:变量的值。
- 描述:变量的描述(可选)。
示例配置
假设我们需要测试一个Web应用,使用用户定义的变量来定义服务器地址、端口号和用户数量。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加用户定义的变量
- 右键点击刚刚创建的测试计划 -> 添加 -> 配置元件 -> 用户定义的变量。
- 配置用户定义的变量:
-
名称:
serverAddress
-
值:
example.com
-
描述:服务器地址
-
名称:
serverPort
-
值:
80
-
描述:服务器端口
-
名称:
userCount
-
值:
100
-
描述:用户数量
-
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数(用户数):
${userCount}
- 循环次数:1
- 线程数(用户数):
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:请求名称(例如“获取用户列表”)。
- 服务器名称或IP:
${serverAddress}
- 端口号:
${serverPort}
- 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:请求的方法(例如
GET
)。 - 路径:请求的路径(例如
/api/users
)。
-
添加监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 运行测试,查看结果。
优化建议
-
变量命名:
- 给变量一个有意义的名称,以便在其他元件中引用。
-
变量值:
- 确保变量值的正确性,避免因值错误导致测试失败。
-
描述:
- 添加描述可以帮助其他团队成员理解变量的作用和用途。
-
动态值:
- 使用JMeter的函数和变量来动态生成变量值,例如使用
${__P(variableName,default_value)}
来从属性文件中读取变量值。
- 使用JMeter的函数和变量来动态生成变量值,例如使用
-
调试:
- 使用“查看结果树”监听器查看请求和响应的详细信息,确保变量的配置正确无误。
-
错误处理:
- 使用断言和监听器来捕获和分析请求的结果,及时发现和解决问题。
17--登录配置原件/素
用途
- 管理登录信息:为测试计划中的多个请求提供统一的登录信息。
- 简化配置:避免在每个请求中重复配置用户名和密码。
- 支持多种认证方式:支持Basic、Digest等认证方式。
配置步骤
-
添加登录配置元件
- 右键点击线程组(Thread Group)。
- 选择“添加” -> “配置元件” -> “登录配置元件”(Login Config Element)。
-
配置登录配置元件
- 名称:给登录配置元件一个有意义的名称。
- 用户名变量:存储用户名的变量名称。
- 密码变量:存储密码的变量名称。
- 用户名:登录的用户名。
- 密码:登录的密码。
- 域名:认证域(可选,主要用于NTLM认证)。
- 认证方案:选择认证方式(例如Basic、Digest、NTLM等)。
示例配置
假设我们需要测试一个需要Basic认证的Web应用,并为多个请求提供统一的登录信息。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
-
添加登录配置元件:
- 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> 登录配置元件。
- 配置登录配置元件:
- 名称:登录配置元件
- 用户名变量:
usernameVar
- 密码变量:
passwordVar
- 用户名:
user
- 密码:
password
- 域名:(可选,留空)
- 认证方案:Basic
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:请求名称(例如“获取用户列表”)。
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:请求的方法(例如
GET
)。 - 路径:请求的路径(例如
/api/users
)。 - 使用认证:选择“是”。
- 用户名:
${usernameVar}
- 密码:
${passwordVar}
- 域名:(可选,留空)
- 认证方案:Basic
-
添加监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 运行测试,查看结果。
优化建议
-
变量命名:
- 给变量一个有意义的名称,以便在其他元件中引用。
-
认证方案:
- 根据目标服务器的认证方式选择合适的认证方案。常见的认证方式包括Basic、Digest和NTLM。
-
域名:
- 如果需要使用NTLM认证,确保填写正确的域名。
-
调试:
- 使用“查看结果树”监听器查看请求和响应的详细信息,确保登录配置元件的配置正确无误。
-
错误处理:
- 使用断言和监听器来捕获和分析认证失败的情况,及时发现和解决问题。
-
安全性:
- 确保敏感信息(如用户名和密码)的安全性,避免在公共环境中泄露。
18--简单登录原件/素
用途
- 管理登录信息:为测试计划中的多个请求提供统一的登录信息。
- 简化配置:避免在每个请求中重复配置用户名和密码。
- 支持多种认证方式:虽然主要适用于简单的用户名和密码认证,但也可以结合其他认证方式使用。
配置步骤
-
添加简单登录元件
- 右键点击线程组(Thread Group)。
- 选择“添加” -> “配置元件” -> “简单配置元件”(Simple Config Element)。
-
配置简单登录元件
- 名称:给简单登录元件一个有意义的名称。
- 参数名称:定义参数的名称。
- 参数值:定义参数的值。
- 参数类型:定义参数的类型(例如字符串、数字等)。
示例配置
假设我们需要测试一个需要基本认证的Web应用,并为多个请求提供统一的登录信息。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
-
添加简单登录元件:
- 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> 简单配置元件。
- 配置简单登录元件:
- 名称:简单登录元件
- 参数名称:
username
- 参数值:
user
- 参数类型:字符串
- 参数名称:
password
- 参数值:
password
- 参数类型:字符串
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:请求名称(例如“获取用户列表”)。
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:请求的方法(例如
GET
)。 - 路径:请求的路径(例如
/api/users
)。 - 使用认证:选择“是”。
- 用户名:
${username}
- 密码:
${password}
- 域名:(可选,留空)
- 认证方案:Basic
-
添加监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 运行测试,查看结果。
优化建议
-
变量命名:
- 给变量一个有意义的名称,以便在其他元件中引用。
-
参数类型:
- 确保参数类型的正确性,避免因类型错误导致的问题。
-
调试:
- 使用“查看结果树”监听器查看请求和响应的详细信息,确保简单登录元件的配置正确无误。
-
错误处理:
- 使用断言和监听器来捕获和分析认证失败的情况,及时发现和解决问题。
-
安全性:
- 确保敏感信息(如用户名和密码)的安全性,避免在公共环境中泄露。
-
多参数配置:
- 如果需要配置多个参数,可以在简单登录元件中添加多个参数条目。
19--计数器
用途
- 生成递增的数值:为测试计划生成递增的数值。
- 唯一标识符:生成唯一的标识符,确保每个请求都有一个唯一的值。
- 数据多样性:为测试提供多样化的输入数据,提高测试的覆盖率。
配置步骤
-
添加计数器
- 右键点击线程组(Thread Group)。
- 选择“添加” -> “配置元件” -> “计数器”(Counter)。
-
配置计数器
- 名称:给计数器一个有意义的名称。
- 变量名称:生成的计数值将存储在这个变量中,可以在其他元件中引用这个变量。
- 起始值:计数器的起始值。
- 结束值:计数器的结束值(可选,如果不设置则无限递增)。
- 增量:每次递增的步长。
- 格式:生成计数值的格式(例如
%05d
表示五位数,不足部分补零)。 - 复位策略:选择计数器的复位策略(例如每次迭代、每个用户、每个线程等)。
示例配置
假设我们需要测试一个Web应用,生成唯一的订单号。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
-
添加计数器:
- 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> 计数器。
- 配置计数器:
- 名称:订单号计数器
- 变量名称:
orderNumber
- 起始值:1
- 结束值:1000000(可选,如果不设置则无限递增)
- 增量:1
- 格式:
%06d
(生成六位数,不足部分补零) - 复位策略:每次迭代
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:请求名称(例如“提交订单”)。
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:请求的方法(例如
POST
)。 - 路径:请求的路径(例如
/submitOrder
)。 - 参数:
- 名称:
orderId
- 值:
${orderNumber}
- 名称:
-
添加监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 运行测试,查看结果。
优化建议
-
变量命名:
- 给变量一个有意义的名称,以便在其他元件中引用。
-
起始值和结束值:
- 根据测试需求设置合理的起始值和结束值,确保生成的计数值符合预期范围。
-
增量:
- 根据需要设置合适的增量,确保计数值按预期递增。
-
格式:
- 根据需要选择合适的格式,例如
%06d
表示六位数,不足部分补零。
- 根据需要选择合适的格式,例如
-
复位策略:
- 选择合适的复位策略,确保计数器在适当的时间点复位。常用的复位策略包括每次迭代、每个用户、每个线程等。
-
调试:
- 使用“查看结果树”监听器查看请求和响应的详细信息,确保计数器的配置正确无误。
-
错误处理:
- 使用断言和监听器来捕获和分析请求的结果,及时发现和解决问题。
20--LDAP默认请求
功能特点
- LDAP 操作:支持多种 LDAP 操作,如搜索、添加、删除、修改等。
- 动态参数传递:可以动态设置请求参数,满足复杂的测试需求。
- 身份验证:支持不同的身份验证方式,如简单绑定、SSL 绑定等。
配置步骤
-
添加 LDAP 默认请求
- 右键点击需要添加取样器的线程组。
- 选择“添加” -> “取样器” -> “LDAP 默认请求”(LDAP Default Request)。
-
配置 LDAP 默认请求
- 名称:给 LDAP 默认请求一个有意义的名称。
- 服务器:输入 LDAP 服务器的地址。
- 端口:输入 LDAP 服务器的端口。
- 身份验证:选择身份验证方式(例如,简单绑定)。
- 用户名:输入用于身份验证的用户名。
- 密码:输入用于身份验证的密码。
- 基 DN:输入搜索的基 DN(Distinguished Name)。
- 搜索过滤器:输入用于搜索的过滤器。
- 搜索范围:选择搜索范围(例如,Base、One、Sub)。
- 属性:输入要返回的属性列表。
- 操作类型:选择要执行的操作类型(例如,搜索、添加、删除、修改)。
- 请求数据:根据操作类型填写相应的请求数据。
参数说明
- 名称:给 LDAP 默认请求一个有意义的名称。
- 服务器:输入 LDAP 服务器的地址。
- 端口:输入 LDAP 服务器的端口。
- 身份验证:选择身份验证方式(例如,简单绑定)。
- 用户名:输入用于身份验证的用户名。
- 密码:输入用于身份验证的密码。
- 基 DN:输入搜索的基 DN(Distinguished Name)。
- 搜索过滤器:输入用于搜索的过滤器。
- 搜索范围:选择搜索范围(例如,Base、One、Sub)。
- 属性:输入要返回的属性列表。
- 操作类型:选择要执行的操作类型(例如,搜索、添加、删除、修改)。
- 请求数据:根据操作类型填写相应的请求数据。
示例配置
假设我们需要测试一个 LDAP 服务器,并执行一个简单的搜索操作,查找特定用户的详细信息。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“LDAP 性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加 LDAP 默认请求:
- 右键点击线程组 -> 添加 -> 取样器 -> LDAP 默认请求。
- 配置 LDAP 默认请求:
- 名称:搜索用户
- 服务器:ldap.example.com
- 端口:389
- 身份验证:简单绑定
- 用户名:cn=admin,dc=example,dc=com
- 密码:adminpassword
- 基 DN:dc=example,dc=com
- 搜索过滤器:(uid=johndoe)
- 搜索范围:Sub
- 属性:cn, uid, mail
- 操作类型:搜索
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
优化建议
-
身份验证:
- 确保身份验证信息正确无误,能够成功连接到 LDAP 服务器。
-
基 DN 和搜索过滤器:
- 确保基 DN 和搜索过滤器正确无误,能够准确匹配所需的数据。可以通过 LDAP 浏览器工具进行验证。
-
搜索范围:
- 根据实际需求选择合适的搜索范围。常见的搜索范围有:
- Base:仅搜索基 DN 对应的对象。
- One:搜索基 DN 下一层的所有对象。
- Sub:搜索基 DN 及其所有子对象。
- 根据实际需求选择合适的搜索范围。常见的搜索范围有:
-
属性:
- 输入要返回的属性列表,确保返回的数据符合预期。
-
操作类型:
- 根据实际需求选择合适的操作类型。常见的操作类型有:
- 搜索:搜索 LDAP 目录。
- 添加:添加新的条目。
- 删除:删除现有的条目。
- 修改:修改现有条目的属性。
- 根据实际需求选择合适的操作类型。常见的操作类型有:
-
错误处理:
- 在测试计划中添加断言和监听器,确保请求的成功率和返回数据的正确性。
示例配置详细说明
假设我们有一个简单的测试计划,包含一个线程组和一个 LDAP 默认请求,并希望执行一个简单的搜索操作,查找特定用户的详细信息。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“LDAP 性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加 LDAP 默认请求:
- 右键点击线程组 -> 添加 -> 取样器 -> LDAP 默认请求。
- 配置 LDAP 默认请求:
- 名称:搜索用户
- 服务器:ldap.example.com
- 端口:389
- 身份验证:简单绑定
- 用户名:cn=admin,dc=example,dc=com
- 密码:adminpassword
- 基 DN:dc=example,dc=com
- 搜索过滤器:(uid=johndoe)
- 搜索范围:Sub
- 属性:cn, uid, mail
- 操作类型:搜索
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。