JMeter从4.1版本开始引入了一个新函数"${__threadGroupName}",这个函数的作用是返回当前线程组的名字.${__threadGroupName}的用途也较为广泛,比如: 在非图形界面执行时,在日志中记录不同脚本的出错信息使用. 用于定义不同脚本(ThreadGroup)特有的标识,如特有的属性(Property).字符串等. 不过__threadGroupName的使用是有注意事项的,不能在任何配置元件(Configuration elements)中使用,比如…
Jmeter分布式测试需要注意事项: 1. 如果脚本中有用到CSV Data Set Config,则所有的模拟机都必须在相应的目录下存在该文件.如下图,则必须所有模拟机的F盘下都有user.txt文件,否则无法通过分布式启动测试 2. 接#1,每台模拟机上方的CSV Data里面的数据不能相同,否则所有模拟机都会调用相同的值,可能会导致失败.例如user.txt存放的是登录账号,模拟机A的user.txt包含账号A.账号B,模拟机B的user.txt包含账号A.账号B,则在运行时,模拟机A.模…
指标主要看以下几点: 1.jmeter性能测试的报告,不要看平均响应时间,而是看90%响应时间,一般不能超过3s,超过3s则不符合标准2.响应时间超过3s就要优化,但不是平均响应时间,因为最小响应时间和最大响应时间差距比较大,而是90%响应时间比较准.cpu超过80%就比较危险,需要处理3.应用cpu如果超过80%,那需要去看数据库cpu占用率多少4.tps和点击量如果一样,则说明应用服务器已经达到顶,即使增加点击量,也给不了服务器压力了5.持续时间5min和20min,持续时间调大,同一个接口…
 JMETER接口性能测试方案 JMETER简介          JMeter可以用于测试静态或者动态资源的性能(文件.Servlets.Perl脚本.java对象.数据库和查询.ftp服务器或者其他的资源). JMeter用于模拟在服务器.网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况.你可 以用JMeter提供的图形化界面分析性能指标或者在高负载情况下测试服务器/脚本/对象的行为. 场景介绍          被测dubbo服务…
一.Jmeter简介 Jmeter是Apache组织开发的基于Java开源项目,设计之初是用于做性能测试的,同时它在实现对各种接口的调用方面做的比较成熟,因此,常被用做接口功能测试和性能测试. Jmeter能够很好的支持各种常见接口,如HTTP(S).WebService.JDBC.JAVA.FTP等,并以多种形式展现测试结果. 当然,以上并不是Jmeter的全部功能,还有很多地方需要深入探究,而且还有很多插件不断出现,相信以后会变得越来越强大. 二.Jmeter安装 1.注意事项 由于Jmet…
之前的博客:jemter(二十三):分布式测试简略的介绍了利用jmeter做分布式测试的方法,当时只是介绍了背景和原因,以及基本的配置操作,有同学说写得不够详细. 正好今年双十一,我司的全链路压测,也尝试了jmeter分布式压测的手段.这篇博客,介绍下利用jmeter在NGUI模式下进行分布式压测的一些小技巧和注意事项. 一.压测机 1.数量&成本 无论是从成本角度还是维护的难易方面,压测机的数量,适量就好. 举个例子,8C16G的一台服务器,部署jmeter后,根据我个人的测试比对数据,配置≤…
jmeter命令行运行但是是单节点下的, jmeter底层用java开发,耗内存.cpu,如果项目要求大并发去压测服务端的话,jmeter单节点难以完成大并发的请求,这时就需要对jmeter进行分布式测试: 1:先说说分布式测试原理 处理过程: 一:调度机master启动以后,会拷贝本地的jmx文件分发到远程的slave机器上: 二:slave机器拿到脚本以后启动命令行模式去执行脚本,对于每台slave机器拿到的脚本都是一样的,所以如果jmx脚本为50个线程跑3分钟,那么实际并发就是50*3=1…
一.中文乱码问题的解决方法 1. 将HTTP请求的内容编码改成UTF-8 2. 修改配置文件jmeter.properties 将jmeter安装目录的bin目录下的jmeter.properties文件打开: 找到 sampleresult.default.encoding的值设置为UTF-8(注意:最前面的#号需要去掉): 修改了配置文件,需要重启jmeter 二.设置jmeter的默认语言 1.菜单栏 ==> Options ==> Choose language ==> Chin…
1.自己创建的数据自己擅长,不要留垃圾数据 2.每个接口都需要增加断言,保证脚本的结果的正确性 3.相同的应用放在一个简单控制器下,所有的应用尽量放在一个线程组下面,将特殊场景单独抽离成一个线程组 4.web自动化脚本使用简单控制器,性能测试使用事务控制器 5.Http Cookie管理器 注意应用域 6.用户定义的变量 该组件定义的变量是全局变量  线程组使用用户参数 组件 7.当csv里面有特殊字符时候,Allow quoted data 值设置为true…
1.进入循环控制器之前变量要有值: 2.BeanShell处理文件,读取行数,赋值给变量,要有相应的Sampler,不然脚本不会运行. 对于单个线程来说,假如设置了循环2次,线程启动后,运行结束,此时是关闭线程再立即启动开始循环,还是不关线程,运行完一次直接进入下一次循环?另外,如果设置了Ramp-Up Period时间,第一个线程还没循环完就该启动下一个线程了,此时是接着循环还是启动下一线程? 问题一答案:不关线程,直接进入下一次循环,第一个线程获取CPU时间,然后后面的CPU时间分配就是随机…