Chinaunix首页 | 论坛 | 博客
  • 博客访问: 801761
  • 博文数量: 104
  • 博客积分: 915
  • 博客等级: 下士
  • 技术积分: 2171
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-24 21:34
文章分类

全部博文(104)

文章存档

2018年(4)

2015年(14)

2014年(9)

2013年(56)

2012年(21)

分类: IT职场

2018-05-16 11:39:47


新增一个接口的时候如何考虑它的测试点?
不需要死记硬背,要理解为什么要测这个点,那就站在使用者的角度考虑,我想要什么样的接口?
存在即有其存在的道理~

1、这个接口提供的功能 是否完全满足 我想要的功能?
     ——测试所有我需要的功能点(可以用postman)
2、这个接口稳不稳定,会不会挂掉,挂掉之后会不会影响我的功能?可能有以下几种情况:
     a. 我给的请求参数它会不会没做判断
         ——测试所有我可能会传的异常点(多参数、少参数、空参数、错误参数、特殊字符等(可以用postman
     b. 我给的请求量太大,它能不能扛得住?
         ——压力测试一段时间内,分不同进程给它发送大量请求,不断用不同的数值测试,看下最大的情况下,它能支撑每秒多大的请求量(可以使用httpload,比较简单)
3、这个接口的反应时间不会很长吧?我得等多久才能有结果回来?太久我肯定不能等的
     ——压力测试一段时间内,每秒发送较大量的请求,不断用不同的数值测试,看下最大的情况下,它维持在多少秒?(可以使用httpload,比较简单
4、这个接口是不是安全的?会不会被人劫持?是否有敏感信息返回的时候会被人看到?
     ——敏感信息加密

 
=========补充详细接口测试的点============
1、功能:
1)业务逻辑(不同的业务不同的逻辑,根据业务点制定)
2)参数校验
(1)输入正常参数,根据业务点对比接口此时应该返回的正确结果,与接口返回数据进行校验
(2)输入非正常参数
       a. 输入空参数或不传入参数
       b. 输入不符合系统定义的参数,例如:userName超长(假定数据库定义为25字符,则需要测试26及以上256之类的)、username包含特殊字符(假定username必须为数字和字母,则需要输入@、&、转义字符、只有字母或只有数字等)
       c. 输入非userName的参数,例如:小写的username 或者 aaa、userName+其他参数
       d. 构造特殊返回的参数,检测”和’符合在返回结果中的处理是否正确,例如:昵称里包含’或”或<或者@等
       e. 构造重复的数据,例如数据库里包含两条username相同的,看返回值(上线接口要检测筛选数据是否存在重复项)
       f. 返回不正确的Json格式,例如:缺少{
       g. 使用GET方法提交,是否能返回结果,返回属于缺陷
       h. Review代码逻辑,测试特定的功能分支(例如是否有判定用户有效的)
       I. Ajax决定了返回的值可能非同步的,需要Selenium类似的工具去自动不停获取接口是否有异步返回
2、性能:
1)响应时间
2)吞吐量
(1)返回数据过多时,接口平均返回时间
(2)接口被调用的频次,如果过于频繁是否有缓存机制
3、安全:
1)SQL注入、XSS攻击
2)越权
(1)访问限制:403权限限制、内外网受限、iptables黑白名单、机器范围、服务器还是客户端
(2)Xss和钓鱼、redirect
(3)Sql注入
(4)返回结果是否有敏感及用户隐私数据——如果是客户端访问则需要处理
(5)返回包含是否需要加密
4、异常:
(1)网速限制
(2)服务端异常(例如:依赖服务crash、服务端网络断掉、超时)
   
     
阅读(940) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~