一、性能测试注意点

1. 用jmeter测试时使用BeanShell脚本获取随机参数值,会导致请求时间过长,TPS过低。应改为使用csv读取参数值,记录的TPS会更加准确。

注:进行性能测试时,应注意会影响请求时间的操作,尽量避免因为测试方法不当影响测试结果。

2. 进行稳定性测试前,尽量对Jmeter进行减负,避免运行时间过长,导致Jmeter卡死。

减负方式:

(1)参数写死或者直接读取csv的数值,减少程序负荷

(2)并发线程不要设置太高,设置200以下

(3)“察看结果树”勾选“仅日志错误”,尽可能减少jvm内存使用

(4)可添加“Simple Data Writer”且保存为csv格式数据

(5)其他监听组件可以都禁掉,通过保存的数据线下生成图标报告

3. 注意如果服务重启后,PID会发生变化,通过命令行方式收集CPU、内存使用数据时,要使用最新的PID进行采集:

ps -ef | grep test  查询进程号,test为服务名关键字

top -b -d 1 -p 34012 > 1117_log  其中34012为PID,1117_log为需要记录的日志名(不存在会自动新建文档)

4. 如果勾选了CPU等监听组件,需要先启动代理服务:

cd ../tmp/ServerAgent-2.2.3

执行./startAgent.sh

5.使用jp@gc - PerfMon Metrics Collector性能测试工具时,要在运行压力测试前开启性能监控,否则可能会造成压力测试期间的性能测试数据缺失而造成性能分析不准确。

6. 进行压力测试时,逐步增加并发量,直至能够明显看出性能瓶颈为止

二、性能指标分析

聚合报告各项性能指标

聚合报告常用指标

Label

每个JMeter的element(例如 HTTP Request)都有一个Name属性,这里显示的就是Name属性的值

Samples

请求次数(=线程数*循环次数)

Average

平均响应时间

Median

中位数,也就是50%用户的响应时间

90% Line

90%用户的响应时间

95% Line

95%用户的响应时间

Min

最小响应时间

Max

最大响应时间

Error%

本次测试中出现错误的请求的数量/请求的总数

Throughput

吞吐量——默认情况下表示每秒完成的请求数(Request per Second)

KB/Sec

每秒从服务器端接收到的数据量

接口性能测试指标一般通过标准:

 

性能测试指标通过标准

需满足的并发数
(举例:每天8W用户访问,平均在线时长10分钟,1天用户24小时内使用系统)
C = 80000 * 0.166/24=553
注:0.166为10/60得出

C = nL/T
C^= C + 3*根号C 
其中C为平均并发用户数,n为login session的数量,L是login session的平均长度,T是值考察的时间长度
C^为并发用户数峰值

需要满足的TPS
TPS = (80000*80%)/(20%*8*60*60)=11/sec

根据二八原则:
20%常用时间,满足80%业务量
TPS = n*80%/(20%*活跃时间*60*60)
注:活跃时间一般为8小时

响应时间

根据在并发情况下的响应时间2/5/10原则,最长不能超过10s

错误率

具体系统具体要求,一般小于万分之一

缓存命中率

具体系统具体要求,一般大于85%通过

CPU占用率

70% 好,85% 坏,90%+ 很差

内存使用率

一般小于80%通过

使用Jmeter性能测试注意点的更多相关文章

  1. 基于webdriver的jmeter性能测试-通过jmeter实现jar录制脚本的性能测试

    续接--基于webdriver的jmeter性能测试-Eclipse+Selenium+JUnit生成jar包 在进行测试前先将用于支持selenium录制脚本运行所需的类包jar文件放到jmeter ...

  2. Jmeter性能测试入门(链接收藏)

    Jmeter性能测试入门: http://www.cnblogs.com/TankXiao/p/4045439.html

  3. Jmeter性能测试入门(转)

    出处:http://www.cnblogs.com/by-dream/p/5611555.html Jmeter性能测试步骤 1. 添加线程组之后,先设置这两项: 2. 添加一个http请求 被测的u ...

  4. Jmeter学习一:Jmeter性能测试环境搭建(Windows下)

    最近刚开始接触Jmeter性能测试,现总结环境搭建如下: 一.windows安装JDK步骤与环境变量配置: 1.先将下载的JDK安装到其默认目录:C:\Program Files\Java\jdk1. ...

  5. Jmeter性能测试

    Jmeter性能测试 入门 Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmeter搞定的 ...

  6. JMeter性能测试,完整入门篇

    1. Jmeter简介 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件.相比Loadrunner而言,JMeter小巧轻便且免费,也越来越流行成为了主流的性能测试工具 ...

  7. 【转载】Jmeter 性能测试入门

    [转载]Jmeter性能测试 入门 Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmete ...

  8. 01 jmeter性能测试系列_Jmeter的体系结构

    深圳文鹏教育jmeter 性能测试讲义 概念 元件:元件代表jmeter工具菜单中的一个子菜单,比如HTTP请求.事务控制器.响应断言等: 组件:一组元件的集合(一个或者多个),比如逻辑控制器中有事务 ...

  9. 【Jmeter自学】Jmeter性能测试(四)

    ==================================================================================================== ...

  10. 一篇文章入门Jmeter性能测试【经典长文】

    孟船长  目录 1.性能测试定义2.为什么要做性能测试3.性能测试指标.性能测试分类4.Jmeter性能测试实战[入门级]5.参考文章链接 1.性能测试定义 百度&知乎 性能测试是通过自动化的 ...

随机推荐

  1. Django框架——进阶之AJAX

    <script>$("#b1").on("click", function () { // 点击 id是b1的按钮要做的事儿 var i1 = $( ...

  2. Django 使用request获取浏览器发送的参数(Django编程-5)

    1.url:需要正则去匹配 url(r'^index/(num)/$',view.index) 匹配到的参数会自动传入对应的视图函数 也可以给匹配到的参数起名字?P url(r'^index/(?P& ...

  3. 让虚拟机中的MySQL可以被主机访问

    1.VirtualBox对Ubuntu系统进行设置,“网络”选择“桥接网卡” 2.安装MYSQL服务器 sudo su;   apt-get intall mysql-server 3.赋予远程访问的 ...

  4. symfony3 使用命令行工具生成Entity实体所踩的坑

    1.把配置文件汇总连接邮箱的配置信息注释掉了,在创建Entity时php bin/console doctrine:generate:entity报错 2. 错误原因是实体文件映射到数据库中的字段时候 ...

  5. @Validated @RequestBody @RequestParam配合使用校验参数

    1.  @Validated @RequestBody 配合使用 两者搭配进行参数的校验,要想自己捕获该异常,需要自定义全局异常处理器 2.  @Validated @RequestParam 配合使 ...

  6. Lubuntu 16.04 64位兼容32位程序

    第一步:确认自己系统的架构 dpkg --print-architecture输出:amd64 结果为  amd64 表示系统是64位的 第二步:确认打开了多架构支持功能 dpkg --print-f ...

  7. ntpd服务配置规则

    查看是否安装ntp服务 service ntpd status yum -y install ntpd* service ntpd startntpdate ntpd服务配置命令: crontab - ...

  8. vi 纵向模式编辑

    Vim 的纵向编辑模式 vim解读 vi解读 批量删除# 技巧: r 进入修改模式 I 进入行首插入模式 A 进入行尾插入模式 r替换 I前前添加 A后添加 1.多行注释: a. 按下Ctrl + v ...

  9. 常见shell用法

    分析nginx访问日志 awk '{a[b[$1]++]}END{for(i=length(a);i>0;i--)for(j in b)if(b[j]==i){c++;if(c<=10)p ...

  10. hive建表结构

    drop table dw.fct_so;create table dw.fct_so(so_id bigint comment '订单ID',parent_so_id bigint comment ...