压力测试思想:改变线程数和循环次数,线程数和循环次数的乘积固定,观察设置的每个线程数的平均响应时间和其他,选取最线程数的最优值
jmeter的主要测试组件:
1、测试计划是使用jmeter进行测试的起点,它是其他jmeter测试元件的容器
2、线程组代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的请求内容在sampler中定义,它被线程组包含
3、监听器负责收集测试结果,同时也被告知了结果显示的方式
4、逻辑控制器可以自定义jmeter发送请求的行为逻辑,它与sampler结合使用可以模拟复杂的请求序列
5、断言可以用来判断请求响应的结果是否如用户所期望的,请求成功的返回数据中的某个字段。用这个字段与返回的数据做对比,若返回的数据中没有这个字段,则认为是失败的。
6. 配置元件维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。
7. 前置处理器和后置处理器负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。
8. 定时器负责定义请求之间的延迟间隔。
9、http默认请求值:负责记录请求的默认值,如服务器、协议、端口等。设置了这个之后在http请求中就不用再输ip了,可以建立多个http请求,只要修改路径就可以了,这样可以访问同一个网站的不同页面。即把一些共用的设置写一遍就好了
10、http cookie管理器负责整个测试过程中使用的cookie,它不需要设置任何属性
11、循环控制器设置发送第二个请求的循环次数
12、表格监听器负责收集和显示第二个请求的测试结果
聚合报告各个字段的含义:
label:各个模块测试的名称
samples:各个测试的样本总数,样本数=用户数*迭代次数
average:每个请求的平均响应时间
error%:错误响应的概率
throughput:吞吐量,TPS,默认情况下表示每秒完成的请求数
KB/Sec:每秒从服务器接受到的数据量
有时候数据是错误的,但是结果却跑通了:跑通不代表正确,好比提出问题有回答了,但是回答的是否正确,是否答非所问,就是正确性的事情了,添加监听器,查看结果树,跑一次后查看结果树对应请求的返回信息才能知道有没有正常通过;还可以添加断言,没有添加断言的时候,只要返回的http status为200就认为测试通过了;断言会对响应消息做判断,比如是否包括“成功”这类的字符
会话保持:我们进入登录后的页面后,还想访问“我的账户”“我的信息”等模块,这些网页需要登录成功后才能访问到,这里我们就需要会话的保持。可添加httpcookie管理器,要添加的内容可以在察看结果树的“请求”选项卡里面看到,里面可以看到登录需要的cookie(即添加cookie管理器的作用:测试是登录操作,如果没有cookie管理器,登录后的http请求,在脚本运行的时候,就不会带cookie。后果就是登录成功后的请求提示你未登录,添加就不需要配置)
此时,我们在http请求里面输入登录后的网址,例如“我的信息”等,就可以请求成功了
文件读取网址:
我们在“http请求”的路径里面填入的是我们要访问的网页,每次只能填写一个,假如想访问好几个网页,例如首页,通知页,公司介绍页等等,除了新建http请求外,我们还可以将这些网页的地址储存在TXT文件中
把路径复制粘贴
网址填入后,我们在jmeter里面的“选项”—“函数助手对话框”——“stringFromFile”,将txT的完整路径粘贴到途中位置,点击生成,可以在框里生成txt文件的读取路径
我们将$开头的那串路径贴到“http请求”的路径里面,就可以访问到TXT里面的所有网页了
服务器状态实时监听:
性能测试时,我们的关注点有两部分
1、服务处本身:并发响应时间QPS
2、服务器的资源使用情况:cpu memory I/O disk等
一、下载插件
1、访问网址https://jmeter-plugins.org/downloads/all/ 下载三个插件,即ZIP包,下载好后解压,找到JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar这两个jar包(这两个包是客户端的包),放入jmeter所在目录的E:\Jmeter\apache-jmeter-3.3\lib\ext目录下,重启jmeter即可。ServerAgent是服务端的, 将ServerAgent-2.2.1.jar上传到被测服务器,解压,进入目录,Windows环境,双击ServerAgent.bat启动;linux环境执ServerAgent.sh启动,默认使用4444端口,出现如下情况即服务端成功:
二、测试使用情况
1、serveragent启动的校验
a、在笔记本电脑打开telenet监听(控制面板——程序——打开或关闭Windows功能——Telnet客户端勾选打开)
b、cmd进入命令框,输入如下
telnet yourip 4444 #连接serverAgent
test #发送test进行测试
exit #退出,即断开连接
c、观察server端是否有接收到消息,出现如下情况说明serverAgentl打开成功
2、jmeter客户端的监听测试
a、打开JMeter.bat,添加监听器Permon Metrics Collector-Add Row添加一行monitor配置(修改Host/IP为测试IP)-运行-观察server日志即chart图标内容。
b、运行jmeter时,成功连接后立刻断开了,并没有获取我们想要的数据。估计需要一个时间控制的元件,使其能够获取一段时间的数据
解决方法:
添加线程组,设置循环次数为“永远”;
为线程组任意添加一个sampler(不设置参数)
添加一个PerfMon metrics collector监听器,点击运行(如果已经添加过,可直接使用无需再添加)
然后在jp@gc - PerfMon Metrics Collector界面启动
结果:成功获取chart图,点击stop,即结束监听数据