如何设计接口压力测试方案:
1.如何确定并发数
可以通过尝试的方式。第一次压测时,可以设置自己预期接口需要达到的并发数,进行压力测试。然后通过二分法进行调整。
举例:如果期望的并发数是 100 ,第一次压测并发数设置为 100 ,如果系统没有压力,第二次并发就尝试设置为 200。如果系统有压力,下次就设置为 150。通过逐渐尝试的方式,找出当前接口的并发阈值。
2.如何确定总请求次数:有时候单纯的通过并发数并不能完全发现系统的压力状况,因为并发数只能测出系统的处理能力。但是有时随着长时间的调用,系统可能会出现其他问题。比如:随着数据量的增多,存储磁盘满了、内存缓存用光,缓存服务使用磁盘缓存而拖慢系统等情况。为了避免这种情况,可以尝试用现有线上业务每天产生的数量乘以一定的天数(天数的大小视业务的具体情况而定,推荐 180 天以上),作为接口压力测试的总请求次数。
3.接口压力测试数据的选取:通常随机选择数据。但是要注意重复进行压力测试对性能的影响。比如:
第一次压测的 Id 是从 2500W 到 2600W 之间选择的,下次用同样的 Id 范围做压
测的时候,如果接口实现中有缓存,则会很大程度影响压力测试的结果,对压力测试的
解读时候,要考虑到这个因素。
另外,使用不存在的 Id 去进行压测,结果并没有太大意义。
压力测试报告应该包含哪些结果:
1.接口压力测试结果
2.服务器压力
每次接口压力测试时,接口所在服务的服务器 cpu/jvm 使用率历史记录,jvm 堆大
小,响应时长图 (借助 pinpoint 查看),cpu load 值(top 命令),gc 信息等。
如何让解读压力测试结果:
1.对于接口压力测试结果:
关注响应时间是否符合要求,响应时间(前 99%) 是不是在可允许的范围内。最
大值是多少,是否可以容忍。 通常来说,错误百分比应该为 0。
2.对于服务器压力:
看 cpu 使用率是否在可接受范围内,jvm 堆大小是否变化频繁,是否有 fullGC。
Young GC 耗时,CPU load 值是否在可接受范围内。 响应时长图是否平滑(如果有毛
刺现象,需要找出原因)。
测试用例设计思路:
从输入参数进行考虑设计:1】 优先级-针对所有接口
1、暴露给其他系统、第三方调用的接口
2、系统内部调用的核心功能接口
3、系统内部调用的非核心功能接口
2】优先级-针对单个接口
1、正向测试用例优先,逆向测试用例次之(通常情况下是这样)
2、是否需要满足前提条件>是否携带默认值参数>参数是否必填>参数之间是否存在关联>参数数据类型限制校验>参数数据类型自身的数据范围值限制校验
3】设计分析
从接口测试后端业务逻辑来讲,设计接口测试用例需要考虑以下几方面:
1、是否满足前提条件
有的接口需要首先满足一定条件,才可成功获取数据。最常见的就是需要用户登录信息的接口(用户 token)逆向用例:设计不满足前置条件的用例
2、是否携带默认值参数
正向测试用例:
存在默认值的参数都不填写、不传参,必填参数都填写正确并且存在正确的常规值,这方面考虑设计测试用例
3、业务逻辑、功能需求
这个环节需要根据具体的业务需求,结果接口定义文档,可设计出多条正向用例和逆向用例
4、参数是否必填
针对每个必填参数,设计一条或多条参数值为空的逆向测试用例
5、参数之间是否存在关联
可根据参数之间的相互关联关系设计一条或多条用例
6、参数数据类型限制
针对每个参数类型设计与定义的类型不符的逆向测试用例
7、参数自身的数据范围值限制校验
针对所有参数,设计每个参数在数据范围内为最大或者最小的正向测试
用例;
针对所有参数,设计一条或者多条参数值超过或者小于数据范围的逆向测试用例
总结:如果以上几个方面考虑全面的话,基本可覆盖以下三点:
a、主流程测试用例:正常的主流程业务需求校验
b、分支流程测试用例:正常的分支流程需求校验
c、异常流程测试用例:异常业务场景的容错校验
从输出参数进行考虑设计:
1、输出结构是否与接口文档定义的一致
2、输出的各个字段类型是否与接口文档定义的一致
3、输出的各个字段的值是否符合逻辑且值正确
标签:是否,接口,测试用例,参数,测试,压力 From: https://www.cnblogs.com/lydia2020/p/16333641.html