AppScan api登录接口 postman_五分钟就能入门?我就看看API测试能有多简单易懂!...

6034c1f896836639a84e73bad1a19f1a.gif

   首先,我们想,什么是API?   简单来说,API,是应用程序接口 (Application Programming Interface,又称为应用程序编程接口) ,是软件系统不同组成部分衔接的约定。一个软件系统越庞大,需要用到的接口相对越多,同时接口的复杂度和接口的设计都需更好的设计和提升。   那么,什么是API测试? API测试其实是一种用程序或工具来发送数据,同时验收系统的返回值的方法。 这种测试更偏向于业务实现逻辑。 常见的网络协议有TCP、Http、webservice、socket等,http?和webservice都是基于TCP/IP协议的应用层协议,webservice是基于http的soap协议传输数据。 我们今天主要说最常见的基于http协议的API的测试。   一般来说,API测试是除去单元测试和白盒测试之外最能够从底层发现问题的测试方法。 那么,API测试需要注意哪些技术细节呢? 换句话说,怎么做一个好的API测试呢?    我们从以下四点说起: 6b2f084544eaae70c75a8b12fcc793db.gif 1、用例设计   如果把API看做一个黑盒的话,那么我们首先可以设计基于边界值法、等价类划分法等的黑盒用例,这些设计思想其实占据很大成分。常见的比如参数值的边界,参数缺失/多余,参数空/非空,特殊字符等;对于复杂的参数,比如结构体/数组链表等,可以考虑其最大长度限制/内置特殊字符等。其次,请求方式/不合法的数据格式/不合法的cookie也会影响到一个接口的返回值。还有,有些接口涉及到加密解密,需要传一些密钥值,一些非合法密钥的检验,来观察API的响应情况。最后,如果手里有很详细的接口文档,把每个return code都覆盖到,很有必要。比如正常是200 OK,此外还有400 (不合法请求) ,401 (未授权) ,429 (太多请求) 等,或其它一些自定义的error code,覆盖的过程,也是把工程代码分支覆盖的过程。 6b2f084544eaae70c75a8b12fcc793db.gif 2、请求工具   一般用Chrome浏览器的话,postman的使用频次应该是最多的了。 也可以下载postman等位客户端。 之前用Firefox浏览器的时候,还用过HttpRequester。 不管用哪种,方法一样。 首先,填写好测试URL,选择测试方法 (GET/POST/PUT/DELETE) ,设置Header (常用的有content-type/Cookie等),设置authorization type(Basic Auth等) ,最后在body中填充测试数据。 接下来,点击send就好啦,这样就发送了一个请求到你的目标API了。   这里面比较复杂的可能就是body了,常用的格式有form-data, x-www-form-urlencoded, applictaion/json等。 用哪种格式,正规的接口文档里开发同学就会注明。 此外,postman有一个功能很nice,就是它可以配置环境变量。 把配置信息抽象成类,不同环境对应不同的实例,初始化设定后,在request请求中通过实例成员变量来引用不同的值,从而在需要的时候通过切换环境来选择不同的配置信息。 比如: 我配置了一个env1环境,并添加了一组key和value,那么当我引用{{}}这个变量时,就会替换成你所配置的。

20e1a1413a62e2252751eaa69538b2e8.png

b15af64d6890c4b232996aa581603702.png b90d5b66d3070c96e89bfd043f3dacff.png 6b2f084544eaae70c75a8b12fcc793db.gif 3、程序设计   首先是选择用哪种语言和相应的请求包,比如python的话常用的就是requests库,而Golang的话你可以使用net/http包或是gorequest包。 拿python来说,短短十来行代码就可以模拟发送一个请求。 b832a06623dabd3ec128c74a15aba543.png   但是难点并不于此。    如何组织用例?   一般来说,用例可以分为单个接口用例和场景用例,单个接口很简单,针对一个接口的参数设置边界值,对应校验不同的返回; 场景用例涉及到多个接口的调用,用以简单模拟用户行为。    测试数据应该放在哪里?   测试数据可以放在用例里,也可以放在json/yaml等配置文件中。 如果涉及到图片/视频等比较大的测试文件,最好不要存在本地,可以在测试服务器搭建一个简单server,比如使用ngnix,接下来只需要访问这些测试文件的链接就好了。    使用哪种风格的测试框架?   现在基本有BDD和TDD两种框架之分,我更倾向于使用BDD,也就是“行为驱动测试”。 这个风格有两个优点:( 1)场景分级,易读清晰,方便定位失败的用例  (2)新手好上手,BDD的过程就是写case的过程。 下面是它的一个流程图。 1463d894788856f0bfcaefdad16065d1.png 6b2f084544eaae70c75a8b12fcc793db.gif 4、接口分析   如果你的团队里面,能够维护一份完整细致的接口文档,当然是最好的。 如果没有的话,那么,优先去推动开发生成一份合适的API说明文档吧。 如果达不到这个阶段,但是也要做自动化,那么你就要掌握基本的抓包分析工具,能够自己去抓包分析形成API文档。   所以接口分析是很必要的,也属于接口测试的高阶提升。 比如接口定义是否冗余,接口的请求字段是否冗余,接口调用是否得到了所有期望的信息,接口调用是否合理方便,接口是否做到最数据库进行了正确的变更,接口的平均响应速度是否在可接受范围等。 这些指标的分析,有时候可以反馈给开发同学,对优化整体性能也是有益处的。 同时,这些分析可以帮助你更好理解这个过程的来龙去脉,理解这些API做了什么,又产生了什么影响。   总之,API测试上手很简单,但做得好,做成工程化还真需要费一点力气,一些技术细节的把控和提升,会无形中提升整体的测试水准; 而如何让API测试真正在我们的日常工作中发挥出最大作用,也需慢慢研究和调整的。 44789d566d81379afcbfc8e16d03bcda.pngEND

2c11ea6f6b36dcb849be594344060193.png

推荐阅读

点击阅读☞搭建API管理与接口自动化测试平台全过程

点击阅读☞API测试全接触:策略、类型、步骤和自动化测试工具

点击阅读☞使用Pandaria编写API自动化测试进阶用法

点击阅读☞借助API实现黑盒自动化测试工具的编写

点击阅读☞JMeter接口测试—获取所有任务API

3363d2e84577478eb18f203dfa82323d.gifc484c24f9df9d43b7fc9c94e2b74f800.gif c36c256f4b87c91cebbe456b5a84f5e0.png 爱我请给我“在看”! c484c24f9df9d43b7fc9c94e2b74f800.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值