Chinaunix首页 | 论坛 | 博客
  • 博客访问: 130793
  • 博文数量: 47
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 243
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-18 11:45
文章分类

全部博文(47)

文章存档

2017年(2)

2015年(33)

2014年(12)

分类: Java

2014-11-19 17:36:25

jmeter工具包含:

(1)负载发生器:产生负载,通常以多线程方式模拟用户行为。

(2)用户运行器:通常是个脚本运行引擎,它附加在线程或进程上,根据脚本要求模拟指定的用户行为。

(3)资源生成器:生成测试过程中服务器、负载机的资源数据。

(4)报表生成器:根据测试中获得的数据生成报表

setup thread group:执行预测试操作,初始化环境的初始化脚本

tearddown thread group:执行测试后动作,测试完毕后对应的清楚信息的脚本块

Test Fragment:测试片段,是控制器上特殊线程组,在测试树上与线程组处于同一级,除非它是模块控制器或是被控制器所引用时才会被执行

 

控制器:

      Sampler 取样器  性能测试中向服务器发送请求,记录响应信息

      Logic Controller  逻辑控制器 :

用于控制测试计划中sampler节点发送请求的逻辑顺序的控制器

            组织可控制的sampler节点

配置元件 Config Element 用于配置静态数据(CVS Data Set Config可将本地数据文件形成数据池)

定时器 Timer:用于操作之间等待时间(常用于性能测试)

前置处理器:在请求发出之前对即将发出的请求进行特殊处理

            如:HTTP URL修复符可实现URL重写

后置处理器:用于对Sampler发出请求后得到的服务器响应进行处理

监听器:对测试结果数据进行处理和可视化展示一系列元件

 

测试计划下的多个线程组死同时被初始化并同时执行线程组下的Sampler

使用镜像服务器:HTTP Mirror Server可启动一个镜像服务器,它将所有接收到的请求原封不动地返回,即可看到发出请求的具体内容。

当需要模拟数千计的并发用户时,使用单台机器模拟所有并发用户可能会引起JAVA内存溢出错误。所以采用多台机器多台机器同时产生机制(分布式测试):通过单个jmeter客户端可控制多个远程的jmeter服务器,使它们同步的对服务器进行压力测试。

特性:可将测试采样数据保存到本机

      通过单个机器管理多个jmeter引擎

      不需将测试计划复制到每一台机器上,jmeter GUI客户端会将它发往每一台jmeter   服务器

  每一台jmeter远程服务器都执行相同的测试计划,它不会在执行期间做负载均衡,每   一台服务器都会完整的运行测试计划

 

使多台机器产生负载操作步骤:

1) 在所有期望运行jmeter作为负载生成器的机器上安装jmeter,并确定其中一台机器作为controller,其他的机器作为agent,然后运行所有agent机器上的jmeter-server文件(假定使用机器192.168.12.156作为agent

2) controller机器的jmeterbin目录下,编辑jmeter.properties文件,将remote_hosts=127.0.0.1改为remote_hosts=192.168.12.156:1099

注意:测试时,关闭agent机器上的防火墙

3) 启动controller机器上的jmeter应用,选择运行-->远程启动分别启动agent,或“远程全部启动”将所有的agent启动。

参数设置:

① 利用选项-->函数助手进行参数化设置

② 利用配置元件中CSV Data Set Config进行参数化设置

 

动态数据关联--正则表达式提取器

http请求中会遇到一些参数的值是从服务器相应的动态数据,他们需要进行关联才能使每一次请求都能成功地被服务器接受

执行Jmeter脚本:Jmeter -n -t 脚本文件名 -l 保存执行结果的文件名

                -n 告知jmeter采用非图形化执行jmeter脚本

                -t 指定要执行的脚本文件

                -l 指定保存结果的文件

注意:执行命令前检查当前目录是否是%Jmeter_Home%\bin目录

 

利用jmeter制作自动化性能测试框架:

执行流程:利用JenkinsCI(持续集成)功能,实时检查脚本库,若有变更便调用jmeter来执行脚本,并将测试结果通过邮件或其他方式通知相关人员。

 

Maven执行Jmeter

部署maven/jmeter环境

增加pom.xml依赖:

                    commons-logging

                      commons-logging

                      1.0.4

     

    

  

      logkit

               logkit

                1.2

   

 

             

                     org.apache.jmeter

                     maven-jmeter-plugin

                     1.0

             

拷贝jmeter/bin下文件upgrade.properties到工程bin目录下

创建jmx文件,放到maven项目的src\test\jmeter目录下

执行命令mvn jmeter:jmetermvn verify生成xml报告

 

 

Java程序进行测试

1.创建一个Java工程;

2.JMeterlib目录下的jar文件添加进此工程的Build Path

3.创建一个类并实现JavaSamplerClient接口或继承AbstractJavaSamplerClient,并重写;

public Arguments getDefaultParameters();设置可用参数及的默认值;

public void setupTest(JavaSamplerContext arg0):每个线程测试前执行一次,做一些初始化工作;public SampleResult runTest(JavaSamplerContext arg0):开始测试,从arg0参数可以获得参数值;public void teardownTest(JavaSamplerContext arg0):测试结束时调用;

4.ExportRunnable Jar File

5.将此jar包放入JMETER_HOME\lib\ext目录;   

6.以管理员身份打开JMeter

7.创建线程组、Java Request、查看结果树,进行测试;

阅读(1073) | 评论(0) | 转发(0) |
0

上一篇:回归测试

下一篇:xml解析

给主人留下些什么吧!~~