阿里云性能测试(Performance Testing)是全球领先的SaaS性能测试平台,具有强大的分布式压测能力,可模拟海量用户真实的业务场景,让应用性能问题无所遁形。性能测试包含两个版本:Lite版和企业版
Lite版适合于业务场景简单的系统,免费使用。
输入测试名称,拖动get请求
输入事务名,GET URL,线程数(并发数),步调时间(每次之间间隔时间),执行次数(总共请求次数)点击保存;当然也可以拖入post请求以及思考时间(即在多个请求之间,比如get和post之间,间隔多少时间)
由于以上配置线程数=2,步调时间=2,执行次数=5,所以日志如下
20:08:45,600 INFO [com.gxx.record_app.web.user.UserController] (http--121.43.104.34-9090-13) 用户登录:手机号码=[13764603603],密码=[******] 20:08:45,603 INFO [com.gxx.record_app.web.user.UserController] (http--121.43.104.34-9090-9) 用户登录:手机号码=[13764603603],密码=[******] 20:08:47,549 INFO [com.gxx.record_app.web.user.UserController] (http--121.43.104.34-9090-9) 用户登录:手机号码=[13764603603],密码=[******] 20:08:47,551 INFO [com.gxx.record_app.web.user.UserController] (http--121.43.104.34-9090-13) 用户登录:手机号码=[13764603603],密码=[******] 20:08:49,547 INFO [com.gxx.record_app.web.user.UserController] (http--121.43.104.34-9090-13) 用户登录:手机号码=[13764603603],密码=[******] 20:08:49,547 INFO [com.gxx.record_app.web.user.UserController] (http--121.43.104.34-9090-9) 用户登录:手机号码=[13764603603],密码=[******] 20:08:51,547 INFO [com.gxx.record_app.web.user.UserController] (http--121.43.104.34-9090-9) 用户登录:手机号码=[13764603603],密码=[******] 20:08:51,548 INFO [com.gxx.record_app.web.user.UserController] (http--121.43.104.34-9090-13) 用户登录:手机号码=[13764603603],密码=[******] 20:08:53,551 INFO [com.gxx.record_app.web.user.UserController] (http--121.43.104.34-9090-13) 用户登录:手机号码=[13764603603],密码=[******] 20:08:53,552 INFO [com.gxx.record_app.web.user.UserController] (http--121.43.104.34-9090-9) 用户登录:手机号码=[13764603603],密码=[******]
1G内存的服务器,装了很多软件,用到900M+,剩下100M-的内存,真实压测情况如下:
100并发,平均响应1s(挺快)
250并发,平均响应1.5s(刚好)
1000并发,平均响应4.5s(太慢了)
所以,如果大量客户涌进来,并发量上去可能系统会瘫掉或者响应极其慢,必须使用负载均衡多布几个节点。
以最近公司做的一个项目来说,要接入支付窗抢红包的项目,阿里要求50000/s的并发量,按我这台破机器来说250/1.5s(刚好)可以接受的响应速度来说,应该配置50000/250=200台机器!当然公司买的比较好的机器,内存比较高就不需要布署这么多个节点,具体还是要根据实际情况压测下来为准。如果感觉还是太慢,则需要性能调优。
企业版适合于承受大规模压力的系统,同时每月提供免费额度,可以满足大部分企业客户。
点击新增脚本
输入脚本名,上传文件,选择csv(里面数据可以从数据库中导出excel再转成csv,也可以自己组装csv数据),点击关闭循环否则会一直调用,输入事务名称,请求链接,选择请求类型,点击保存
保存之前,需要将请求链接中写死的手机和密码替换成csv中的某列值,但是需要用鼠标选中才能出现下面【点击进行参数化】的按钮,点击加载变量可以从参数文件csv中加载某列的值
选择对应的列,替换写死的值
查看到替换过的新的链接,点击保存
参数文件:user.zip
前面输入并发数为10,但是这里就只有调用一次CSV里的用户请求
20:52:53,334 INFO [com.gxx.record_app.web.user.UserController] (http--121.43.104.34-9090-13) 用户登录:手机号码=[13764603603],密码=[******] 20:52:53,335 INFO [com.gxx.record_app.web.user.UserController] (http--121.43.104.34-9090-9) 用户登录:手机号码=[18217611779],密码=[******]
高级用法暂未涉及,比如ECS指标,RDS指标,监控集指标,手工编写脚本(写代码)