1、接口自动化测试方案102020年4月19日文档仅供参考,不当之处,请联系改正。接口自动化测试方案 4月9日文档编号: (V1.0)目录目录1测试需求及范围11.1测试目的11.2测试需求22测试方法23测试工具及框架拓扑图23.1测试工具23.2自动化测试拓扑图24流程示例35测试环境52.1硬件配置52.2软件配置56测试思路56.1通用测试场景66.2逻辑场景66.3断言检查71测试需求及范围1.1测试目的随着公司项目的不断增大,接口的服务随之增多,回归的任务量越来越大,需要对接口进行定时回归测试来保证系统的稳定性。1.在开发提交新的接口前进行冒烟测试,以保证系统是能够正常开展测试的2.功
2、能测试完成/bug回归完成后进行回归测试,保证bug修改完成后没有引入新的问题1.2测试需求1、当前提供的接口多为Rest 规范的接口,需要使用JMeter进行自动化接口测试,核对接口入参及返回报文格式、内容的正确性,最终经过Jenkins持续集成生成测试报告。2、对开发人员的需求接口文档的规范,如:输入输出模板,输出类型是否全面2测试方法根据开发人员提供的接口访问地址、入参格式、请求格式,进行接口请求数据拼接,并查看返回结果及返回报文、响应时间,检查返回Json内容是否符合接口定义规范,是否符合预期的返回结果。3测试工具及框架拓扑图3.1测试工具Jemeter+Jenkins3.2自动化测试
3、拓扑图 4流程示例测试数据从csv或者txt文件里读取,包含入参、出参、预期结果/断言用例经过jemter维护经过Jenkins添加项目执行jmx文件Jenkins执行完成后生成测试报告5测试环境2.1硬件配置关键项数量性能要求:期望到位阶段自动化测试服务器1台以上4核4G硬盘60G需求分析2.2软件配置资源名称/类型配置操作系统环境Window7系统测试工具Svn、jemter、Jenkins6测试思路 首先根据接口设计的技术架构方案,了解清楚被测接口对应的公共入参、入参、出参及返回数据的Json 结构规范,根据测试场景进行测试。1、理解接口参数,熟悉接口参数的输入要求、输入值范围、必填项等
4、;2、理解接口输出,熟悉返回json的结构构成、返回值类别、返回值范围、返回data的不同类型等。3、理解接口的逻辑、接口的业务关联,熟悉技术方案中的接口相互关联、依赖的关系,接口与接口之间的数据传递等。4、寻找测试点,根据输入(参数名、取值范围)、输出(参数名、返回值范围)、关联关系,进行测试点分析,具体分析方法可参考6.1 通用测试场景、6.2 逻辑测试场景。6.1通用测试场景对于接口测试的入参需考虑以下几个方面,设计测试用例时需要考虑交叉的情况:1、测试参数名称的正确性1.参数名缺失,比如参数名错误,导致参数不存在;必填参数缺失,选填参数缺失;参数名必须匹配大小写时,考虑英文大小写的传参
5、测试;分别考虑参数名称错误的情况,参数名包括特殊字符:如中文,空格,数字,特殊符等; 2、测试参数值的正确性1.长度限制,考虑输入参数值是否字数限制;非空判断,是否可为空(不输入,即”),是否为null,是否为空格;输入值是否在正常范围内(如int 类型参数 是-3276832767,输入区域外的数值);参数传入的类型错误,如要求传入int类型,结果传入String类型;输入参数值个数不正确;必填项参数值,传入为空;参数值传入特殊字符等;参数值模糊匹配查询; 6.2逻辑场景逻辑场景考虑是对功能测试的补充,对于接口的业务逻辑场景,需要根据需求方案、技术架构中的设计的接口业务逻辑进行用例设计,例如
6、:分页查询接口(分页查询接口涉及数据分页共5页,传入-1 表示查询全部数据),设计场景如下:1.传入查询页码为空,提示缺少查询页码参数;传入页码为-1,查询返回全部数据;传入页码为1,查询返回第一页数据;传入页码3,查询返回第三页数据;传入页码为5,查询返回第5页数据;传入页码为6,提示查询无数据;传入页码为0,提示查询页码参数值不正确;传入页码为01,03,05 ,可查询出1、3、5页数据;传入页码为all ,提示查询页码数据不正确; 6.3断言检查对接口测试返回的结果进行核对,验证返回JSON数据的结构是否正确、返回数据值是否正确、返回数据值是否有缺失等,比如用户注册接口的接口返回值:接口
7、返回结果1 2 3 4 5 6 7 8 9 10 11 12error_code:0, msg:注册成功, redirect:, data: rsid:xxxx,/session会话主键 userinfo: userid:xxxxxxxxx,/用户主键 username:12345678, . create_time: ,/创立时间,int型,时间戳, 需要验证如下:1、返回参数error_code ,msg,redirct ,data 是否正确返回 2、msg,error_code对应的value 不为空; 3、error_code的错误码在错误码列表范围内; 4、验证data返回的数据结构正确性、返回的参数值是否全面完整;