一. 安装Java

1.1下载JDK

1) Windows安装jdk,下载完成后,双击安装

2) Linux解压:tar -zxvf jdk-8u74-linux-x64.gz

1.2 Java环境变量

1)Windows
变量名:【JAVA_HOME】
变量值:【D:\Program Files\Java\jdk1.8.0_92】【jdk安装路径】
变量名:【path】
变量值:【\;%JAVA_HOME%\bin;】
变量名:【CLASSPATH】
变量值:【.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;】

2) Linux

在shell终端执行命令: vi /etc/profile

在profile文件末尾加入:

JAVA_HOME=/usr/java/jdk1.8.0_74

PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME, PATH, CLASSPATH

# source /etc/profile  执行后生效

1.3检查

1)在cmd或shell输入java -version,检查是否显示jdk信息,确定是否安装成功

二. 安装Jmeter

2.1 下载

解压:Linux: tar -zxvf  xxxxx.tar

2.2 Jmeter环境变量

1)Windows
【变量名】JMETER_HOME
【变量值】E:\apache-jmeter-3.1(jmeter解压路径)
【变量名】CLASSPATH
【变量值】

%JMETER_HOME\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMET ER_HOME%\lib\logkit-2.0.jar;

2)Linux

方法一:

  在/etc/profile文件中添加变量【对所有用户生效(永久的)】

$ vi /etc/profile

添加以下内容:

export JMETER_HOME=/usr/local/jmeter/apache-jmeter-3.1

export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.j ar:$JMETER_HOME/lib/logkit-2.0.jar:$CLASSPATH

export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin

# source /etc/profile  执行后生效

方法二:  

在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】

  # vi .bash_profile

  添加内容同上。

# source .bash_profile  生效

三. 设置JVM内存

3.1 Windows

找到JMeter bin目录下的jmeter.bat文件编辑

set HEAP=-Xms2048m -Xmx2048m

set NEW=-XX:NewSize=640m -XX:MaxNewSize=640m

3.2 Linux

linux在jmeter文件修改

3.3 JVM监控工具

jconsole、jvisualvm、jmap、jps、jstack、jhat、jstat

四. 分布式配置

1、在控制机上修改bin/jmeter.properties,添加从机的IP及端口(使用-r启动所有从机)1099是默认的rmi通信端口

# Remote Hosts - comma delimited

remote_hosts=192.168.5.95:1099,192.168.5.103:1099

2、开启执行脚本机器上的server服务,bin/jmeter-server

3、在控制机执行分布式命令

指定从机IP:

jmeter -n -t testplan/comic.jmx -R 192.168.5.95,192.168.5.103 -l testResult/result1.jtl

启动所有从机执行脚本

jmeter -n -t /work/test/franklin.jmx  -r -e -l /tmp/result.jtl -o /work/ResultReport

五. 运行

jmeter -n -t /work/test/franklin.jmx  -r -e -l /tmp/result.jtl -o /work/ResultReport

-n :以非GUI形式运行Jmeter

-t :source.jmx 脚本路径

-l :result.jtl 运行结果保存路径(.jtl),此文件必须不存在,重新执行需要手动删除已经生成的jtl文件

-e :在脚本运行结束后生成html报告

-o :用于存放html报告的目录

这样就可以启动测试了。 但是启动之前要求result.jtl这个文件不存在,所以要注意运行前删除这个文件

Shell

rm -rf /tmp/result.jtl && rm -rf /work/ResultReport/ && ./jmeter -n -t /work/test/franklin.jmx  -r -e -l /tmp/result.jtl -o /work/ResultReport

可以进一步将这三个命令定义在一个shell脚本中

Shell

#!/bin/bash

rm -rf /tmp/result.jtl

rm -rf /work/ResultReport/

./jmeter -n -t /work/test/franklin.jmx  -r -e -l /tmp/result.jtl -o /work/ResultReport

六. 脚本

6.1 Token 提取

添加正则表达式:"data":"(.*?)" ,提取匹配字符到变量$token;

Default value:null .

6.2 Header manage

Authorization ${token}

content-type application/json;charset=UTF-8

Jmeter之分布式执行测试的更多相关文章

  1. Jmeter之分布式执行测试 (2)

    一. 安装Java 1.1下载JDK 1) Windows安装jdk,下载完成后,双击安装 2) Linux解压:tar -zxvf jdk-8u74-linux-x64.gz 1.2 Java环境变 ...

  2. AWS EC2+Docker+JMeter构建分布式负载测试基础架构

    目录 概述及范围 前提条件 Part 1: Local setup-本地配置 Part 2: Cloud端基础架构--Infrastructure 总结: 原文链接 @ 概述及范围 本文介绍有关如何使 ...

  3. Jmeter性能测试-分布式压力测试

    作为一个测试行业的菜鸟,由于投身于一个小公司,包揽所有的测试.刚开始的功能测试到接口测试,稳定性测试,兼容性测试等,一般由于是小项目所以对于性能有所忽略,也没怎么涉及,公司接了个大项目,后期对于性能上 ...

  4. jmeter 非GUI执行测试,导入jtl文件没有响应数据出来办法

    jemter 官方也一直强调要在非GUI下执行 Run your JMeter test in command-line non-GUI mode as 在linux下执行jmeter压力测试,生成j ...

  5. jmeter 非GUI执行测试,没有响应数据保存到jtl文件办法

    估计是jmeter为了减轻客户机负担,就没又默认把这些信息保存,如果想要保存,也可以,需要做出如下配置: 修改bin目录下的user.properties文件,追加配置: jmeter.save.sa ...

  6. 【Jmeter】分布式并发测试

    一.前提: 1.最近在做一下压测,但是单台服务器的CPU,内存可能不够支撑压测的项目,这时候,我们可以使用Jmeter分布式压测. 2.本次使用的环境: 1台服务器做master(调度器) 5台服务器 ...

  7. linux使用JMETER进行分布式压力测试

    1. 下载jmeter tgz文件   http://jmeter.apache.org/download_jmeter.cgi 2. 登录linux服务器,创建jmeter目录,rz上传jmeter ...

  8. Jmeter之分布式部署测试

    在使用Jmeter进行性能测试时,因受单机电脑的配置限制,可能无法支持较大数量的并发,此时就需要使用Jmeter提供的分布式测试的功能. jmeter分布式测试的执行原理是选择一台作为调度机,其他机器 ...

  9. Jmeter之分布式测试

    1)Jmeter 是纯java 应用,对于CPU和内存的消耗比较大,并且受到JVM的一些限制: 一般情况下,依据机器配置,单机的发压量为300-600,因此,当需要模拟数以千计的并发用户时,使用单台机 ...

随机推荐

  1. php 16进制颜色代码转换为rgba,rgb格式

    <?php $rgb = hex2rgba('#FFFFFF', false, true); echo 'rgb: '.$rgb[0].','; echo $rgb[1].','; echo $ ...

  2. Sprinig泛型依赖注入

    在父类中建立关系 (spring4.x以上版本) package com.spring.annotation.generic; import org.springframework.beans.fac ...

  3. XML与DTD

    什么是XML XML个称为Extensible Markup Language,意思是可扩展的标记语言. 应用常见 配置文件 <?xml version="1.0" enco ...

  4. codeforces966 A

    这题主要就是考虑y1两侧的最近的电梯和楼梯 当时主要是考虑  如果电梯在y1和y2中间的话   那么直接做电梯就是最优解   如果在y2右边就用abs去算 然后发现其实只考虑 y1的左右两边的电梯和楼 ...

  5. VirtualBox 安装 CentOS6.5 教程

    VirtualBox安装 CentOS6.5教程 1.选择第一个进行安装 2.选择右面的 skip 进入安装 3.点击next 4.选择中文简体 5.选择美式键盘 6.选择第一个 7.输入主机名 8. ...

  6. AngularJS controller as vm方式

    从AngularJS1.20开始引入了Controller as 新语法,以前版本在Controller 中必须注入$scope这个服务,才能在视图绑定中使用这些变量,$scope不是那么POJO(普 ...

  7. inline&friend&操作符重载

    (1).inline:是一种以空间换时间的做法省去调用函数的额外开销,提高程序的运行效率,它对于编译器而言只是一种建议 (2).友元函数:是可以直接访问类的private成员的非成员函数.它是定义在类 ...

  8. 使用System.Net.Mail中的SMTP发送邮件(带附件)

    System.Net.Mail 使用简单邮件传输协议SMTP异步发送邮件 想要实现SMTP发送邮件,你需要了解这些类 SmtpClient :使用配置文件设置来初始化 SmtpClient类的新实例. ...

  9. .net core 使用 AspectCore 实现简易的AopCache。

    (第一次写博客,好紧张!!!) 源码地址:传送门 项目中有很多缓存的需求,能自己定义缓存key和时间,能根据key去清理缓存. 网上找了一圈,有很多基于aop的缓存组件,但是都不满足我的需求.故造了个 ...

  10. 定时任务 Wpf.Quartz.Demo.3

    先把全部源码上传,只是一个Demo,希望大家指点一下不足之处,见本文底部. 1.设置界面 2.详情页面 好了,现在慢慢叙述里面的一些方法. 3.实现拷贝的方法: (1) public static v ...