微信号:grzlwx

介绍:光荣之路官方资讯

记一次性能测试实践

2015-10-01 19:18 光荣之路

1.测试对象

这次测了一些http接口和几个网页。

2.测试策略

2.1 基准测试:单个调用各接口循环100次计算平均响应时间

2.2 性能测试:单个接口调用以50并发用户数为单位,逐步加压直到预估的实际负载300并发用户,观察测试指标变化

2.3 压力测试:单个接口调用以50并发用户数为单位,逐步加压直到错误率过高或服务器资源使用率过高,观察测试指标变化

2.4 负载测试:预估实际负载为300并发用户数,在此基础上持续测试5分钟左右,观察测试指标是否达标

2.5 稳定性测试:预估实际负载为300并发用户数,在此基础上持续测试60分钟左右,观察测试指标是否达标,重点观察错误率

2.6 疲劳性测试:预估实际负载为300并发用户数,在此基础上持续测试240分钟左右,观察测试指标是否达标,重点观察错误率

2.7 组合测试:对2.2-2.5的测试采用不同接口同时调用(即系统不同模块同时测试)

2.8 其他:以不同ip地址加压,测试服务器负载均衡效果。

以上,本次只做了2.2、2.3、2.4、2.8

3.测试指标

测响应时间、错误率;同时专人监控服务器硬件资源使用状况、监控tomcat应用服务器等。

计算和监控吞吐量(测试工具自动计算测试执行过程中的吞吐量(每秒钟处理请求数),同时服务器监控软件业监控到了测试执行时服务器的吞吐量)

本次实际测试得到吞吐量距离预估有较大差距;错误率超出预期;且测试数据准备有一定问题。

4.测试工具

本次选用Jmeter,因为便宜且灵活。

需设置语言为英文,默认中文翻译不完整。

5.测试脚本编写、调试

5.1 提前对接口、网页进行录制。每个待测接口、网页需要加断言。 断言多采用JQuery断言和Regular Expression断言

5.2 重点在测试数据的准备。

5.3 采用了本地web应用提供数据,jmeter获取这些数据,再发送给服务器的方法(这次发现这个本地应用生成的数据在较高并发时有重复,导致了不必要的错误率)

5.4 测试结果监听器: assertion results, summary report, aggregate report, result tree, result table

5.5 测试接口调用时,可用网页、数据库等其他方法确认接口调用成功。观察接口调用是否生效,是否和网页同样效果。

6.测试执行

6.1 一台电脑加压300-600并发用户。如果需要更多则需要增加电脑。

6.2 以不同ip地址加压,测试服务器负载均衡效果。

6.3 机房测试,排除internet网络延迟问题

6.4 数据备份和还原,排除性能测试对数据的改变

6.5 生产环境测试(系统未上线),排除测试环境的影响

7.测试报告

7.1 截取了jmeter监听器的结果,可以截取服务器监控的截图

8.调优

本次测试结果不理想,服务器因硬件强大,几乎无负载,但应用本身有java出错。并发现接口调用结果未正确影响网页的bug。

后续需要等开发修复、优化之后再次测试



更多测试咨询请关注光荣之路微信公众账号:gloryroadtrain

 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 谷歌副总裁谈未来云计算的方向:容器和微服务 阿里聚安全一周一讯 | Godless类恶意APP可Root 90%安卓设备、SWIFT惊天银行大劫案全程分析 【有人@我】学员面试成功的十大法宝 Python基础教程10:continue 语句 开源关系数据库浏览器DBeauty