如何写出高性能代码之性能测试

背景:

场景:大部分场景下,性能测试是测试人员负责的(正所谓专业的人做专业的事)。为什么开发人员同样需要会压力测试?

  • 很多小公司测试只是进行的功能性测试,然而很多bug的出现是在高并发场景下。
  • 懂得性能测试,才能码出高性能的代码。
  • 具备开发经验的同学,可以很快的掌握基本的性能测试(所谓性价比高)。

压测工具:

工欲善其事必先利其器:

曾几何时,一些公司上线前,为了测试服务器可以抗住多少用户访问。召集公司全员进行模拟压测,为了增大用户访问,需要每个员工开多个浏览器窗口,登录多个用户。然后在领导一声令下,一起操作(简直不要太low,哈哈哈哈)。后台开发观测服务器性能指标,嗯,感觉还不错!然而,上线后,在高并发下,系统仍然问题不断。嗯,总结原因,上线前,每个员工打开的窗口太少,需要每个人再打开更多窗口,模拟更多的用户。

大家不要认为这是一个笑话,这是很多小公司真实存在的场景(更有甚者,只进行了功能测试,直接推向市场,让上万用户使用,结果可想而知)!因为一些公司创业阶段,为了节省成本,测试都是公司其他部门员工兼职测试。开发人员也只是在单场景下,观察接口的响应时间。

压测工具比较多,大家可以根据自己的情况选择。

我在开发中,经常使用的是jmeter。


如何压测:

技能分为学习技能和使用技能。工具的使用,对程序员来说,应该是简单的。只要具备搜索的能力,可以很快的找到各类资料,上手一个工具的使用。在此,不在赘述如何安装使用jmeter,大家可以在网上搜索,一些专业测试博主写的更加的专业和全面。

再次,想和大家分享一些,开发人员一般需要关注的功能和一些指标,并帮助我们更好的提高代码性能和做好服务器配置。

df67af00e2a649619fe0a62680eebddc.png

 配置上图的这些功能,就可以满足大家进行大部分的压力测试,更高级的可以自己进阶学习(可以根据自己的兴趣)

  • CSV 配置从excel读取信息(如登陆用户等)
  • HTTP默认设置,配置全局的接口(域名或IP)
  • HTTP Header Manager 配置全局http header(用户登录的token等)
  • Simple Data Writer-jtl 用于生成html 报告,结果更直观。
  • View Results Tree 结果树
  • Aggregate Report(聚合报告)重点
  • Loop Controller(外循环)循环控制器 

结果分析:

87db398c21a546e8a3a1a5e5b809af62.png

根据生成的报告,重点关注吞吐量和响应时间(P90,P95,P99)

P90:指后续10%的用户的响应时间比这个时间要长

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值