Web App性能测试
Date: 2016-03-03Author: kagula
Environment
[1]Win10[2]JDK7.x
[3]JMeter 2.13
[4]Core i7-4790k
Prologue
为了测试自己用C++写的web服务的性能,选择了JMeter,因为它上手最简单,更新及时,历史悠久。
待测试Web服务程序被我放在了CentOS7中,测试地址
[1]VMWare上的192.168.218.131
[2]阿里云上的机器(5M带宽),我打算从Win10上访问它们。本地网络是100M带宽。Content
测试目的
测试“http://192.168.218.131:8000/AvailableServers?action=list”
“http://192.168.218.131:8000/AvailableServers?action=query”
两个url的响应能力。
准备使用:
从Ref[1]下载zip包后解压缩运行bin目录下的jmeter.bat - run JMeter (in GUI mode by default)
[Option]->[Choose Language]->[English]
怀疑是机器自动翻译的中文,很怪反而看不懂一些参数的含义。
新建测试项目:
新建template,选择Building a Web Test Plan。
设置默认参数
Number of Threads(users)
可以看成是客户的数量。Ramp-Up Period(inseconds)
用户在多少时间间隔内启动所有的进程,设置为0是立即启动全部线程。
Loop Count:
指的是重复次数:
样本数量 = 线程数量(Number Of Threads) * 重复次数(Loop Count) * 请求页面数量。
下面设置所有请求页面共享的参数
模板缺省添加了两个请求页面,分别被我设置为“List Page”和“Query Page”,
现在设置“List Page”
设置Query Page请求页面
模板缺省还加了个Login页面,缺省处于“Disable”状态,右键单击节点弹出菜单可以修改节点的属性。
参考上面设定的参数:
我们共有1000(线程数量)*1(每个线程重复发起请求次数)*2(请求页面的数量)=2000个样本。
测试
[Configure]按钮弹出设置窗口,勾选[Save Field Names],否则你搞不清楚每个字段的含义。
通过修改[Configure窗口的选项],可以把测试情况记录为xml文件。
测试完成后,再启动测试,样本数量会累计上去,所以我们经常会用到tool box中的clear清除样本的测试结果。
测试结果
No of Samples:累计共测试了几个样本。
Throughtput: 每分钟完成请求(Request)数。
Latest Sample: 测试最后一个样本(Request)所花的时间,单位为ms。
Average: 平均每个请求处理完成时间。
Deviation: 偏离平均处理时间的大小,越高说明请求返回时间越不稳定,越低越好。
Chart底部显示最近一次deviation值.
打开"MyFirstJMeter.csv"文件,可以查看每个请求的执行情况。
Apendix
[1]阿里云5Mbps+四核Haswell,8G, boost 1.57 ASIO Example http-server4 有效吞吐率每秒1000个请求。Reference
[1]Apache JMeterhttp://jmeter.apache.org/index.html
本文是一篇关于使用JMeter进行Web App性能测试的学习笔记,详细介绍了从环境配置到测试目的,再到新建测试项目和执行测试的全过程。通过在CentOS7上运行待测试Web服务,设置线程数量和请求页面,进行性能测试,并记录和分析测试结果。

279

被折叠的 条评论
为什么被折叠?



