首页 > 其他分享 >接口测试

接口测试

时间:2023-10-25 16:22:57浏览次数:35  
标签:是否 接口 测试用例 参数 测试 压力

如何设计接口压力测试方案:


 

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

相关文章

  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-22-处理select下拉框-上篇
    1.简介在实际自动化测试过程中,我们也避免不了会遇到下拉框选择的测试,因此宏哥在这里直接分享和介绍一下,希望小伙伴或者童鞋们在以后工作中遇到可以有所帮助。今天,我们讲下playwright的下拉框怎么处理,在使用selenium定位的过程中,我们可以选择使用selenium的Select类定位操作选择框......
  • 单元测试
      /**@Author:yeminglong*@Date:2023-09-0910:23:30*@LastEditTime:2023-09-0914:51:52*@LastEditors:yeminglong*@Description:*//***tree2Array*@param{tree}tree*@returns*/exportfunctiontreeToArray(tree){letres=......
  • 确认(有效性)测试是什么?为什么需要呢?
    ​ 确认测试1、确认测试又称有效性测试。是对通过组合测试的软件(这些软件已经存于系统目标设备的介质上)进行测试,验证软件的功能、性能及其它特性是否与用户的要求一致。 2、确认测试的目的是要表明软件是可以工作的。测试人员通过执行黑盒测试方法,对处在模拟用户环境下的......
  • 测试案例设计方法
    软件测试中,测试案例设计方法包括:等价类划分、边界值、场景法、因果图、错误推断法、异常分析法、决策表、正交实验法。 1、等价类划分:输入条件要求1-100,那么有效等价类就是1-100,无效等价类就是<1,>100。2、边界值:接上例,要求1-100,那么边界值就是1和100的左右,即0,1,2;99,100,101。......
  • 可重入锁ReentrantLock在性能测试常见用法
    在进行Java多线程编程的过程中,始终绕不开一个问题:线程安全。一般来说,我们可以通过对一些资源加锁来实现,大多都是通过synchronized关键字实现。在做性能测试时,如果TPS或者QPS要求没有特别高,synchronized一招鲜基本也能满足大部分的需求了。对于一招鲜无法很好解决的问题,就需要......
  • 模拟 机器人的充电桩底板电压过大过小的 电压输出 测试操作方法
    1个dcpowersubbly直流稳压电源、铜丝电线若干根接线如下:1、把直流稳压电源的正极、负极分别连接电路板的正极、负极2、按下直流稳压电源开关ON/OFF3、按下旋转VOLTAGE,电压V数值会闪,向左调小,向右调大,停留1~2秒后则会按当前电源输出电压。超出电压范围值,前9秒红灯闪烁......
  • Go的文件操作:读写文件与IO接口
    大家好!我是[lincyang]。今天我们要一起探讨Go语言中的文件操作,特别是读写文件和IO接口。什么是文件操作?文件操作是编程中不可或缺的一部分,涉及到数据的读取、写入、删除等。在Go语言中,这些操作主要通过os和io两个标准库来完成。为什么要进行文件操作?数据持久化:程序运行结束......
  • Runner GoUI自动化测试发布
    构建自动化测试体系是当下每个项目团队愿意去做的,自动化测试减少重复操作节省人力成本。RunnerGoUI自动化平台RunnerGo提供从API管理到API性能再到可视化的API自动化、UI自动化测试功能模块,覆盖了整个产品测试周期。RunnerGoUI自动化基于Selenium浏览器自动化方案构建,内嵌高度可......
  • Apipost自动化测试使用教程
    Apipost提供可视化的API自动化测试功能,使用Apipost研发人员可以设计、调试接口,测试人员可以基于同一数据源进行测试,Apipost接口自动化功能在上次更新中进行了逻辑调整,带来更好的交互操作、更多的控制器选择,同时新增同步接口模式选择、测试数据选择功能。添加接口使用Apipost,研发......
  • 接口自动化--postman(6)前置脚本
    请求前置脚本:发送请求之前要执行的脚本。 一。什么是前置操作?发送请求之前要执行JavaScript的脚本就叫前置操作。通过在请求、集合或文件夹的Pre-requestScript中写代码,来做的操作都叫前置操作。请求前置脚本常见作用:用来获取动态数据,签名接口数据,加密接口数据动态数据:时......