Jmeter并发数 测试

Jmeter教程 简单的压力测试

Jmeter并发数 测试

Jmeter是一个非常好用的压力测试工具。  Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好。

阅读目录

  1. 什么是压力测试 
  2. 做压力测试的常用工具
  3. 做压力测试的步骤如下:
  4. 本文做压力测试的例子
  5. 第一步: 使用CSV Data Set Config 来参数化
  6. 第二步:添加HTTP Request.
  7. 第三步: 使用Thread Group, 控制模拟多少用户
  8. 第四步:  添加Summary Report 用来查看测试结果
  9. 第五步: 运行一下
  10. 下载源代码

 

什么是压力测试 

顾名思义:压力测试,就是  被测试的系统,在一定的访问压力下,看程序运行是否稳定/服务器运行是否稳定(资源占用情况)

比如: 2000个用户同时到一个购物网站购物,这些用户打开页面的速度是否会变慢,或者网站是否会奔溃

 

做压力测试的常用工具

做压力测试,一般要使用工具, 人工是没办法做的。   最常用的工具是LoadRunner, 但是LoadRunner毕竟是收费软件,而且使用上也比较复杂。 现在越来越多的人开始使用Jmeter来做压力测试。 免费, 而且使用上非常简单。

 

做压力测试的步骤如下:

1. 写脚本 或者录制脚本

2. 使用用户自定义参数

3. 场景设计

4. 使用控制器,来控制 模拟多少用户。

5. 使用监听器, 查看测试结果

 

本文做压力测试的例子

本文举的实例是: 在一台电脑用Jmeter模拟200个用户,同时去使用bing搜索不同的关键字, 查看页面返回的时间是否在正常范围内。

 

 

第一步: 使用CSV Data Set Config 来参数化

首先我们把测试需要用到的2个参数放在txt文件中,

新建一个data.txt文件,输入些数据, 一行有两个数据,用逗号分隔。

 

启动Jmeter, 先添加一个Thread Group, 然后添加一个CSV Data Set Config (Add -> Config Element -> CSV Data Set Config)

 

第二步:添加HTTP Request.

我们添加http 请求,发送get 到 http://cn.bing.com/search?q=博客园+小坦克

选择Thread Group 右键 (Add ->Sampler -> HTTP Request),  需要填的数据如下:

 

第三步: 使用Thread Group, 控制模拟多少用户

选中Thread Group

Number of Threads(users):     一个用户占一个线程,  200个线程就是模拟200个用户

Ramp-Up Period(in seconds):   设置线程需要多长时间全部启动。如果线程数为200 ,准备时长为10 ,那么需要1秒钟启动20个线程。也就是每秒钟启动20个线程。

Loop Count: 每个线程发送请求的次数。如果线程数为200 ,循环次数为10 ,那么每个线程发送10次请求。总请求数为200*10=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本。

 

第四步:  添加Summary Report 用来查看测试结果

选中Thread Group 右键(Add -> Listener -> Summary Report)

 

 

第五步: 运行一下

到目前为止, 脚本就全写好了, 我们来运行下, 如何看下测试的结果

### JMeter 并发测试示例 #### 创建线程组 为了实现并发测试,在 Apache JMeter 中创建一个新的 `Thread Group` 来定义虚拟用户的数量、循环次数以及其他执行细节[^2]。 ```java // 设置线程数 (即并发用户数), 启动延迟, 循环计数等属性 <elementProp name="ThreadGroup.main_controller" elementType="LoopController"> <stringProp name="LoopController.loops">1</stringProp> <boolProp name="LoopController.continue_forever">false</boolProp> </elementProp> <intProp name="ThreadGroup.num_threads">50</intProp> <!-- 用户数目 --> <intProp name="ThreadGroup.ramp_time">1</intProp> <!-- 时间间隔(秒) --> <boolProp name="ThreadGroup.scheduler">false</boolProp> <stringProp name="ThreadGroup.duration"></stringProp> <stringProp name="ThreadGroup.delay"></stringProp> ``` #### 添加HTTP请求默认值 通过配置 HTTP 请求默认项来简化后续 HTTP 请求的设置,可以指定服务器名称或 IP 地址和其他通用参数[^1]。 ```xml <!-- 配置全局HTTP请求信息 --> <ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" enabled="true"> <stringProp name="HTTPSampler.domain">example.com</stringProp> <stringProp name="HTTPSampler.port"></stringProp> <stringProp name="HTTPSampler.protocol">http</stringProp> ... </ConfigTestElement> ``` #### 设定采样器(Sampler) 对于每一个想要模拟的操作都需要添加相应的 Sampler。这里以 GET 方法为例说明如何向目标网站发起请求[^3]。 ```xml <!-- 发送GET请求到特定URL路径 --> <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" enabled="true"> <elementProp name="HTTPsampler.Arguments" elementType="Arguments"/> <stringProp name="HTTPSampler.path">/api/resource</stringProp> <stringProp name="HTTPSampler.method">GET</stringProp> ... </HTTPSamplerProxy> ``` #### 结果监听器(Result Listener) 最后加入查看结果树或者聚合报告这样的组件以便于观察和分析测试期间产生的响应时间、吞吐量等相关指标[^4]。 ```xml <!-- 显示详细的HTML响应内容 --> <ViewResultsFullVisualizer guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" enabled="true"/> <!-- 展现汇总统计图表 --> <SummaryReport guiclass="SummariserGui" testclass="Summariser" enabled="true"/> ``` 上述配置展示了怎样利用 JMeter 构建一个简单的并发测试场景,并且能够针对不同类型的资源(静态与动态)实施有效的性能评估[^5]。
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值