第一部分:实验预习报告(包括实验目的、意义,实验基本原理与方法,主要仪器设备及耗材,实验方案与技术路线等)
实验目的、意义:
1.了解负载测试、压力测试等性能测试的概念。
2. 能使用常用工具JMeter进行性能测试并根据测试结果进行 性能分析。
3. 进一步掌握软件压力测试的常用方法。
4. 根据实验指导书给出的关于JMeter的使用介绍,了解 JMeter测试软件的功能结构。
5. 并选择对一个已有的网站或自己事先设计好的动态或静态 网站(页面),进行测试和分析。
实验基本原理与方法:
负载测试:
通过逐渐增加系统负载,测试系统性能的变化,最终确 定在满足性能指标的情况下,系统能承受的最大负载量。 目标:在特定的运行条件下验证系统的能力状况。
压力测试:
通过逐步增加系统负载,测试系统性能的变化,最终确 定在什么负载条件下系统性能处于失效状态。 目标:发现在什么条件下应用程序的性能会变得不可接受。
主要仪器设备及耗材:
- 性能测试工具:JMeter是Apache组织开发的基于Java的压力测试工具,不仅 用于Web服务器的性能测试,也涵盖数据库、FTP、LDAP服 务器等各种性能测试,可与Junit、Ant等工具集成。它可以 针对服务器、网络或其他被测试对象等大量并发负载进行强 度测试,分析在不同压力负载下系统的整体性能。
- PC机
第二部分:实验过程记录(可加页)(包括实验原始数据记录,实验现象记录,实验过程发现的问题等)
第一种方式:
1.本次测试对Bing搜索网站进行了测试,设置线程数200,循环次数为10
![196f039233cfbd2f13c4be2644567836.png](https://i-blog.csdnimg.cn/blog_migrate/ecfbba098dd3fc032781d646c1c4bd53.jpeg)
2. 把测试需要用到的2个参数放在txt文件中。新建一个data.txt文件,输入些数据,每一行有两个数据,用逗号分隔。
![7df87b0a131aa8928cfba29d4e179581.png](https://i-blog.csdnimg.cn/blog_migrate/be98df6dfe788d9fb177e92a37173495.jpeg)
3. 添加http 请求,发送get 到 http://cn.bing.com(把data.txt的文字发送出去)
![bd85db2377ed94c23abcc1ef6d524f71.png](https://i-blog.csdnimg.cn/blog_migrate/ea24ca370d41f94915f39757a2251f1c.jpeg)
4.在点击绿色的运行三角形图标之后,在Summary Report可以得到结果信息。
![79b45fe6a56cd95660b2d826b3f82198.png](https://i-blog.csdnimg.cn/blog_migrate/e33a595407f8ec8444000b1611d48748.jpeg)
第二种:
1.首先用badboy录制脚本,录制结束后,导出文件为jmeter直接可运行的文件,File->Export to JMeter点击最终生成 *.jmx文件。( 本次测试对唯品会网站进行了测试)
![d99a6344070f46618675bb3e6cacdca1.png](https://i-blog.csdnimg.cn/blog_migrate/b3279d76dbd862d0d039ee56b2f461a4.jpeg)
2.在JMeter中导入刚刚生成的*.jmx文件,同时设置监听器,添加了“Summary Report”和“View Results Tree”这两个监听器,在“Thread Group”中设置请求参数包括“线程数——模拟有多少用户请求”“Ramp-up时间——多少秒内完成(Ramp-Up Period(in seconds): 设置线程需要多长时间全部启动。)”“循环次数——循环几次完成”
![45e9c2f64eec218865b3bf8fc2027a57.png](https://i-blog.csdnimg.cn/blog_migrate/bf04ebadf077d52ca3d59cc893a7f20f.jpeg)
3.查看JMeter生成的Summary Report
![734c173313d0892e6bc2b57943e71d5a.png](https://i-blog.csdnimg.cn/blog_migrate/b2d1688a261b728c1617fbf934d7680f.jpeg)
第三部分 结果与讨论(可加页)
一、实验结果分析(包括数据处理、实验现象分析、影响因素讨论、综合分析和结论等)
实验结果截图(Summary Report/View Results Tree)
第一种:
![79b45fe6a56cd95660b2d826b3f82198.png](https://i-blog.csdnimg.cn/blog_migrate/e33a595407f8ec8444000b1611d48748.jpeg)
第二种:
![734c173313d0892e6bc2b57943e71d5a.png](https://i-blog.csdnimg.cn/blog_migrate/b2d1688a261b728c1617fbf934d7680f.jpeg)
实验现象分析:
当访问次数较少的时候,error率一直为0,但是当访问次数变多的时候,error率可能会有所增加
实验结论:
测试性能时,通过summary report可知用Thread Group控制模拟用户数的方法是可行有效的。
二、实验小结及体会
通过本次实验,我首先更加明确了“负载测试”“压力测试”两者的区别,“负载测试”是在在满足性能指标的情况下,系统能承受的最大负载量,其目标是在特定的运行条件下验证系统的能力状况。而“压力测试”是通过逐步增加系统负载,测试系统性能的变化,最终确定在什么负载条件下系统性能处于失效状态,其目标是发现在什么条件下应用程序的性能会变得不可接受。而且在进行测试的时候,一定要注意其“有效性”,比如在用户数方面,包括了“注册人数”“在线人数”“并发人数”,而对我们进行系统测试有效的是“并发人数”,因此提示我们在进行系统测试的时候,要选择合适恰当的指标作为衡量的标准,否则可能导致测试的结果不准确甚至没有意义。我也掌握了JMeter等工具的使用,同时也了解了脚本,会用了脚本录制工具badboy。