2020博客地址汇总
2019年博客汇总
目录
1、目的
2、范围
3、工作程序
一、测试准备
安装JDK[S1]
配置Jmeter
启动Jmeter
二、测试执行
HTTP请求测试
运行脚本
使用多台机器做负载测试
WebService接口测试
WebSocket接口测试
测试后恢复
进一步规范和管理对Jmeter软件的使用方法。
适用于SSTL测试中的性能测试的使用。适用于Jmeter版本。
右键计算机属性->高级系统设置->系统属性->高级->环境变量->添加如下的系统变量:
变量名:【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;】
验证JDK;运行cmd->输入java -version->显示java版本就表示jdk安装成功
变量名:【JMETER_HOME】
变量值:【F:\test\jmeter\apache-jmeter-3.0(根据实际的jmeter解压路径填写)】
变量名:【CLASSPATH】
变量值:
【%JMETER_HOME\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar;】
Jmeter无需安装,只需解压,双击Jmeter解压路径(apache-jmeter-3.0\bin)的bin下面的jmeter.bat。
脚本录制有两种方式:一种是利用Jmeter代理服务器录制,另一种是利用badboy工具录制。
***利用Jmeter代理服务器录制脚本***
添加虚拟用户组右击“测试计划”>添加>Threads(Users)>线程组。线程组(Thread Group)就是指一组用户的意思,换句话说一个线程组就是一组虚拟用户(virtual users),这些虚拟用户用来模拟访问被测系统
线性属性设置 线程数:指虚拟用户数。Ramp-Up Period (in seconds):虚拟用户增长时长,指用户在多长时间内增长完毕。此处设置为0,表示用户数同时加载。循环次数:指一个虚拟用户做多少次的测试 设置并启动Jmeter代理服务器① 右键单击工作台(Work Bench),选择非测试元件(Non-Test Elements)中的Http代理服务器(HTTP Proxy Server),如下图所示:
② 设置该“Http 代理服务器(HTTP Proxy Server)”->目标控制器(Target Controller)选择刚才建立的线程组(测试计划>线程组)
3 设置IE的代理服务器配置
打开IE界面,选择“工具(Tools)”->“Internet选项(Internet Option)”->“连接(connections)”->“局域网设置(LAN setting)”,如下图所示:
在局域网设置(LAN setting)界面勾上“为LAN使用代理服务器(Use a proxy server for your LAN)”,设置地址(address)为“localhost(本机)”,端口(Port)为8888,端口号必须是没有被占用的(可以通过netstat –ano命令查看一下本机正在使用的端口,不要重复使用,否则录制不到Jmeter脚本)
注意:录制完成后记得恢复浏览器的代理服务器设置,否则无法上网
录制脚本在浏览器的URL栏输入需要测试的地址,进行需要录制的操作,操作完毕后,点击Jmeter中的“Http代理服务器(HTTP Proxy Server)”的“停止(STOP)”按钮
此时录制完成后你会发现录制到太多的没用数据,此时需要使用正则表达式在代理服务器的排除模式下添加过滤(如过滤jpg文件使用.*\.jpg),如下图所示:
参数化在使用Jemeter做压力测试的时候,往往需要参数化用户名、密码以到达到多用户使用不同的用户名密码登录的目的.这个时候我们就可以使用CSV Data Set Config实现参数化登录
右击脚本中的用户名和密码,选择“Replace values with variables”,对用户名和密码做参数化
2、右击线程组(Thread Group)->配置元件(Config Element)->CSV Data Set Config,设置相关参数:
FileName:csv文件的完整路径(当csv文件在bin目录下时,只需给出文件名即可)File Encoding:默认为ANSIVarible Names:定义文本文件中的参数名,参数之间逗号分隔.参数项的名称应该与HTTP Request中的参数项一致。Delimiter:如文件中使用的是逗号分隔,则填写逗号;如果使用的是TAB,则填写\t;Allow Quoated data:选项选为True的时候对全角字符的处理出现乱码Recycle on EOF:设置为True后,允许循环取值;设置为False后,当读取文件到结尾时,停止读取文件Stop Thread on EOF:当“Recycle on EOF”为False并且Stop Thread on EOF为True,则读完csv文件中的记录后,停止运行Sharing Mode:设置是否线程共享
***利用badboy工具录制脚本***
下载并启动Badboy工具进入Badboy安装目录下双击badboy.exe。下图是Badboy主界面:
以登录百度为例录制脚本,输入百度网址后回车,即进入百度界面
在输入框中输入“badboy”,点击百度搜索。
将录制脚本导出为jmx格式。点击File -> Export to Jmeter -> 另存为“百度搜索.jmx” -> 保存。
2、添加结果监听器
右击“线程组”->“监听器”->“察看结果树”、“图形结果”、“聚合报告”来查看性能测试过程中请求和响应信息
试运行脚本:先点击保存后点击运行测试按钮。
压力测试:修改线程组的线程数等参数,然后执行。注意:使用badboy录制的脚本做多线程测试时需要在逻辑控制器中添加循环控制器,否则脚本只运行一次不会做多线程并发。
1、在所有期望运行jmeter作为负载生成器的机器上安装jmeter,并确定其中一台机器作为controller,其他的机器作为agent。
2、运行所有agent机器上的jmeter-server文件(假定使用两台机器192.168.9.99 和192.168.9.130作为agent)
3、在controller机器的jmeter的bin目录下,找到jmeter.properties文件,编辑该文件:
查找:remote_hosts=127.0.0.1
修改为:remote_hosts=192.168.9.99:1099,192.168.9.130:1099
这里要特别注意端口号,有些资料说明端口1644为jmeter的controller和agent之间进行通信的默认RMI端口号,但是在测试时发现,设置为1644运行不成功,改成1099后运行通过。另外还要留意agent的机器是否开启了防火墙等。
4、启动controller机器上的jmeter应用jmeter.bat,选择菜单“运行”--->“远程启动”,来分别启动agent,也可以直接选择“远程全部启动”来将所有的agent启动。
结果分析
一般使用聚合报告、图形结果查看性能,如下图所示:
具体原理:Web service都是放在Web服务器(如IIS)后面的,客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到Web服务器来。Web服务器再把这些请求转发给Web service请求处理器。请求处理器的作用在于,解析收到的SOAP请求,调用Web service,然后再生成相应的SOAP应答。所以我们要添加soap协议request。
添加查看结果选项右键选择添加的SOAP/XML-RPC Request,添加监听器,点击图形结果和用表格查看结果,也可以加入其它结果
设置SOAP/XML-RPC Request填写WebService的地址,SOAPAction地址以及数据格式,webservice暴露了哪些接口,接口都需要传入哪些参数,在数据格式中都有体现,你只需要去替换参数,传给服务器就可以了
试运行:设置完之后,可以点击运行按钮,测试一下,点击添加的结果模块查看结果是否成功压力测试:测试成功之后,设置线程组的线程数和循环条件进行压力测试。 试运行:设置完之后,可以点击运行按钮,测试一下,点击添加的结果模块查看结果是否成功压力测试:测试成功之后,设置线程组的线程数和循环条件进行压力测试。
右击“线程组”->“监听器”->“察看结果树”、“图形结果”、“聚合报告”来查看性能测试过程中请求和响应信息
配置websocket sampler,如下图所示:
Server Name or IP:WebSocket发送的目标服务器的地址或者名称Port Number:WebSocker服务器监听的端口号。(一般是HTTP 80端口,可以通过WireShark数据包得到Connection:发送一个连接请求后,Jmeter等待连接完成的最长时间,单位是毫秒Response:对响应消息的最大等待时间Implementation:只支持RFC6455(v13),WebSocket协议标准的最新版Protocol:有ws与wss之分,ws前缀是WebSocket连接的辨别标识,wss前缀是WebSocket安全连接的辨别标识。根据自己的实际情况填写Streaming Connection:选择这个TCP session要不要保持,如果勾上标识连接会一直存在,如果没有勾上,那么得到第一次响应后该链接就会被关闭Request data:填入将要发送的请求,要跟开发沟通好,这个是什么格式的消息
可以在chrome的调试模式下(F12)可以找到websocket的连接信息
在frame的tab页可以看到发送的信息内容,右键可以进行copy
根据上面的ws连接信息配置websocket sampler
分布式实战(干货)
spring cloud 实战(干货)
mybatis 实战(干货)
spring boot 实战(干货)
React 入门实战(干货)
构建中小型互联网企业架构(干货)
python 学习持续更新
ElasticSearch 笔记
kafka storm 实战 (干货)
scala 学习持续更新
RPC
深度学习
GO 语言 持续更新
Android 学习
nginx 相关文章
vue学习
