美文网首页
简年10:JMeter压力测试集合

简年10:JMeter压力测试集合

作者: jerry_mei | 来源:发表于2017-01-29 21:41 被阅读728次

今天闲来无事整理了一下之前JMeter测试的相关的文档

一、基本测试


Jmeter环境安装

1.JDK下载:
2.Jmeter下载:
3.环境变量配置:
  • JAVA_HOME C:\Program Files\Java\jdk1.8.0_91
  • PATH %JAVA_HOME%\bin
  • CLASSPATH .;%JAVA_HOME%\lib;
  • JMETER_HOME D:\Program Files (x86)\apache-jmeter-3.0

http请求测试

1.启动jmeter

jmeter无需安装,解压后在apache-jmeter-3.0\bin目录下有个jmeter.bat文件,双击执行

2.建立测试Sampler

1)建立线程组
右键测试计划,添加Threads—>线程组

image_1av868ukubhq1mkuto81m021h0813.png-27.8kBimage_1av868ukubhq1mkuto81m021h0813.png-27.8kB
这里设置线程数为100个模拟100个用户;
Ramp-Up Period为10s,在10s内建立全部的线程;
循环测试为10,每个线程重复执行10遍
具体参数说明:关于JMeter线程组中线程数,Ramp-Up Period,循环次数之间的设置概念

2)添加http请求
右键线程组,添加Sampler->HTTP请求

image_1av86u0bl1oji1iths67nfp1n3i1g.png-33kBimage_1av86u0bl1oji1iths67nfp1n3i1g.png-33kB
设置好web服务器的名称,端口号,协议,方法,字符编码,路径
如果只对一个页面进行压力测试,路径填该页面的路径即可,比如:测https://www.leangoo.com/blog.html,路径填写/blog.html
如果测多个链接,可以将链接保存到一个文本文件中,然后随机读取,具体操作:
  • 新建一个txt文件,里面保存链接路径,格式如下
/blog.html
/event.html
/11664.html
/leangoo_app.html
/leangoo_guide/leangoo_guide_login.html
  • 点击选项->函数助手对话框,选择_StringFromFile,填上文件的绝对路径,点击生成。将生成的结果填写到路径中即可

3)运行查看运行结果
右键线程组,添加监听器,一般我们观察Summary Report查看结果树用表格查看结果
点击启动按钮,即可观察测试的结果

二、脚本测试

BadBoy录制操作脚本

1.BadBoy下载:

2.脚本录制

image_1av88rqn3tr6kforum1rne8rm9.png-80.6kBimage_1av88rqn3tr6kforum1rne8rm9.png-80.6kB
在地址栏输入网站地址,完成一系列的用户操作,点击停止按钮即完成脚本的录制
点击File->Export to JMeter,保存脚本为JMeter可读取的格式

JMeter测试脚本

image_1av8947pf171517v3dnd14uihe6m.png-134.7kBimage_1av8947pf171517v3dnd14uihe6m.png-134.7kB

在JMeter中打开该脚本,可以看到该脚本被保存为一个测试案例,里面一些参数需要做参数化处理,比如登录的用户名和密码,具体操作:

  • 新建一个csv文件,用记事本打开,里面填写用户名和密码,用半角逗号隔开

  • 在函数助手里,选择_CSVRead,填上文件绝对路径和参数的列号,点击生成

  • 填写请求参数


    image_1av89ipd01ifc15l8ahb2fd7bg13.png-13.5kBimage_1av89ipd01ifc15l8ahb2fd7bg13.png-13.5kB

    参数处理好之后,同之前一样,设置线程组属性,添加监听器,点击运行

三、WebSocket测试

安装JMeter WebSocketSampler

由于JMeter里没有针对WebSocket的Sampler,所以就需要安装开源的插件,以使其支持WebSocket协议。

建立WebSocketSampler

image_1av8alhb247t108e14ot13j41teu9.png-38.9kBimage_1av8alhb247t108e14ot13j41teu9.png-38.9kB
同之前一样,首先建立一个线程组,然后添加一个WebSocketSampler,设置相关参数
注意:Streaming Connection – 选择这个TCP session要不要保持,如果勾上标识连接会一直存在,如果没有勾上,那么得到第一次响应后该链接就会被关闭。
Request data:填入将要发送的请求,这里填的是[5,${__counter(false,num)}]用了一个计数器,使每个线程每次发送的数据都不一样,保证每个websocket连接都是新开的

分布式测试

Jmeter 是java 应用,对于CPU和内存的消耗比较大,单台机器模拟数以千计的并发用户量,会引起JAVA内存溢出错误。所以JMeter支持多台机器分布式测试。操作步骤:

  • 一台机器作为controller,其他机器作为agent。所有机器的JMeter环境要相同,注意agent机器是否开启防火墙
  • 在controller机器的bin目录下,找到jmeter.properties文件,编辑该文件
找到remote_hosts将agent的ip地址都填上
remote_hosts=192.168.0.121,192.168.0.106

  • 所有的agent机器执行jmeter-server.bat文件
  • controller机器建立好测试Sampler,点击运行->远程全部启动。注意:设置线程数时填写的是每台机器的线程数,而不是总的线程数

相关文章

网友评论

      本文标题:简年10:JMeter压力测试集合

      本文链接:https://www.haomeiwen.com/subject/dfbcittx.html