最近的一个项目刚刚开发完,因为不是专业测试人员,所以记录下测试过程以备时间长忘记了。

一、JMeter的安装(Linux)
1. 下载JMeter:这个就不细说了,直接去(http://jmeter.apache.org/download_jmeter.cgi)下载。
2. 解压:tar -zxvf apache-jmeter-2.9.tgz
3. 执行:sh jmeter.sh。
如果提示(No X11 DISPLAY variable was set, but this program performed an operation which requires it.)
恭喜你,你的JMeter图形界面不能启动,这里需要用命令行执行了。
具体的执行方法后面会说,首先需要录制测试脚本。 比较方便的是在Win下面JMeter的图形界面中录制,或者用Badboy录制。

二、JMeter脚本录制 
   1. 创建组
a. Number of Threads(users):通过多个线程模拟多个用户
b. Ramp-Up period(in seconds):用于告知JMeter 要在多长时间内建立全部的线程。默认值是0。如果未指定ramp-up period ,也就是说ramp-up period 为零, JMeter 将立即建立所有线程,假设ramp-up period 设置成T 秒, 全部线程数设置成N个, JMeter 将每隔T/N秒建立一个线程。
ramp-up period设置容易出现的问题:

a. 如果设置成零,Jmeter将会在测试的开始就建立全部线程并立即发送访问请求, 这样一来就很容易使服务器饱和,更重要的是会隐性地增加了负载,这就意味着服务器将可能过载,不是因为平均访问率高而是因为所有线程的第一次并发访问而引起的不正常的初始访问峰值。这种异常不是我们需要的,因此,确定一个合理的ramp-up period 的规则就是让初始点击率接近平均点击率。当然,也许需要运行一些测试来确定合理访问量。
如果要使用大量线程,ramp-up period 一般不要设置成零。
b.  如果ramp-up period 过大也是不恰当的,因为将会降低访问峰值的负载,换句话说,在一些线程还未启动时,初期启动的部分线程可能已经结束了。
c. 合理的ramp-up period,首先推测一下平均点击率并用总线程除点击率来计算初始的ramp-up period。
    例如,假设线程数为100, 估计的点击率为每秒10次, 那么估计的理想ramp-up period 就是 100/10 = 10 秒。
 
 
2. 创建循环控制器 
在这里用于生成可变参数。
a. Loop Count:每个线程执行的次数
当前总样本数=Loop Count(Loop Controler)*Number of Threads*Loop Count(group)=2*100*500
 
 
 3. 定义可变参数
a. Filename:参数文件名
b. Variable Names:变量名与下面的自定义变量相对应
c. Delimiter:参数文件中的参数分隔符
注意:理论上文件中的参数数量不应该小于Loop Count*Number of Threads
 
 
4. 定义请求参数
 
 
5. 执行脚本
将脚本文件(.jmx)和参数文件(.csv)上传到服务器,如果未特殊指定参数文件的路径,将二个文件放在同一个路径下即可。
a. 命令为:sh jmeter.sh -n -t examples/41search_1.jmx -l examples/search_1_100T.jtl。
其它命令参数可查看帮助。
 
 
6. 查看结果
将生成的结果文件(search_1_100T.jtl)导出到本的,用JMeter打开查看
a. 聚合报告:具体说明见下篇
 
 
 b. 图形报告:具体说明见下篇
注意:这张图口味稍微有点重,密集恐惧症者慎入;-)
 
 
c. 树形报告:具体说明见下篇
 
 
 

本文固定链接: http://www.chepoo.com/jmeter-stress-testing-and-concurrent-calculation-1.html | IT技术精华网

转:JMeter压力测试及并发量计算的更多相关文章

  1. JMeter压力测试及并发量计算-2

    一个每天1000万PV的网站需要什么样的性能去支撑呢?继续上一篇,下面我们就来计算一下,前面我们已经搞到了一票数据,但是这些数据的意义还没有说.技术是为业务服务的,下面就来说说怎么让些数据变得有意义. ...

  2. JMeter压力测试及并发量计算-1

    一.JMeter的安装(Linux) 1. 下载JMeter:这个就不细说了,直接去(http://jmeter.apache.org/download_jmeter.cgi)下载. 2. 解压:ta ...

  3. 【转】Jmeter压力测试模拟并发

    jmeter下载地址:http://jmeter.apache.org/download_jmeter.cgi JMeterPlugins(jmeter插件):http://jmeter-plugin ...

  4. JMeter压力测试以文件的形式

    JMeter压力测试入门教程[图文] 1. 下载JMeter 2. 启动JMeter 3. 运行预准备 4. 运行 文章目录 Apache JMeter是Apache组织开发的基于Java的压力测试工 ...

  5. jmeter 压力测试

    转自: https://blog.csdn.net/cbzcbzcbzcbz/article/details/78023327 Jmeter压力测试简单教程(包括服务器状态监控) 2017年09月18 ...

  6. 转载:JMeter压力测试入门教程[图文]

    JMeter压力测试入门教程[图文] Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域. 它可 ...

  7. Jmeter压力测试入门操作

    Jmeter压力测试入门   1. 前言 Jmeter 是Apache组织开发的基于Java的压力测试工具,开源并且支持多个操作系统,是一款很好的HTTP测试工具.本篇文章主要的目的是帮助没有接触过J ...

  8. JMeter压力测试,http请求压测,5分钟让你学会如何压测接口!

    JMeter压力测试 官网:https://jmeter.apache.org 最新款的jmeter需要java8的支持,所以请自行安装jdk8.这里就不啰嗦了. 可以根据自己的系统下载zip或者是t ...

  9. 【转】jmeter压力测试

    jmeter压力测试 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域, 是压力测试的首选软件 ...

随机推荐

  1. day34-常见内置模块三(re模块)

    re模块 1.什么是正则 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则.(在Python中)它内嵌在Python中,并 ...

  2. ABAP-多线程处理

    *&---------------------------------------------------------------------* *& Report ZRICO_TES ...

  3. ssm框架使用jsp提交表单到controller

    jsp代码: controller代码:

  4. iOS pods编译原理

    首先看一下Podfile文件下面这行 use_frameworks! 这行的意思是Pod工程中的target是否编译成framework的形式,加上这行Pod工程中的target会编译成framewo ...

  5. (FireDAC) 连接定义

     Defining Connection (FireDAC) 连接定义就是应用程序使用特定的FireDAC驱动连接数据库的参数集合.相当于BDE的别名,ADO的UDL,或者ODBC的DSN. For ...

  6. win10家庭版升级专业版的两种方法和密钥

    win10家庭版升级专业版密钥:VK7JG-NPHTM-C97JM-9MPGT-3V66T4N7JM-CV98F-WY9XX-9D8CF-369TT FMPND-XFTD4-67FJC-HDR8C-3 ...

  7. 一次linux启动故障记录

    故障背景: 在2.6.32升级内核之后,出现多台设备启动失败,失败的全部都是ssd作为系统盘的机器,bios引导之后,屏幕就黑了,没有打印. 一开是以为是mbr损坏了,所以将启动盘挂载到其他服务器上, ...

  8. K-means聚类算法(转)

    K-means聚类算法 想想常见的分类算法有决策树.Logistic回归.SVM.贝叶斯等.分类作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别与之对应.但是 ...

  9. python基础学习Day11 函数名的应用、闭包、迭代器

    一.函数名的应用 1.函数名就是函数的内存地址 def func(): print(666) func() print(func) #函数的内存地址 2.函数名可以作为变量 def func1(): ...

  10. MongoDB模糊查询,以及MongoDB模糊查询时带有括号的情况

    模糊查询 记录如下: { "_id" : ObjectId("5c3d486d24aa9a000526367b"), "name" : &q ...