一、JMeter压力测试原理
(1)负载发生器:用于产生负载,通常以多线程或是多进程的方式模拟用户行为。
(2)用户运行器:通常是一个脚本运行引擎,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为。
(3)资源生成器:用于生成测试过程中服务器、负载机的资源数据。
(4)报表生成器:根据测试中霍地的数据生成报表,提供可视化的数据显示方式。
二、测试步骤
方法一:使用Badboy录制脚本
(1)使用Badboy录制目标系统,正常运行被测场景,保存Jmeter可运行文件(.jmx)
(2)运行JMeter,打开录制好的脚本,并添加监听器
鼠标选中Step1,随后点击工具栏“启动”按钮,开始运行脚本,其运行结果将存在查看结果树中。
(3)调试脚本
a.查看结果树的作用,是帮助我们回放检查脚本能不能使用,提供错误参考
b.如下图,查看结果树可选择多种呈现方式,此处选择HTML可直观看出这一步的实际形态;每一步骤前的绿色对号仅表示网络通畅,不代表运行成功。
c.直到运行脚本后,在被测系统上真实new出了一个申请记录,这个脚本就算通过,此时可以删掉报错且无用的步骤。
d.选择“自动重定向”时,Cookie会被重置,所以即使上一步登陆成功,下一步Cookie重置后登陆信息会被清空导致脚本不通,所以在登陆后一步骤选择“跟随重定向”问题解决
e.注意,中文字符要用utf8字符编码,需要时添加在此
方法二:使用代理录制脚本
(1)添加线程组,右击测试计划——Threads(Users)——线程组
(2)设置线程组参数
线程数:并发用户数
Ramp-UP Perid(in seconds):1秒之内对被测系统访问几次
循环次数:线程一共跑几轮
(3)添加HTTP Cookie 管理器,网站有登录限制的需要用到记录用户信息(页面没有Cookie信息跳过次步骤)
使用火狐浏览器自带的firebug获取页面的Cookie信息,添加到HTTP Cookie管理器中
(4)添加HTTP请求,为录制http连接使用
(5)添加HTTP代理服务器
在Requests FIltering下添加排除模式,配置正则表达式。否则会录制出很多凌乱的请求。
.*.XXX.*|.*.XXX.*,根据需要进行增删
(6)在浏览器中设置代理
点击代理服务器启动
在浏览器中访问需要测试的项目,代理录制会得到相应的路径
(8)选择需要的报告样式
聚合报告的各指标
方法三、如何录制APP接口?
Web页面上的接口可以用jmeter录制了,那么App呢?,这里简单介绍一下
1:首先手动设置你的手机代理,配置代理ip,需要与本机的ip一致!端口默认80
2:配置jmeter代理服务器ip,注意ip与端口必须要与手机代理一致。
3:观察代理服务器,看到此处录制了一个app查看百度网页的接口