jmeter有自己的GUI页面,但是当线程数很多或者现在有很多的测试场景都是基于linux下进行压测,这时我们可以使用jmeter的命令行方式来执行测试,该篇文章介绍jmeter单节点命令运行方式。

1:准备单节点linux机器,并安装jdk,即安装java环境

我的linux机器为:134.64.14.96,至于怎么安装java环境就不说了

2:上传并解压最新的jmeter包到linux服务器上,目前jmeter版本已经进入3了这里给出我的安装包云盘地址:http://pan.baidu.com/s/1bI3r2I 密码:f5ll

3:由于linux上面没有像windows那样直观的jmeter的gui页面使得我们制定jmeter的jmx脚本比较费力(一般linux服务器为了性能考虑不会装图形化界面),所以jmx脚本我们可以在本地windows机器上利用jmeter的gui页面先制作好,然后上传到服务器上去执行

下面用百度请求为例:

在本地双击jmeter的bin目录下的jmeter.bat文件启动jmeter的gui页面,生成一个百度的接口请求jmx脚本,并在本地调试通过

调试通过以后,此时功能测试的脚本就生成好了,我们在将此脚本做一定配置和修改,使其成为一个可以放在服务端跑的性能脚本

一般我都做两步:

第一步:删除-查看结果树等一切监听器 ,目的是:jmeter底层就是java写的,为减少压测时性能损耗一切不用的控件都不要放在上面,至于测试结果会有jtl文件能够统计不需要这里在添加监听器

第二步:修改线程组下面的线程数和循环次数,如下面的设置可以实现:20个线程数跑3分钟的场景,修改完成进行保存该jmx文件

4:上传该性能脚本(baidu_requests_results.jmx)到linux服务器上

如我上传在了bin目录下/home/tester/apache-jmeter-3.0/bin

5:命令行运行jmeter脚本

执行命令为:

./jmeter -n -t baidu_requests_results.jmx -l baidu_requests_results.jtl

观察服务器控制台:

这样就用命令行的方式完成了jmx脚本20个线程3分钟并发的场景测试

jmeter命令行具体各项的含义为:

-h 帮助 -> 打印出有用的信息并退出

-n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter

-t 测试文件 -> 要运行的 JMeter 测试脚本文件

-l 日志文件 -> 记录结果的文件

-r 远程执行 -> 在Jmter.properties文件中指定的所有远程服务器

-H 代理主机 -> 设置 JMeter 使用的代理主机

-P 代理端口 -> 设置 JMeter 使用的代理主机的端口号

6:执行结果说明

一:可以看到控制台结果中打印的日志

summary +  91773 in 00:00:06 = 15787.5/s Avg:     0 Min:     0 Max:    78 Err: 91773 (100.00%) Active: 20 Started: 20 Finished: 0

解析为:

在6秒的时间内增加请求91773个,平均每秒处理15787.5个请求数目,时间单位为ms,err为错误率,这里百度请求为100%错误是因为百度本身的机制造成的,同一个ip短时间并发请求百度,会拒绝请求所以才会出错,真实情况下执行自己自定义脚本可以根据错误率查看服务器是否能承受住那么大的压力,active为在线用户数,即当前有多少个用户在并发请求

二:在jmeter的bin目录下生成了一个jtl文件,该文件中收集了3分钟内所有的测试结果

throughput(每秒处理事务数)

随着活跃线程数增加响应时间曲线:

聚合报告:

对于jtl测试结果我们可以有多种方式去查看另外性能测试对于性能结果的分析也至关重要,关于jtl测试结果查看与分析,这里请看我的jmeter系列博文之-jmeter之jtl测试报告(说明:上面的图表中错误率为100%是由于我并发压测百度,百度本身机制会拒绝短时间内同一ip并发请求所以才会出错)

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

来源:https://www.cnblogs.com/miaomiaokaixin/p/6114756.html

最新文章

  1. SQL SERVER 2008复制数据库时发生执行SQL Server代理作业错误
  2. 浅谈2D游戏设计模式3 - 冒险地图之美(1)
  3. Power of Two
  4. 【BZOJ 3165】【HEOI 2013】Segment
  5. JPA入门例子(采用JPA的hibernate实现版本)
  6. No module named flask.ext.sqlalchemy.SQLALchemy
  7. 认识javascript
  8. Arduino 使用舵机库时 其它引脚输出怪异 解决方案
  9. 【tcl脚本】改变输出字符格式
  10. Windows常用性能计数器总结
  11. Tomcat的错误 之 java.lang.IllegalArgumentException: Document base * does not exist
  12. thinkphp5.1 退出登陆操作
  13. Spring boot集成spring-boot-starter-data-jpa环境搭建
  14. IDEA添加Git项目
  15. GraphQL入门2
  16. c# string 扩展方法
  17. 【Python】etree方法生成,解析xml
  18. JS中数据类型的判断
  19. HGOI20181030 模拟题解
  20. 《剑指offer》第三十二题(分行从上到下打印二叉树)

热门文章

  1. make 编译笔记
  2. Java集合-Set接口
  3. IEEE 802.66( WiMax)的衰亡
  4. Java Maven环境搭建
  5. GIS空间分析和建模复习重点2
  6. SQL server数据库 账户SA登录失败,提示错误:18456
  7. 查看process状态
  8. 230219 Business 31-48
  9. Codeforces Round #843 (Div. 2) C【思维】
  10. supertv