1、一张分布式压力的图解,如下

准备:

1、两台slave

2、一个master

3、待测目标地址 http://XXX

准备环境:linux环境,master如果可以最好有可视化电脑界面,便于jmx文件的随时修改,此处我的master是没有界面的

2、文章参考:

http://www.cnblogs.com/puresoul/p/4844539.html

3、开始分布式压力测试

步骤一: 登录master

前提:master上安装JDK和jmeter

1)ssh 192.168.10.1  --我们假设master IP为192.168.10.1

2)授权   chmod 600 /Users/Desktop/work/performance/ecs-ssh-key.pem

3)登录 (master)    ssh -i /Users/Desktop/work/performance/ecs-ssh-key.pem ec2-user@192.168.10.1

--ecs-ssh-key.pem为存放在本地的登录授权证书

4)完成

步骤二:拷贝代码 login.jmx

由于master没有配置界面,我需要在我本地电脑写好代码拷贝到master

拷贝命令:

scp -i ~/Desktop/work/performance/ecs-ssh-key.pem ec2-user@192.168.10.1:/home/ec2-user/performanceTest/login.jmx  ~/Desktop/work/performance/jmx

步骤三、配置两台slave

前提:安装JDK 和jmeter到两台slaves

1)连接slave

ssh -i ~/Desktop/work/performance/ecs-ssh-key.pem ec2-user@192.168.0.1
ssh -i ~/Desktop/work/performance/ecs-ssh-key.pem ec2-user@192.168.0.2

2)两台slaves 启动jmeter bin目录下的jmeter-server文件,确保jmeter服务启动

3)拷贝csv文件到slave

jmx文件只需要拷贝到master,两台slave只需要拷贝user.csv文件(csv文件为200个用户登录的实际用户名、密码)

两台slave上csv存放的文件路径需要保持一致,均放置在jmeter bin目录下

步骤四:运行jmx

方式1:修改脚本线程数运行的情况

jmeter -JthreadCount=500 -n -t login.jmx -l result.jtl -e -o ResultReport

方式2:直接运行整个jmx(推荐)

./jmeter -n -t /home/ec2-user/testFile/login.jmx -r -l /home/ec2-user/result/result.jtl

4、controller配置slave

打开master上Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.0.1:8089 192.168.0.2:8089,8089是端口号,可以随意自定义。如果有多台代理机,这里需要把所有的代理机的IP地址和端口号都加入进来。

5、测试报告

以命令方式执行完jmeter脚本后,会生成jtl文件,需要将jtl转换成图标展示出来,便于查看测试报告

方式1:

1)

./jmeter -n -t /home/ec2-user/performanceTest/login.jmx -r -l /home/ec2-user/result/result.jtl

2)

./jmeter -g result.jtl -e -o /home/tester/apache-jmeter-4.0/resultReport

方式2:

./jmeter -n -t login.jmx -r -l result.jtl -e -o /home/tester/apache-jmeter-4.0/resultReport

参数说明:

    -n : 非GUI模式下执行Jmeter
    -t : 执行测试文件所在的位置及文件名称
    -r : 远程将所有agent启动用在分布式测试场景下,不是分布式测试只是单点就不需要-r
    -l : 指定生成测试结果的保存文件, jtl 文件格式
    -e : 测试结束后,生成测试报告
    -o : 指定测试报告的存放位置
   ( -o 指定的文件及文件夹,必须不存在 ,否则执行会失败,对应上面的命令就是resultReport文件夹必须不存在否则报错)
 

ps:每次运行完生成的测试报告需要删除,多次运行不能覆盖

6、压缩测试报告拷贝到本机

master上压缩测试结果:(如果master有可视化界面操作,则不需要这一步,直接可在master查阅)

zip -q -r 500report.zip /home/ec2-user/performanceTest/ResultReport

拷贝压缩结果到本地,查看测试结果图表:

scp -i ~/Downloads/ecs-ssh-key.pem ec2-user@192.168.10.1:/home/ec2-user/performanceTest/500report.zip ~/Desktop/work/performance/
scp -i ~/Desktop/work/performance/ecs-ssh-key.pem ec2-user@192.168.10.1:/home/ec2-user/performanceTest/950report.zip ~/Desktop/work/performance/

命令:

删除文件:
rm -f 500report.zip --删除文件
rm -rf 500report.zip --删除文件夹
-r 向下递归,不管有多少级目录,一并删除
-f 直接强行删除,没有任何提示

jmeter分布式压力测试实践+登录为例的更多相关文章

  1. 性能测试工具 jmeter 分布式压力测试实操

    性能测试工具 jmeter 分布式压力测试实操 本文在Non-GUI Mode下进行,准备好三台有jdk环境,linux操作系统,同一局域网测试机器,运行两台slave,一台master机器,进行分布 ...

  2. linux上实现jmeter分布式压力测试(转)

    摘要:最近根据公司工作的需求,学习了一些压力测试的知识,目前,公司使用的是jmeter进行压力测试.下面就记录下近期的学习.我想将这次的博文分成三个部分:1.开始测试前的准备(测试环境的搭建)2.在一 ...

  3. 【转】Jmeter分布式压力测试

    安装 下载地址:http://jmeter.apache.org/download_jmeter.cgi 安装前提(因为jmeter依赖于Java所以必须先配置好java) 下载后解压: tar -x ...

  4. Jmeter 分布式压力测试

      JMeter中进行分布式测试 作为一个纯 JAVA 的GUI应用,JMeter对于CPU和内存的消耗还是很惊人的,所以当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心, ...

  5. Jmeter分布式压力测试

    有时候,一台机器无法支持很多个虚拟用户并发,这时就会使用分布式测试来实现这个功能,jmeter是有提供这个功能的.要实现分布式测试,得在主从(agent和controler)机器的jmeter安装目录 ...

  6. jmeter分布式压力测试配置操作

    前提准备条件:1.主控机一台为master,ip地址:10.8.88.1772.负载机一台为slave, ip地址:10.8.88.1193.主控机和负载机都安装一样的JDK环境和jmeter版本.5 ...

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

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

  8. JMeter接口压力测试课程入门到高级实战

    章节一压力测试课程介绍 1.2018年亿级流量压测系列之Jmeter4.0课程介绍和效果演示 简介: 讲解课程安排,使用的Jmeter版本 讲课风格:涉及的组件,操作配置多,不会一次性讲解,会先讲部分 ...

  9. 使用JMeter做压力测试

    使用JMeter做压力测试 1.下载Jmeter 地址:http://jmeter.apache.org/download_jmeter.cgi 2.启动jmeter 运行bin/jmeter.bat ...

随机推荐

  1. python引入自定义模块

    Python的包搜索路径 Python会在以下路径中搜索它想要寻找的模块:1. 程序所在的文件夹2. 标准库的安装路径3. 操作系统环境变量PYTHONPATH所包含的路径 将自定义库的路径添加到Py ...

  2. MapReduce实现与自定义词典文件基于hanLP的中文分词详解

    前言: 文本分类任务的第1步,就是对语料进行分词.在单机模式下,可以选择python jieba分词,使用起来较方便.但是如果希望在Hadoop集群上通过mapreduce程序来进行分词,则hanLP ...

  3. DeviceIoControl 驱动交互

    驱动程序通信的函数,除了ReadFile和WriteFile函数还有DeviceIoControl函数,而且DeviceIoControl函数那是相当的彪悍.因为它可以自定义控制码,你只要在IRP_M ...

  4. InfluxDB(官方使用说明)

    安装InfluxDB OSS 此页面提供有关安装,启动和配置InfluxDB的说明. InfluxDB OSS安装要求 root为了成功完成,需要安装InfluxDB软件包或具有管理员权限. Infl ...

  5. DataGridView之编码列重绘

    实现方式如下: private void dgvRelation_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) { ...

  6. css居中方法小结

    水平居中 行内元素 如果被设置元素为文本.图片等行内元素时,水平居中是通过给父元素设置 text-align:center 来实现的. 块状元素 当被设置元素为 块状元素 时用 text-align: ...

  7. 黄聪:Pjax无刷新跳转页面实现,支持超链接与表单提交

    什么是pjax? 当你点击一个站内的链接的时候,不是做页面跳转,而是只是站内页面刷新.这样的用户体验,比起整个页面都闪一下来说, 好很多. 其中有一个很重要的组成部分, 这些网站的ajax刷新是支持浏 ...

  8. Python单元测试框架之pytest 2 -- 生成测试报告

    From: https://www.cnblogs.com/fnng/p/4768239.html Python单元测试框架之pytest -- 生成测试报告 2015-08-29 00:40 by ...

  9. 【java】之equals和==区别

      Java中数据类型可以分为两类 1.基本数据类型(byte,short,char,int,float,double,long,boolean) 2.复合数据类型(类,String等) Δ在基本数据 ...

  10. 廖雪峰Java5Java集合-5Queue-1使用Queue

    Queue特性和基本方法 Queue实现一个先进先出(FIFO, First In First Out)的队列.如收银台排队支付. Java中LinkedList实现了Queue接口,可以直接把Lin ...