jmeter快速入门

jmeter快速入门

一.Jmeter能做哪些测试:

免费的性能测试工具,较loadrunner简单好用。

1.性能测试及压力测试;

2.数据库测试;

3.java程序的测试;

4.http及ftp的测试;

5.webservices的测试;

6.接口测试;

等等

二.jmeter的安装及使用:

  1. jmeter是一款java的应用,只需要去官网下载就可以。下载地址:https://jmeter.apache.org/download_jmeter.cgi(建议下载jmeter4版本,因为chrome的安全证书协议支持证书)
  2. jdk环境: 进入计算机-系统属性-高级系统设置,

         --新建系统变量JAVA_HOME;

 

         变量名:JAVA_HOME;

         变量值:D:\Program Files (x86)\Java\jdk1.8.0(计算机本地jdk的安装目录)

 

         --新建系统变量CLASSPATH;

         变量名:CLASSPATH

         变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(前面的点一定不能忘记)

         --修改系统变量path的值(建议将此环境变量放在最前面)

         变量名:path

         在path的变量值前添加下面内容: %JAVA_HOME%\bin;

   %JAVA_HOME%\jre\Bin;%JAVA_HOME%\Bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64

  • jmeter的目录结构
  1. bin目录:jmeter的主目录,存放jmeter的主jar包,启动脚本,启动配置,运行日志等;
  2. jmeter.sh/jmeter.bat,通过编辑可修改jmeter启动时的参数等;
  3. jmeter.properties:jmeter的主配置文件,jmeter的超过80%需要配置的内容都在这个文件;
  4. docs:存放官方的api文档,主要用于二次开发;
  5. extras目录:存放ant和jmeter集成所需要的文件;
  6. lib目录:jmeter启动时的classpath,所有需要import的类,只存放jar包;
  7. lib/ext目录:存放jmeter的第三方组件和插件,主要集成jmeter和使用jmeterGUI框架的,可以在图形化界面看到的部分;
  8. printable_docs:开发者存放的jmeter的官方文档。
  • jmeter脚本开发
  1. 第三方软件录制脚本

  badboy:只支持bs架构,下载地址:http://www.badboy.com.au/download;

  --file--export to jmeter的菜单导出jmeter的脚本;

  --使用jmeter打开脚本即可。

  --缺点:只支持BS架构,由于内置浏览器的内核问题(支持IE),会产生兼容性的问题。

  blazeMeter:需要使用163邮箱注册,基于chrome浏览器的录制插件。

  --缺点:需要访问国外的网站,存在风险。目前没啥问题

  2.jmeter的http代理服务来录制:

  通信协议是标准的,是由测试工具自己完成的。

  新增测试计划--新增线程组--添加http cookies管理器--添加http代理服务,设置端口xxxx的时候先要检测本电脑端口是否被占用(netstat),设置internet 选项的局域网设置端口号为xxxx--录制的过程中最好逐步将名称修改为中文--录制完成停止服务即可。

  --优点:灵活,支持cs及bs也可以app。

  3.抓包手写(fiddler)

  通过人用工具去抓包,使用与任何接口,性能的脚本生成。

  --掌握通信协议,主要一http为主; (chrome自带的开发工具,切换至network,需要勾选preserver log--不要清理页面的重定向)

  --bean shell就是java的脚本语言,不支持泛型; 

三.Jmeter的常用组件:

  • 测试计划:整个测试计划;
  • 线程组:所有的任务都是基于线程组,开通过少个线程就代表了有多少个并发用户;
  1. 线程数:比如线程数10,时间是5秒,循环2次,也就是说,一秒会执行两个线程*2次循环,一秒并发4次请求,这个大白话说的够白了。。。。
  2. Ramp-Up Perriod:代表在多长时间内完成线程数的全部启动,比如说开了2个线程,Ramp-Up Perriod设置为3,代表了每个线程间的时间间隔为1.5s。
  3. 循环次数:每秒要执行的线程数
  4. Delay Thread creation until needed: 默认情况下,测试开始的时候,所有线程就被创建完了。如果勾选了此选项,那么线程只会在合适的需要用到的时候创建。

  5.调度器设置:用于设置该线程组下脚本执行的开始时间、结束时间、持续时间及启动延迟时间。当需要半夜执行性能测试时会用到这个功能。

设置调度器配置,需要将前面的循环次数设置为永远(自己感觉,因为这样才不会因循环次数不够而终止压测)

  6.取样器错误 当线程执行取样器失败的时候,要执行的策略的选项:

  • 继续:忽略错误,是继续执行
  • Start Next Thread Loop: 忽略错误,线程当前循环终止,执行下一个循环。
  • 停止线程:当前线程停止执行,不影响其他线程正常执行。
  • 停止测试:整个测试会在所有当前正在执行的线程执行完毕后停止
  • 立即停止测试:整个测试会立即停止执行,当前正在执行的取样器如果可能会被中断。

那么这几个配置控制了,当遇到错误的时候,测试的执行策略,是否会继续执行。

  

 

 

 

 

 

 

  • Sampler:所有的测试任务都是Sampler,其下的测试类型包括很多:http请求,jdbc请求,ftp请求,udp请求,如下图:

 

 

 

 

 

 

 

 

 

  • 监控组件:
  1. 查看结果树:对于每个请求,都可以查看http请求和http相应;
  2. 聚合报告:总体的吞吐量,响应时间,线程总数等;
  3. 图形结果:可以图形显示吞吐量,响应时间等;

  

Samples:样本数,线程总数,比如,10个线程数设置为10,迭代10次,那么每运行一次测试,该值就增加10*10=100

Average:平均响应时间,单位ms

Median:中位数,50%响应时间小于此值,单位ms

90%line:90%响应时间小于此值,单位ms

Min:最短响应时间,单位ms

Max:最大响应时间,单位ms

Error:未命中数/比率

Throughput:吞吐量——每秒完成请求事务数【可以理解成tps或者qps,一般100用户压15min左右,其值会在800左右——很多地方并没有严格去计较,就像tps和qps概念是不一样的,可是很多时候可以混为一谈】,线程数/时间=ThoughtOut

Kb/sec:每秒接收数据量

posted @ 2018-05-26 13:25  虎皮兰  阅读(694)  评论(0编辑  收藏  举报