由于平台服务器是通过接口来与客户端交互数据提供各种服务,因此服务器测试工作首先需要进行的是接口测试工作。测试人员需要通过服务器接口功能测试来确保接口功能实现正确,那么其他测试人员进行客户端与服务器结合的系统测试过程中,就能够排除由于服务器接口缺陷所导致的客户端问题,便于开发人员定位问题。以下便是个人的平台服务器接口功能测试经验总结。

一、接口测试范围

根据服务器的测试需求,接口测试范围主要分为:1、新增接口的测试;2、新增业务功能接口测试;3、整个服务器的接口测试。所需测试测试接口依次增多,在测试时间足够的条件下,当然需要对所有接口进行测试用例的设计,但如果测试较短的情况下,则应该首先根据用户的典型操作对测试接口进行优先级划分,对调用频繁接口需要优先进行测试。
二、接口测试策略

在进行平台服务器接口测试之前,首先需要整理服务器接口的测试方案,分析接口测试的要点,平台服务器的接口测试内容主要有:
接口设计检查
接口用于服务器与客户端的数据交互,客户端通过网络协议传递的数据为服务器接口的输入数据,因此应该首先通过服务器接口文档及客户端数据约束文档进行交互数据的有效性检查:
n  整数型数据位数
n  浮点型数据精度
n  字符串数据范围值
要求客户端的整数型、浮点型、字符串数据以及其最大值和最小值都能作为服务器接口的有效输入。这些工作在服务器设计评审时就可以进行,以便确保不会出现客户端上传数据被服务器自动进行截断或四舍五入的操作。
接口依赖关系检查
   以上策略只谈到单个接口的测试方法,对于用户来说,一个操作可能会造成服务器调用多个接口来进行完成,因此还需要从业务处理的角度,对各种业务操作所涉及的多个接口之间依赖调用进行测试。
   接口依赖关系检查主要是通过接口的输出值为另一接口的输入值来实现的,因此在进行接口测试之前,需要分析所测试接口的输入值是通过客户端还是其他接口输出来获取的,在设计测试用例时,加入接口的依赖关系说明以便于测试。
接口输入/输出验证
服务器接口功能测试类似于单元测试,在设计测试用例时,侧重点在于接口模块输入/输出项的正确性验证,根据接服务器接口处理方式,对各种接口进行分类:

第一类:条件判断接口
      这类接口在接收到请求数据后,会根据输入参数进行条件判断,然后返回相应结果码,通常涉及条件判断的接口有:用户鉴权接口、升级状态上报、密码修改/重置等接口。因此输入/输出项验证的侧重点主要集中在:
1)判断条件的验证
要对判断条件进行验证,则需要知道接口是根据哪些输入项来进行判断的,以密码重置接口为例:
密码重置接口
『接口功能』:用户登录之后发起找回密码操作,用户输入邮箱信息后,游戏中心将向平台服务器发送请求,平台服务器将随机为用户生成新的密码,发到用户的邮箱中。
『接口方向』:游戏中心—>平台服务器
『遵循协议』:HTTPS,请求消息使用Post方式

响应消息(sendMessageRes)

此接口根据输入的userID、email参数来进行数据正确性的判断(key是接口名称,如果错误服务器将不会处理,version是版本号,其值只是用于记录,不参与判断),设计接口测试用例时,应该首先对接口的判断参数进行验证,这些输入项不能为空,然后利用等价类划分、边界值方法来根据userID、email输入项设计各种合法的数据,验证接口是否可以正常处理。
2)异常数据的响应
只考虑正常情况,而不考虑异常场景是无法保证接口功能运行正常,对于密码重置接口,用户ID不存在、不合法,邮箱输入格式错误、用户邮箱信息不存在或未激活就是测试时需要考虑的异常场景,设计这类输入值,并且检查接口返回的响应码,响应码的正确才能保证客户端根据异常情况来显示相应的提示信息。简而言之,条件判断的接口其测试策略就是根据判断条件来设计各种输入值来检验接口的功能。

第二类:数据查询接口
      这类接口接收到请求数据后,首先会验证请求是否合法,然后会根据请求项查询数据库相应表中数据返回给客户端,通常涉及数据查询的接口有:用户基本资料/经验值/赛事信息查询、游戏列表获取、在线人数查询等接口。以用户经验值查询接口为例:
用户经验值查询接口
『接口功能』:用户登录游戏中心后,可以查询自己每个游戏项目的经验值信息,包括此项目的经验值等级、等级称号、今日经验值上限等。
『接口方向』:游戏中心—>平台服务器
『遵循协议』:HTTP+XML,请求消息使用Post方式

响应消息(sendMessageRes)

此接口首先会根据webkey来判断请求是否合法,然后根据请求参数中的userID、isAll、sportItemID来查询数据表中相应数据。除了象条件判断接口一样根据判断项webkey、请求参数userID、isAll、sportItemID设计合法/不合法和正常/异常测试值之外,还需要结合数据库来对查询结果进行验证:
1)是否根据正确的关联数据表进行查询;
2)验证查询结果是否从数据表中正确项中获取,涉及到多表联合查询时,不同表中的相同项设计不同测试数据进行验证;
3)修改查询结果在数据表中对应项中的数据,使其为空值或客户端相应项的范围值的最大和最小值,查看接口输出是否正确。

第三类:逻辑运算接口
      这类接口在收到请求数据之后,会进行一系列逻辑运算,然后根据处理结果更新数据库中的数据,通常涉及逻辑运算的接口有:比赛成绩同步、商品支付、各种数据报表等接口。以比赛成绩同步接口为例:
比赛成绩同步接口
『接口功能』:游戏服务器将用户每次的比赛成绩传给平台服务器,平台服务器根据用户的比赛成绩更新此用户的赛事排名,然后存入数据库。
『接口方向』:游戏服务器—>平台服务器
『遵循协议』:HTTPS+XML,请求消息使用Post方式

响应消息(sendMessageRes)

此接口比数据查询接口又更加复杂,除了用条件判断和数据查询类接口的策略对此接口进行测试用例设计之外,还需要验证对接口的算法规则进行检查,因为此接口涉及根据用户比赛成绩(record)进行排名然后返回其得分及排名情况(score、rank、upRankFlag、exp),通过对相关数据表中的数据进行查看方式,接口算法规则验证包括:
1)用户胜利、失败、中途主动/被动退出、规定时间内未完成比赛情况下,此场比赛得分(scroe)是否正确;
2)用户比赛成绩比上次成绩花费时间短、长、持平情况下,排名情况(upRankFlag)是否正确;
3)用户比赛成绩处于第一名、最后一名、比上次成绩花费时间短/长/持平情况下,用户积分排名(rank)是否正确;
4)用户胜利、失败、中途主动/被动退出、规定时间内未完成比赛,并且用户经验值在各种经验等级范围下,经验值根据得分进行计算的公式是否正确。
   逻辑运算接口由于还涉及插入或更新数据库操作,因此测试时还需要考虑数据库特性,如数据精度问题,在MySQL数据库中,如果是浮点型数据,存入时会有精度误差(131072.32插入float(10,2)类型的数据会变为131072.31),因此对于需要用于金额计算、数据统计、成绩比较的数据,最好使用定点型。
   最后服务器接口的测试如果有足够条件的话,还需要通过白盒测试来对接口代码做进一步的测试,通过编写关键代码的测试桩,可以有效查找将字符数组当成字符串使用造成的读越界这类不易通过黑盒测试发现的BUG。接下来的工作就是如何通过测试工具来执行服务器接口功能测试。

接口测试 - 接口测试策略相关推荐

  1. 嵌入式软件接口怎么测试,嵌入式系统接口测试策略.doc

    嵌入式系统接口测试策略 嵌入式系统接口测试策略 摘要:在日益广泛应用的嵌入式系统中,软件测试因为系统平台局限性需要重复下装,耗费较大的测试资源与时间成本.文章根据嵌入式系统软件的特性,结合实际案例智能 ...

  2. 接口测试 接口自动化测试框架

    接口测试 接口自动化测试框架  https://testerhome.com/topics/3572 接口自动化测试框架搭建  https://www.liangzl.com/get-article- ...

  3. 软件测试 接口测试 接口鉴权 token鉴权 Mock Server 接口加解密 接口签名sign

    文章目录 1 接口鉴权 1.1 cookie鉴权 1.2 session鉴权 1.3 token鉴权 1.4 Postman的鉴权方式 2 Mock Server 3 接口加解密 3.1 加密方式 3 ...

  4. jmeter接口测试-接口文档信息不完善怎么做接口测试(一)

    做接口测试,首先要有完善的接口文档,我们项目组开发的接口文档适合开发阅读和使用,测试看的话就比较粗糙了,下面看下开发的接口文档: 仅从这上面看的的话很多信息都不清楚,服务器地址端口.接口请求路径.接口 ...

  5. 零基础学习接口测试-接口文档

    一.示例: 1.1:通过登录界面登录百度流程: 如上图:我们在界面的登陆框输入正确的用户名和密码,点击登录,登录成功. 1.2:程序内部流程: (1)前端发送请求到服务端, (2)服务端收到请求去数据 ...

  6. 能涨薪3k的jmeter接口测试 接口自动化测试全套教程

    [文章末尾有.....] jmeter--接口测试 一.线程组--选择测试计划,右键-->添加-->线程-->线程组 线程数:虚拟用户数.一个虚拟用户占用一个进程或线程. 准备时长: ...

  7. 接口测试-接口定义功能-前端-实现动态增删表单

    基于 springboot+vue 的测试平台开发继续更新. 目前已经进入到接口定义功能的开发阶段,首先我还是直接在前段画了个大概的页面,先预览下: 不过目前只是画了这个页面都主要功能,细节未尽事宜待 ...

  8. 嵌入式系统的接口测试策略

    设备组成 Etest_CPS系统主要由硬件部分与软件部分组成.硬件部分由PCI机箱.PCI控制器以及各种PCI接口板卡组成.软件部分由测试设计软件模块.测试执行服务软件模块.测试执行客户端软件模块.设 ...

  9. 【测试】详解接口测试(2)- HTTP接口用例设计与测试方法(拿B站练手)

    文章目录 前言 接口测试是什么 HTTP接口的测试用例设计 接口用例设计小结 HTTP接口的测试方法 手工测试 自动化测试 接口测试策略 结束语 前言 大家好,我是洋子.在之前的文章<详解接口测 ...

最新文章

  1. nagios不能 发送飞信报警一例
  2. 建立循环双链表(尾插法)
  3. C++虚继承内存布局===写得很牛!推荐
  4. linux redis 删除_Redis-安装amp;删除【Linux 版】
  5. 【爬虫系列之一】爬虫开发环境的搭建
  6. mybatis错误之配置文件属性配置问题
  7. python高阶函数闭包装饰器_5.初识python装饰器 高阶函数+闭包+函数嵌套=装饰器...
  8. 持续集成工具FinalBuilder使用心得
  9. Guava源码分析——Immutable Collections(4)
  10. Mac 10.12彻底关闭Dashboard
  11. VINS System::ProcessBackEnd()
  12. 基础知识—表达式与语句-运算符
  13. centos 7.2安装 java_centos7.2 linux系统上安装java环境
  14. Problem:服务器超过最大中终连接数
  15. linux gnu主要精神,最符合GNU精神的Linux发行版gnewsense
  16. AD14一般使用流程
  17. android 集成 firebase 推送
  18. 安装AUTOROM、导入ROMs
  19. 前端实现excel导出功能(vue)
  20. 判断设备信息是否为移动端,移动端跳转到移动端网页(手机网站)

热门文章

  1. 《算法导论》和《计算机程序设计艺术》下载地址
  2. win7无盘服务器配置,易游WIN7无盘安装之WIN7设置
  3. SphereCast和SphereCastAll
  4. “达人”计划丨达观数据2019届校园招聘正式启动
  5. 阿里云成为Hyperledger超级账本全球会员,发力区块链生态建设
  6. PAT——Recover the Smallest Number
  7. 如何做好年终ppt总结报告
  8. MFC之学习Bezier样条使用
  9. 常见问题及解决问题的思路
  10. 解决ORA--27100 shared memory realm already exists报错