JMeter—常见问题(十四)
参考《全栈性能测试修炼宝典JMeter实战》第十五章 JMeter常见问题
1、无法产生负载
注意检查各元件是否时禁用状态。JMeter在运行时是以数形式加载各种元件的,如果父节点被禁用,那么其下的所有子节点将不会运行。虽然下面的子节点没有被禁用,但运行时根本无法产生负载,但JMeter不会报错。
2、做接口测试
常见的有HTTP协议、Socket协议、WebSocket协议、Soap协议等,只要构造好表单,在JMeter中用相应的Sampler就可以模拟请求。
3、多个测试计划运行
在编辑菜单栏中有个合并操作,点击后可以将多个测试计划合成一个,每一个脚本是一个线程组,运行时同时运行线程组即可。
4、找导致CPU瓶颈的程序
在性能测试分析时,往往采用自底向上的方式来进行问题分析,我们从硬件的指标来反向追索问题根源。其中CPU的性能瓶颈分析最为常见。
监控CPU使用率,CPU使用率分为系统和用户的使用率。
系统CPU利用率高可以先关注下IO,有没有非空闲等待,通常的系统CPU利用高都是IO问题,此时的中断与切换都高。
用户CPU利用率高,直接使用top命令查看系统进程和线程,通过线程或进程ID可以找到对应的程序。
5、找导致内存瓶颈的程序
linux系统可用内存包括物理内存、缓存、程序占用的内存等部分。内存瓶颈会导致程序运行缓慢甚至系统崩溃,通过监控内存的使用情况发现潜在的性能问题。
6、找导致IO瓶颈的程序
网络IO的监控可以监控网络中断、带宽、网络连接数及网络连接状态,从而确定那方面的瓶颈。
本地磁盘IO可以监控有没有IO的非空闲等待
7、计算并发用户数
并发数受到很多因素的影响。比如思考时间、工作时间、业务分布等,通常技术并发用户数有三种方式:
由TPS来估算并发数
由TPS来估算,适用于联机操作系统,这类系统响应时间快、业务量大。
Vu(业务名称)=TPS(业务名称)x (RunTime+ThinkTime)
Vu表示此业务的虚拟用户数,RunTime时测试程序/脚本运行一次所消耗的时间,包括事务时间和非事务时间
由在线活动用户数来估算并发数
适合于读请求多的系统,比如新闻
根据经验估算
不是一种严谨的估算方式。
8、性能测试的分析方法
自底向上:通过监控硬件及操作系统性能指标(CPU、内存、磁盘、网络等硬件资源的性能)来分析性能问题(配置、程序等)。因为用户请求最终是由计算机硬件设备来完成的。
自顶向下:通过生成负载来观察被测试的系统性能,比如响应时间、吞吐量,然后从请求起点由外及里一层一层分析。
JMeter—常见问题(十四)的更多相关文章
- Jmeter(三十四) - 从入门到精通进阶篇 - 参数化(详解教程)
1.简介 前边三十多篇文章主要介绍的是Jmeter的一些操作和基础知识,算是一些初级入门的知识点,从这一篇开始我们就来学习Jmeter比较高级的操作和深入的知识点了.今天这一篇主要是讲参数化,其实前边 ...
- Jmeter(二十四)_服务器性能监控
下载插件 1.访问网址http://jmeter-plugins.org/downloads/all/,下载三个文件.其中JMeterPlugins-Standard和JMeterPlugins-Ex ...
- <转>jmeter(十四)HTTP请求之content-type
本博客转载自:http://www.cnblogs.com/dinghanhua/p/5646435.html 个人感觉不错,对jmeter最常用的取样器http请求需要用到的信息头管理器做了很好的解 ...
- Jmeter(三十四)_Beanshell解析并提取json响应
1:前置条件 将fastjson-1.2.49.jar包置于jmeter的lib目录下,并将该jar包添加到测试计划的Library中:否则会报:Typed variable declaration ...
- Jmeter(十四)Logic Controller 之 If Controller
If Controller---如果控制器:属于逻辑判断类型的组件,其实学过代码的都知道if--else,while等都是常用的逻辑判断关键词,Jmeter也提供了逻辑判断--If Controlle ...
- jmeter(十四)解读聚合报告
一个每天1000万PV的网站需要什么样的性能去支撑呢?继续上一篇,下面我们就来计算一下,前面我们已经搞到了一票数据,但是这些数据的意义还没有说.技术是为业务服务的,下面就来说说怎么让些数据变得有意义. ...
- Jmeter(十四)取样器之JDBC Request
在接口测试中,需要与数据库进行交互,这时候需要用到JDBC Request取样器. JDBC Request可以向数据库发送一个请求(sql语句),一般它需要配合JDBC Connection Con ...
- Jmeter(二十四) - 从入门到精通 - JMeter函数 - 中篇(详解教程)
1.简介 在性能测试中为了真实模拟用户请求,往往我们需要让提交的表单内容每次都发生变化,这个过程叫做参数化.JMeter配置元件与前置处理器都能帮助我们进行参数化,但是都有局限性,为了帮助我们能够更好 ...
- Jmeter(五十四) - 从入门到精通高级篇 - 如何在linux系统下运行jmeter脚本 - 上篇(详解教程)
1.简介 上一篇宏哥已经介绍了如何在Linux系统中安装Jmeter,想必各位小伙伴都已经在Linux服务器或者虚拟机上已经实践并且都已经成功安装好了,那么今天宏哥就来介绍一下如何在Linux系统下运 ...
随机推荐
- Python快速学习06:词典
系列文章:[传送门] 上面讲的,特别是对象和类,大家好好体会. Python对象是Python语言的核心部分.今天介绍一个新类:词典(dictionary) 基本概念 字典是Python 中的映射数据 ...
- linux 命令 — split
split 按照数据大小和行数来分割文件 指定分割文件后缀 split -b 10k data.file 按照每个文件10k分割文件(默认使用字母作为后缀) split -b 10k data.fil ...
- LAMP环境快速搭建
1.安装httpd [root@localhost httpd]# yum -y install httpd #安装httpd [root@localhost httpd]# chkconfig ht ...
- es6入门3--箭头函数与形参等属性的拓展
对函数拓展兴趣更大一点,优先看,前面字符串后面再说,那些API居多,会使用能记住部分就好. 一.函数参数可以使用默认值 1.默认值生效条件 在变量的解构赋值就提到了,函数参数可以使用默认值了.正常我们 ...
- MyBatis源码解析(四)——DataSource数据源模块
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6634880.html 1.回顾 上一文中解读了MyBatis中的事务模块,其实事务操作无非 ...
- Spring DAO模块
Spring的DAO模块提供了对JDBC.Hibernate.Mybatis等DAO层支持,本节介绍DAO模块对JDBC的支持.DAO模块依赖ommons-dbcp.jar.commons-pool. ...
- 关于 Cortex-M3 的双堆栈机制
CM3 的堆栈分为两个:主堆栈和进程堆栈. 那么,这两个栈分别在什么情况下使用呢? 我们看一下CM3的控制寄存器(CONTROL):控制寄存器用于定义特权级别,还用于选择当前使用哪个堆栈指针. CON ...
- NLP入门(五)用深度学习实现命名实体识别(NER)
前言 在文章:NLP入门(四)命名实体识别(NER)中,笔者介绍了两个实现命名实体识别的工具--NLTK和Stanford NLP.在本文中,我们将会学习到如何使用深度学习工具来自己一步步地实现N ...
- Python中return self的用法
在Python中,有些开源项目中的方法返回结果为self. 对于不熟悉这种用法的读者来说,这无疑使人困扰,本文的目的就是给出这种语法的一个解释,并且给出几个例子. 在Python中,retur ...
- 建立多页面vue.js项目
介绍 根据需求,我们希望建立一个多页面的vue.js项目,如何改造单页面vue.js项目为多页面项目?跟着我的步伐看下去吧. 1.创建单页面vue.js项目 简单的记录一下创建步骤: --安装cnpm ...