初学Jmeter,主要是学习它的性能测试内容,因为Jmeter可以很好地模拟请求的人数和次数(模拟实际情况的高并发),这篇文章主要是介绍配置环境、下载安装以及对一个功能非常简单(没有登录编辑等 *** 作)的小说网站进行性能测试,以后有机会再和大家分享功能更为复杂的网站或app的性能测试内容。
Jmeter介绍及配置 1.Jmeter介绍
JMeter是一款纯java编写负载功能测试和性能测试开源工具软件,它是Apache基金(开源为主)旗下的软件。JMeter最大优势是开源及轻量级,而且适合自动化和持续集成,相比LoadRunner,JMeter小巧轻便且免费,因此逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工具之一。
JMeter工作的原理:
JMeter相当于是起到了代理的作用,原本客户端通过浏览器直接可以向网络发送请求,然后到达服务器,我们使用Jmeter时,在Jmeter里边录制好脚本并执行,jmeter再通过网络转发给服务器,最终到达服务器,并返回我们需要的结果,Jmeter可以说起到了浏览器的传输作用,但是它的功能更为强大。
2.JDK1.8因为JMeter正是纯java编写的,因此首先需要配置JDK(java开发工具包),因为JMeter对于JDK有要求,建议下载1.7及以上版本的。
JDK旧版本github链接:Releases · frekele/oracle-java · GitHub
下载安装 *** 作连接:Java新手怎样安装JDK,手把手教你如何安装JDK
3.fiddlerFiddler是位于客户端和服务器端之间的HTTP代理,Fiddler能够记录客户端和服务器之间的所有 HTTP请求,辅助Jmeter抓包请求,从而更有效率地构建脚本,工作原理👇
下载链接:Download Fiddler Web Debugging Tool for Free by Telerik
随便选个用途,填写邮箱,地区选择China,勾选“I accept the Fiddler End User License Agreement”,点击“DownLoad for windows”即可下载,双击运行FiddlerSetup.exe安装程序,然后傻瓜式安装就行了。
如果只是需要监听本机浏览器HTTP数据包的话不需要做任何额外配置,不过我们往往会接触HTTPS协议请求,HTTPS数据报文传输的时候涉及到证书及数据加密的问题,所以Fiddler需要抓取HTTPS报文 的话还需要做其他配置。
打开Fiddler配置:Tools->Options->HTTPS:
勾选Capture HTTPS CONNECTS和Decrypt HTTPS traffic选项,这样fiddler就配置完成了。
4.JmeterJmeter的下载安装比较简单,直接去官网即可:Apache JMeter - Download Apache JMeter
目录介绍:printable_docs:jmeter官方文档及例子;licenses: 许可证;bin:启动命令、配置文件;docs:官方文档;lib:java抓包库;lib/ext:jmeter抓包库;extras:小工具、其他文档
Jmeter不同于普通的软件,bin/jmeter.bat 才是运行接口👇
Jmeter+fiddler实践作为性能测试入门的项目来说,小说网站可能是不错的选择,我主要测试三个功能:网站主页登录、子网页点击登录及小说详情主页点击登录。
1.网站主页登录 ①打开fiddler,左下角开启抓包
②浏览器输入或刷新小说网站的网址
③分析查找fiddler抓到的接口其实返回的接口数量非常多,但我们可以通过两个个小技巧帮助我们更快地定位接口,一是注意“#”下的双向或单项箭头的接口,一般接口都在这,二是查看接口的响应内容是不是和实际相符,这个接口较为简单,是get请求,一般在Jmeter只需填上url就行。
④Jmeter *** 作一、打开Jmeter,在选项中设置中文后,在Test Plan中添加个线程组,线程组的作用就是模拟用户人数(线程数)及次数(循环次数),是一个性能测试的起点。
二、在线程组中添加HTTP请求,由于是简单的get请求,选择请求类型并填入协议、IP、路径即可
三、在线程组中添加查看结果树,执行绿色启动按键,便可在结果数中查看运行情况
四、绿色✔代表脚本运行(请求)成功,可在响应数据中查看返回的信息,确认这是网站主页的请求
2.子网页点击登录
子网页点击登录与网站主页登录相似,因此描述较省略
①网站主页内点击登录子网页 ②分析查找fiddler抓到的接口由抓包信息可知,点击登录子网页也是get请求
③ 在线程组中添加HTTP请求,填入相关信息3.小说主页点击登录 ①子网页内点击小说详情
②分析查找fiddler抓到的接口(get请求)
由于前两步抓包的都是get请求,但现实情况中post请求的机率也很大,因此这儿我们抓一个post请求,现实情况下,post发送请求需要携带请求体,你可以把它看成杯子和杯盖的关系。
③Jmeter *** 作
一、在线程组中添加HTTP请求,最关键的是改为post请求和填入请求体 ,可复制上图👆的请求体至JSON在线解析及格式化验证 - JSON.cn中,再将格式化好的内容填入
二、线程组中添加聚合报告,用以查看三个用例的性能测试详情,其实走到这儿完整的脚本就已经完成了
三、修改线程组中的属性,线程数为50(用户数50),循环次数2(每位用户 *** 作两次)
四、线程组处右键选择启动,等待测试结束即可查看聚合报告👇
简单地分析一下,平均值和中位数相差较大,同时90%百分位至99%百分位逐步增大,说明了随着并发数的增加,响应时间逐步减慢,后期甚至可能出现了卡顿。不过好在异常为0,说明准确率还是挺高的。因为无具体的测试环境,吞吐量(反应服务器承受的压力,m/min)等数据暂无参考意义。
总结
大家如果有疑问都可以评论提出,有不足之处请大家批评指正,希望能多结识这方面的朋友,共同学习、共同进步。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)