一. 引言: 最近工作中的一个项目要求做性能测试,该项目由提供服务的几个应用组成,选用的框架是阿里巴巴公司开源的服务框架Dubbo.关于Dubbo的介绍,网上也有很多资料,本人只是做了粗略的了解,没有深入研究,相关资料地址如下:http://www.iteye.com/magazines/103,http://alibaba.github.io/dubbo-doc-static/User+Guide-zh.htm#UserGuide-zh-%E6%80%A7%E8%83%BD%E6%B5%8B%…
在IDE中引用Jmeter的安装目录lib/ext中两个文件ApacheJMeter_core.jar和ApacheJMeter_java.jar Java request的类需要继承AbstractJavaSamplerClient类,在继承AbstractJavaSamplerClient类的时候,需要实现四个方法,分别是 setupTest():初始化方法,用于初始化性能测试时的每个线程: getDefaultParameters():主要用于设置传入的参数: runTest():为性能测…
 要想通过自定义java请求来压测ZooKeeper,那么我们就需要做两件事情,第一我们需要知道java如何操作ZooKeeper,第二就是怎么能将我们写的jar包让jmeter识别,首先我们先来干第一件事. 一.java操作ZooKeeper 以下的代码是网上百度找到的,经过了一点点修改(对于测试其它的可以找其它的测试代码) package com.comtop.ZookApi; import java.util.concurrent.CountDownLatch; import org.ap…
简述 这近几年,越来越多非http的协议需要进行性能测试,包括不仅限于各类rpc.mq.缓存等.对于这些协议,市面上可能没有现成的工具可以直接使用,这个时候,我们可以自己动手,通过编写相应的JavaSampler来高效地开展性能测试工作. 环境准备 java环境已搭建ok jmeter环境已搭建ok idea开发环境已配置ok java和jmeter环境搭建,可参考Jmeter--环境搭建 二次开发 二次开发前提 需要lib/ext中的ApacheJMeter_core.jar 扩展java请求…
现在很多公司都用的是微服务,每个服务的请求协议有可能不相同,怎样用jmeter二次开发自己的java请求? 下面是具体的开发步骤: 1,把需要的jar包 添加到maven依赖中 jmeter中javasample请求需要的jar包 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=…
Java请求:就是用来对java项目的类进行压测 例子:将输入的两个参数通过IO存入文件 1.创建Java工程,工程目录如下 2.将Jmeter-lib下面的所有jar包导入java工程, 3.创建一个测试类并实现JavaSamplerClient接口或继承AbstractJavaSamplerClient,并重写: public Arguments getDefaultParameters():设置可用参数及的默认值: public void setupTest(JavaSamplerCont…
import java.util.HashMap; import java.util.Map; import org.apache.commons.lang.StringUtils; /** * 请求参数类 * */ public class QueryParameter { public static final String ASC = "asc"; public static final String DESC = "desc"; protected int…
1. 官网下载Jmeter: 点这里, 下载完成解压即可 2. 启动: 进入解压后的bin目录, Windows点击jmeter.bat, Linux执行jmeter 3. 添加线程组(user) : Test Plan --> Add --> Threads(Users) --> Thread Group, 这里还有setUp Thread Group和tearDown Thread Group, 前者是测试之前做的事, 后者是测试之后做的事. 这里点击Test Plan有个执行计划的…
Jmeter是纯Java开发的开源性能测试工具, Java程序是很吃内存的, 有时候一台负载机给服务器的压力是不够的, 需要很多台同时负载, 这个时候就需要用到分布式了. 1. 组网图大概就是这样的 2. Jmeter Server: 分别在多台负载机上面安装Jmeter, 进入bin目录, 启动jmeter-server/jmeter-server.bat ,启动后会有个IP和端口 如果启动报错, 比如java.io.FileNotFoundException: rmi_keystore.jk…
BeanShell 最常用的用法 写好Java代码打成jar, 放到目录\lib\ext下面 package com.test; import java.io.File; import java.io.UnsupportedEncodingException; public class Common { public static String getPath(){ String path = Common.class.getProtectionDomain().getCodeSource().…
前面写的一篇Monitor监控有缺陷, 这篇文章使用Jmeter4.0+的版本, 使用插件SSHMon Samples Collector来做资源监控 1. 官网下载插件: plugins-manager.jar , 然后放到lib/ext目录下, 重启Jmeter. 2. 打开Options--> Plugins Manager, 在"Available Plugins"一栏勾选SSHMon Samples Collector, 然后点击Apply Change and Res…
利用定时器添加用户思考时间 JMeter如何插入思考时间,在一个真实的性能测试场景中,是需要加入思考时间,来模拟真实用户行为.本文就来介绍,如何在三个请求之间添加思考时间. 1. 在Test Plan下新建一个Thread Group 2. 在Thread Group下新建一个Simple Controller 右击Thread Group->add->Logic Controller->Simple Controller 3. 在Simple Controller下,创建三个HTTP…
使用Jmeter(该篇文章使用的版本最高为3.1, 3.1+的版本存在兼容性问题)做性能测试, 要监控服务器硬件资源消耗情况, 可以使用扩展插件完成. 1. 服务端插件下载agent, 点击这里 , 下载完成后解压, 放到待测服务器上面, 启动的时候, Windows使用startAgent.bat, Linux使用startAgent, 启动时候会打印端口, 默认4444 2. 下载客户端插件JMeterPlugins-Standard, 点击这里 , 这个插件很久没更新了. 下载完成后解压,…
介绍下性能测试很重要的一个知识点---关联, 很多时候程序会在上一个请求随机生成一串字符串, 作为下一个请求的入参验证点, 其实就是动态的入参, 这个时候就需要用到关联, 常用的关联技术就是正则表达式, 有时候如果是HTML, 可以使用xpath去匹配. 1. 正则, Add--> Post Processors--> Regular Expression Extractor, 具体的正则匹配的规则在这里不详细说了, 网上随便找一个网址都有 2. xpath, Add--> Post P…
Jmeter参数化主要有3种方式: 1. Add--> Pre Processors--> User Parameters 2. Add--> Config Element--> CSV Data Set Config, 这些选项看名字就能明白是啥意思 3. 最后使用函数参数化, 随机参数化. Option--> Function Helper Dialog…
准备工作做好,先发送请求 然后察看结果树中的响应消息 比如我们要提取这个cookie,先调试一下,看能不能提取到 看蓝色的线条,我们提取到了,然后我们把这句话写入到后置处理器中的正则表达式提取里 再次发送请求,看后面的请求里有没有我们想要的数据 后面的请求里都带了cookie了 总结一下: 这里需要的正则知识是,先把你需要的数据粘贴一份到请求结果上面,进行调试,其中(.*)代表从选中的结果里提取这个值.然后\n代表结束,不加这个是匹配不到的,需要注意的是,这个\n是在响应头里提取而适用的,代表的…
 前言 Apache Jmeter是开源.易用的性能测试工具,之前工作中用过几次对http请求进行性能测试,对jmeter的基本操作有一些了解.最近接到开发的对java请求进行性能测试的需求,所以需要写java请求的脚本. Java请求的性能测试与http请求的性能测试类似,都是给远程应用提供的服务发送请求并施压,得到响应结果及性能数据.不同的是,http调用的是应用提供的http协议的服务,而java请求调用的是应用提供的接口服务,且需要通过编写代码来实现java请求的调用. 本次压测的jav…
本文介绍在jmeter中调用自己写java工具包,并非直接继承jmeter提供的java sample request接口. 工具/原料 jmeter eclipse 方法/步骤 通常用jmeter做http请求(或者其他类型)时,有时候要对请求的数据(或者响应的数据)进行特定的处理再进行请求,如加密.解密.  这时候我们可以用java自己写一些工具类,利用jmeter提供的beanshell来调用我们的工具类对数据进行处理,然后再进行相关的请求.  首先在eclipse写个属于自己的工具类,我…
1.性能测试过程中,有时候开发想对JAVA代码进行性能测试,Jmeter是支持对Java请求进行性能测试,但是需要自己开发.打包好要测试的代码,就能在Java请求中对该java方法进行性能测试2.本文举的例子是Java实现通过传入两个参数,将值写入到文件中 开发思路1.使用Eclipse创建Maven 项目,配置Pom文件,引入Jmeter开发Java请求所需的依赖包:2.创建输入参数类,和测试类,然后继承JavaSamplerClient,实现四个主方法:3.对编写好的项目进行编译.打包4.把…
Jmeter执行Java请求(QQ交流群:577439379) 一.打开Eclipse,创建一个Java工程 二.拷贝jmeter所依赖的jar包 将jmeter中,\lib\ext目录下的ApacheJMeter_core.jar.ApacheJMeter_java.jar两个jar文件,放到工程的libs文件中,并添加到build path目录下. 三.创建一个类,实现被测试的业务 public class MathTest { public int sum(int a,int b) { r…
逻辑控制器介绍 Jmeter逻辑控制可以对元件的执行逻辑进行控制,除Once only Controller仅一次控制器以外,其他控制器都可以可以嵌套其他种类的控制器,下面是jmeter5.3支持的控制器种类,我们分别对其进行介绍 Simple Controller Simple Controller用来指定一个执行单元,他不改变元件的执行顺序,主要作用是用来组织采样器和其他的逻辑控制器 简单控制器只有名称和注释. 比如说我们可以用它组织模块,在各个模块里在进行请求的发送,这样看起来各模块比较独…
先定义一下我说的remoteService:即远程调用服务,没有http的url.不对外提供或者对外提供有限的服务.具体视各公司的代码架构所定,比如有些公司为web工程,scf服务,db.scf即为服务通讯框架(Service Communication Framework)该层结构,或者一些单独的lib包,里面集成了某些方法 对于有url的http请求,我们可以用jmeter的http请求进行压测,或者使用Apache-AB等进行测试,这种也可以用JMeter进行压力测试,具体操作如下 核心步…
一.环境准备         1.新建一个java工程         2.导入jar包:ApacheJMeter_core.jar     ApacheJMeter_java.jar                 这两个jar是使用jmeter最基础的jar,能够让你的代码在jmeter中运行起来,如果在写代码的过程中需要其他的jar,自行导入.   二.写代码前该知道的           1.如果想要让你的代码在jmeter中运行起来,在创建类的时候需要去继承AbstractJavaSa…
性能测试培训:Ajax接口级性能测试之jmeter版   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest认为工具不是问题,jmeter还是loadrunner都是工具级别的,真的提高性能测试水平,还是需要具备一定架构知识,网络知识,服务器方面的知识,poptest通过大量的实战案例的讲解提高学员的实战经验,尽快上手性能测试.(大家对课程感兴趣,请加qq:908821478) 1.  被测程序环境部署 对于自动…
JMeter完成java请求的压力测试详解以及问题总结 原文地址:http://www.cnblogs.com/zhaoxd07/p/4895224.html    作者:KK_Yolanda 这篇文章已经写得比较全面了,所以转载下,自己懒得总结了, 只对部分做了修改. 先定义一下我说的remoteService:即远程调用服务,没有http的url.不对外提供或者对外提供有限的服务.具体视各公司的代码架构所定,比如有些公司为web工程,scf服务,db.scf即为服务通讯框架(Service…
性能测试之JMeter远程模式 事实上,你的JMeter客户端机器是不能表现出完美的压力请求,来模拟足够多的用户或由于网络限制去向服务施加压力,一种解决方法是通过一个JMeter去控制多个/远程JMeter.通过运行JMeter的远程模式,你可以通过多个低配制的电脑复制测试计划用于模拟一个大数据量的压力并发在服务器上.一个JMeter客户端实例可以控制多个远程JMeter实例,并收集所有数据信息.特点如下: · 保存测试样例在本机电脑 · 通过一台机器来管理多台JMeter测试机 · 不需要复制…
demo下载地址http://yun.baidu.com/share/link?shareid=4277735898&uk=925574576 1.引用jmeter的jar包 到jmeter的保存目录下lib这个文件夹除了自己加的jar包,全部添加到项目中,并build path…
前提:需要准备eclipse作为开发工具,安装jdk,准备完毕,接下来开工喽! 1.新建Java工程BMIrisJNIJarTest,新建lib目录,将Jmeter安装目录下lib/ext包下的ApacheJMeter_core.jar和ApacheJMeter_java.jar复制到lib下,然后导入下图jar包   2.AbstractJavaSamplerClient是Java请求的核心接口,实现接口AbstractJavaSamplerClient,sampleResult的开始和结束方…
view code public class JdbcInsert implements JavaSamplerClient { // 全局变量 PreparedStatement pstmt; Connection conn; @Override public Arguments getDefaultParameters() { // 主要用于把jmeter界面中的参数和java脚本关联起来 Arguments arguments = new Arguments(); arguments.ad…
如项目中的ip.端口号之类的,都可以在此代码中定义 public Arguments getDefaultParameters() { // TODO Auto-generated method stub return null; } 此处注册两个参数到jmeter的变量池: p_name,默认值设为abc p_desc,默认值设为123 /** * 此函数里面可以人工注册一些参数,这些参数可以在java请求面板里展示或更改 */ @Override public Arguments getDe…