单链路性能测试实践
在经历过一些尝试之后,觉得在当下的项目中运用链路压测的能力,不等着其他人了。
关于链路
链路这个词其实不如路径通俗易懂,跟产品沟通这个比较有效率。具体的操作路径,产品会给一份出来,但是这都是基于UI和产品思维的文档,跟接口测试区别还是很大的,只能提供参考依据。
需要端上测试协作,有些业务细节还得端上测试同学帮忙补充一下。还需要运维同事帮忙理一下各个接口的请求量比例,这次的比例我是依据灵光一现写出来,然后大家一起调整的。
本次由于比较初级,所以这块文档就不写出来了,放一个图来表达一下这个链路做了些什么,PS:我现在很喜欢用图而不是文字,沟通效率太高了。推荐工具draw.io,感兴趣的可以参考文末的热文中两张架构图中的介绍。
这次把登录剔除了,因为太慢了,对测试结果影响比较大。
场景思路
场景
场景就是老师登录,首先会请求一个知识点列表,然后通过知识点属性筛选推荐课程列表,在对课程列表中的数据进行收藏和取消收藏,在获取自己当前知识点下的课程列表(包含原创和收藏)。
思路
本次依然采取固定线程的压测模型,本人预估线程 200 左右,测试用户 600 备用,列表页保证 2 页数据。
每个线程绑定一个用户,然后用户开始循环链路执行步骤,执行一次当做一次Q。单次Q包含 9 次HTTP接口请求(放弃了Socket接口,以后有需求再添加Socket接口到链路中),其中 3 次修改操作,6 次查询操作。
具体的逻辑通过内部静态类实现,然后多一个K类,用来存储每次获取的知识点属性,方便调用。由于接口请求方法都是用基础数据类型和String作为参数,所以调用时候会显得有点啰嗦。但无伤大雅,脚本写出来,本来就是用完就扔到仓库里面,改天再用再优化。
Demo 实现
其中AbstractBean类是一个抽象类,用于一些bean的方法封装,就是为了省事儿。
控制台输出
果然就狗了,QPS 慢得一塌糊涂,错误率还挺高,还敢加线程。
FunTester,腾讯云社区钦定年度作者,非著名测试开发 er,欢迎关注。
版权声明: 本文为 InfoQ 作者【FunTester】的原创文章。
原文链接:【http://xie.infoq.cn/article/356b315c2d408ecc43464c2e5】。文章转载请联系作者。











评论