JMeter性能压测BS项目示例

本文介绍使用JMeter进行压力测试的基本步骤,从新建线程组到启动压测,再到查看和分析结果报告的过程。了解如何配置HTTP请求及利用JMeter工具进行有效的性能测试。

1、新建线程组

JMETER初始配置

2、设置线程组参数

3、新建Http请求默认配置项

4、设置HTTP请求统一数据来源(HTTP请求协议配置,包括来源IP),具体HTTP请求的URL依据此配置项进行请求,一次配好,后面就不用配置了

5、设置具体的HTTP请求项

6、设置查看监听压测结果报告

7、设置图形结果展示

8、启动压测

注意:重新压测需要先清空之前压测产生的数据

9、聚合吞吐量报告

10、其他报告

 

以下是使用 JMeter 进行并发接口的详细配置示例: ### 1. 启动 JMeter 打开 JMeter 后,会看到一个测试计划界面。 ### 2. 创建线程组 在线程组中可以设置并发用户数、循环次数等参数。 操作步骤:右键点击测试计划 -> 添加 -> 线程(用户) -> 线程组。 主要参数设置如下: - 线程数:代表并发用户数,例如设置为 100,表示同时有 100 个用户并发访问接口。 - Ramp-Up 时间:指定 JMeter 启动所有线程所需的时间。若设置为 10 秒,线程数为 100,那么 JMeter 会在 10 秒内均匀启动 100 个线程。 - 循环次数:设置每个线程执行测试的次数。若设置为 5,每个线程会执行 5 次请求。 ### 3. 添加 HTTP 请求 用于定义要测试的接口信息。 操作步骤:右键点击线程组 -> 添加 -> 取样器 -> HTTP 请求。 主要参数设置如下: - 协议:根据接口的实际情况选择,如 HTTP 或 HTTPS。 - 服务器名称或 IP:填写接口所在的服务器地址。 - 端口号:接口监听的端口,默认为 80(HTTP)或 443(HTTPS)。 - 路径:接口的具体路径,例如 `/api/user/login`。 - 请求方法:根据接口的要求选择,如 GET、POST、PUT、DELETE 等。 - 对于 POST 请求,还需要在“Body Data”中填写请求体数据,格式根据接口要求而定,如 JSON 格式: ```json { "username": "testuser", "password": "testpassword" } ``` ### 4. 添加监听器 用于查看测试结果。 操作步骤:右键点击线程组 -> 添加 -> 监听器。常用的监听器有: - 聚合报告:可以查看请求的平均响应时间、吞吐量、错误率等关键指标。 - 查看结果树:可以查看每个请求的详细响应信息,包括请求头、响应头、响应体等。 ### 5. 运行测试 点击 JMeter 界面上的绿色三角形按钮“启动”,开始执行并发。 以下是一个简单的 JMeter 配置示例代码(以 JMX 文件部分内容展示): ```xml <?xml version="1.0" encoding="UTF-8"?> <jmeterTestPlan version="1.2" properties="5.0" jmeter="5.4.1"> <hashTree> <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true"> <stringProp name="TestPlan.comments"></stringProp> <boolProp name="TestPlan.functional_mode">false</boolProp> <boolProp name="TestPlan.serialize_threadgroups">false</boolProp> <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> <collectionProp name="Arguments.arguments"/> </elementProp> <stringProp name="TestPlan.user_define_classpath"></stringProp> </TestPlan> <hashTree> <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> <boolProp name="LoopController.continue_forever">false</boolProp> <stringProp name="LoopController.loops">5</stringProp> </elementProp> <stringProp name="ThreadGroup.num_threads">100</stringProp> <stringProp name="ThreadGroup.ramp_time">10</stringProp> <longProp name="ThreadGroup.start_time">1630406400000</longProp> <longProp name="ThreadGroup.end_time">1630406400000</longProp> <boolProp name="ThreadGroup.scheduler">false</boolProp> <stringProp name="ThreadGroup.duration"></stringProp> <stringProp name="ThreadGroup.delay"></stringProp> </ThreadGroup> <hashTree> <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> <collectionProp name="Arguments.arguments"/> </elementProp> <stringProp name="HTTPSampler.domain">example.com</stringProp> <stringProp name="HTTPSampler.port">80</stringProp> <stringProp name="HTTPSampler.protocol">http</stringProp> <stringProp name="HTTPSampler.contentEncoding"></stringProp> <stringProp name="HTTPSampler.path">/api/user/login</stringProp> <stringProp name="HTTPSampler.method">POST</stringProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> <boolProp name="HTTPSampler.use_keepalive">true</boolProp> <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> <stringProp name="HTTPSampler.embedded_url_re"></stringProp> <stringProp name="HTTPSampler.connect_timeout"></stringProp> <stringProp name="HTTPSampler.response_timeout"></stringProp> <stringProp name="HTTPSampler.postBodyRaw">{ "username": "testuser", "password": "testpassword" }</stringProp> </HTTPSamplerProxy> <hashTree> <AggregateReport guiclass="AggregateReportGui" testclass="AggregateReport" testname="Aggregate Report" enabled="true"/> <ViewResultsTree guiclass="ViewResultsTreeGui" testclass="ViewResultsTree" testname="View Results Tree" enabled="true"/> </hashTree> </hashTree> </hashTree> </hashTree> </jmeterTestPlan> ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值