用jmeter压测指标对交易模块做压测是怎么写

使用Jmeter做接口压力测试-实战使用Jmeter做接口压力测试-实战出彩人百家号转发是对小编的最大支持本文作者:飞翼_U缘由前段时间只是看了小强的视频,跟着视频做一些实验,这周有个项目需要做压力测试,我便做个全程记录,以后自己用到也回来看看,毕竟很长时间不做就忘记了。业务场景可知某系统A目前是2台机器承受10W用户,以后用户会扩展到200W,问:大概需要多少台机器?测试思路在window本机上创建测试计划形成 .jmx。然后拿到linxu系统去跑测试计划进行打压最后把跑通的脚本保存为 .jmx文件。2.在linux环境执行测试计划(打压)把脚本上传到 linxu环境,可以在脚本里面直接修改参数(并发数、运行时间、参数文件的位置)在jmeter的bin目录下执行测试计划,执行命令如下;×使用Jmeter做接口压力测试-实战飞翼_U 21:09*字数 1221阅读 16290评论 35喜欢 22缘由:前段时间只是看了小强的视频,跟着视频做一些实验,这种学习方式总会给人一种 ‘我学的是假Jmeter’的错觉,这周有个项目需要做压力测试,我便做个全程记录,以后自己用到也回来看看,毕竟很长时间不做就忘记了。业务场景:可知某系统A目前是2台机器承受10W用户,以后用户会扩展到200W,问:大概需要多少台机器?测试思路:在window本机上创建测试计划形成 .jmx。然后拿到linxu系统去跑测试计划进行打压1.jmeter安装1)window系统,下载.zip包解压,添加环境变量,就ok .windows系统安装jmeter2)linux安装,下载tar.gz包解压,添加环境变量,linux系统安装jmetercat /etc/profile#JDK配置exportJAVA_HOME=/opt/product/test/tools/jdk1.8.0_111exportPATH=$JAVA_HOME/bin:$PATHexportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar#Jmeter配置export JMETER=/opt/apache-jmeter-3.0export CLASSPATH=${JMETER}/lib/ext/ApacheJMeter_core.jar:${JMETER}/lib/jorphan.jar:$JMETER/lib/logkit-2.0.jar:${CLASSPATH} export PATH=${JMETER}/bin/:${PATH}验证是否安装好,返回如下的信息就代表安装好了[root@localhostbin]# java -versionjava version "1.8.0_111"Java(TM) SE Runtime Environment (build 1.8.0_111-b14)Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode) [root@localhostbin]# [root@localhost bin]# jmeter -vWriting log file to: /opt/apache-jmeter-3.0/bin/jmeter.log _ ____ _ ____ _ _ _____ _ __ __ _____ _____ _____ ____/ \ |_ \ / \ / ___||||____|||\/|____|_ _|____|_ \ / _ \||_) / _ \||||_||_|_|||\/||_||||_|||_)| / ___ \|__/ ___ \|___|_||___||_||||||___||||___|_ 1.在windows环境录制测试计划1)打开jmeter,创建测试计划(线程组-sampler(HTTP请求-监听器(查看结果树、聚合报告)))100个并发打压2分钟.pngHTTP请求,填写IP,端口,请求方法,路径,参数名称和值HTTP请求.png以上截图中的参数名称是接口文档里面定义的,值是我们设定的。设定参数值的方法很多,第一个方法是在文件中取值,比如第一个参数 UserID是在一个文件中去的,如果在文件中取值需要添加配置元件(CSV Date Set Config)进行参数化,如下图:配置元件.png取参数也可以通过函数动态生成数据,如 ${__RandomString(8,324YFHDDNJ32EWWDDYEHD,)}指在后面的字符中随机取8个数字。查看结果树和聚合报告是用来查看执行计划是否成功以及各项指标的。保存测试计划.png最后把跑通的脚本保存为 .jmx文件。2.在linux环境执行测试计划(打压)把脚本上传到 linxu环境,可以在脚本里面直接修改参数(并发数、运行时间、参数文件的位置)在 jmeter的bin目录下执行测试计划,执行命令如下;执行命令后还需要观察打压过程是否有报错,监控linux服务器的cpu 、内存、负载等。如果脚本过程有报错,还要去监控应用的日志,我在打压的时候应用日志就报了内存泄露;这时候需要分析内存泄露在什么地方,什么地方占用内存,执行命令:jmap -dump:format=b,file=mem.datPIDdump下来的文件需要用工具分析,具体使用工具 Memory Analyzer,大体意思就是大部分的内存泄露是因为 "java.util.concurrent.ConcurrentHashMap$Node"还可以看具体报告的细节,虽然看不大懂,但是知道肯定是代码引起的。打压过程还有个很奇怪的现象就是打压完成后内存和cpu好久都下不来,这明显是不正常的。对比图如下:后来就把报告发给研发分析,也发给我们经理看了下,最终他们给出的结果是被压的页面没有关闭session,如下修改:后来关闭后再打压果然不报错了,老大说这种这种问题很常见,不得不感叹经验很重要呀!最后展示一下某个接口的打压情况:现在打压出了接口的TPS,但是我还不知道要根据这个TPS怎么判断出使用几台服务器,周一把数据汇报给经理再确定。和老大商讨后的结果:根据现网10W认证用户可以算出:就算用户增加到200W,算出来的是:600多,但是打压出来的系统能力远不止这些,所以目前2台服务器就可以支撑了。本文由百家号作者上传并发布,百家号仅提供信息发布平台。文章仅代表作者个人观点,不代表百度立场。未经作者许可,不得转载。出彩人百家号最近更新:简介:记录生活百态,分享生活乐趣作者最新文章相关文章博客分类:
Jmeter集群压测架构图
其中Jmeter Controller是作为master(在jmeter是client端)用于发布压测用例和回收压测结果。
而其他的slave(在jmeter是server端)用于分布式压测。
server_port=24001
server.rmi.localhostname=10.8.39.120
server.rmi.localport=26001
启动SLAVE 命令
%JMETER_HOME%\bin\jmeter-server.bat -Djava.rmi.server.hostname=10.8.39.114
java.rmi.server.hostname是指该slave机器的(局域网或公网)IP地址,如:10.8.39.114。
简单的启动脚本,放置在Jmeter的根目录。该脚本请求window的notepad创建并重命名为.bat文件
set JMETER_HOME=%~dp0
call %JMETER_HOME%/bin/jmeter-server.bat -Djava.rmi.server.hostname=10.8.39.114
双击即可启动。
配置MASTER
remote_hosts=10.8.39.114:2.39.115:24001
client.rmi.localport=25000
mode=Statistical
启动MASTER
%JMETER_HOME%\bin\jmeter.bat -Djava.rmi.server.hostname=10.8.39.7
java.rmi.server.hostname是指该master机器的(局域网或公网)IP地址,如:10.8.39.7。
浏览: 1137516 次
来自: 厦门
大神,请赐我一份这个示例的项目代码吧,万分感谢,1530259 ...
不使用增强器
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!4 ...
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!1 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'博客访问: 125649
博文数量: 44
博客积分: 1470
博客等级: 上尉
技术积分: 359
注册时间:
分类: 服务器与存储 10:21:22
原文地址: 作者:
原文已删除
阅读(26820) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
请登录后评论。为了账号安全,请及时绑定邮箱和手机
APP怎么利用JMeter进行压力测试
APP怎么利用JMeter进行压力测试,求解
写下你的评论...
Copyright (C) 2018 imooc.com All Rights Reserved | 京ICP备 号-11

我要回帖

更多关于 jmeterem多节点压测 的文章

 

随机推荐