web 性能压测工具
需求:用你熟悉的编程语言写一个 web 性能压测工具,输入参数:URL,请求总次数,并发数。输出参数:平均响应时间,95% 响应时间。用这个测试工具以 10 并发、100 次请求压测 www.baidu.com。
分析:“www.baidu.com”可以解读为最简单的get请求,且不需要处理返回值,只要获取响应状态码即可,更简单点,只要判断状态码是否等于200,如果等于200请求成功,如果不等于200请求失败;
自定义请求次数,简单循环操作即可。
要支持并发,也就是需要多线程执行请求。
通过分析,可以确定:
1、能处理http请求,且需要获取响应状态
2、可以多次循环处理
3、可以并发处理
实现:先来整体目录结构
类RequestProcessor,处理url请求,并返回响应结果
类ResponseInfo,影响结果类,存放url、响应时间、响应结果等信息
类StressTesting,压测入口类,输入URL,请求总次数,并发数,并发执行Url请求,并统计结果
测试用例,10并发,100次请求
测试结果
V0版太简陋,重构计划:
目前只支持Get请求,请求处理器优化,支持Get、Post,支持参数等。
响应信息直接放到List保存,可以抽象一个Storage接口,支持各种方式存储。
测试结果,平均值、最大最小值、95%、99%等,抽象出结果展示借口,方便扩展各种结果。
结果展示方式优化等。
版权声明: 本文为 InfoQ 作者【Z冰红茶】的原创文章。
原文链接:【http://xie.infoq.cn/article/7617e3034ff5600cf41508a86】。未经作者许可,禁止转载。
评论