什么是接口测试

接口测试是测试系统组件间接口的一种方式,接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是检查数据的增删改查操作,以及系统之间的逻辑关系等。

接口测试作为集成测试的一部分,通过直接调用被测试的接口来确定系统在功能性、可靠性、安全性和性能方面是否能达到预期,有些情况是功能测试无法覆盖的,所以接口测试是非常必要的。
接口测试分为两种,一种是webservice接口,走soap协议通过http传输,请求报文和返回报文都是xml格式的,测试时通过工具soapUI进行测试。使用情况比较少;另一种http api接口,走http传输协议,通过路径来区分调用的方法,最常用的是get和post请求。
  get请求和post请求的区别在哪里呢?网上的答案为:
  1、get请求可以在浏览器中请求到,post请求的测试需要借助工具
  2、get请求使用url和cookie传参,post的数据放在body中
  3、post比get更安全,因为传递的参数在url上是看不到的
  4、get请求的url会有限制,而post请求的数据可以非常大
  5、一般get请求是来获取数据,post请求是传递数据的
  其实,对于现在飞速发展的 互联网来说,上面的说法已经不严谨了。首先,post请求的参数也可以写在url里,但是这种情况不多见;其次表面上看起来,post利用body传参,比get的url传参安全,但其实只要用抓包工具(fiddler,Charles等),post的参数也是一览无余;再次,现在的浏览器非常强大,可以输入支持很长的URL,所以也不再有限制一说了。这么说来,种种区别只有最后一条是最根本的了。
 怎么来测试接口呢?根据什么来测呢?这就需要开发提供的接口文档了,接口文档和功能测试的需求说明书的功能是一样的。包括:接口说明、调用的url,请求方式(get or post),请求参数、参数类型、请求参数说明,返回结果说明。这里接口文档生成可以使用apipost接口文档生成工具。有了接口文档后,我们就可以设计用例了,一般接口测试的用例分为以下几种:
1、通过性验证,说白了就是传递正确的参数,是否返回正常的结果
2、参数组合,因为参数有必传和非必传,参数的类型和长度,以及传递时可能业务上的一些限制,所以在设计用例时,就要排列组合这些情况,保证所有情况都能覆盖到
3、接口的安全性,这个又分为几种情况:
  1)绕过验证,比如提交订单时,在传递商品价格参数时,修改商品价格,就要看后端有没有验证了。或者我支付时,抓个包将订单金额一改,如果能以我改后的金额支付,那这个借口就有问题了。
  2)绕过身份验证,就是某个功能只有有特殊权限的用户才能操作,那我传递一个普通的用户,是不是也能操作呢
  3)参数是否加密,这个关系到一些账户的安全,比如我们在登录一些网站时,它要将我们的登录信息进行加密,如果不加密我们的信息就会暴露,危害性极大。
  4) 密码安全规则,设置密码时复杂程度的校验。
4、根据业务逻辑来设计用例
用例设计完了,用什么来测试接口呢?我们可以借助一些工具,比如apipost和jmeter。apipost使用比较简单,可以在列表中选择请求方式,在输入框中输入URL,如果是get请求,直接点击发送就可以看返回结果了。

  如果是post请求,会涉及到几种参数的上传方式和添加请求头、权限验证还有添加cookie等操作。apipost都可以简单实现

  还有一种测试接口的工具是jmeter,用途比较广泛,不但能测接口的功能,还能对接口进行性能测试。比如:压力测试、负载测试等。在jmeter中需要创建线程组,如图:

Apipost官方链接:Apipost-基于协作,不止于API文档、调试、Mockhttps://console.apipost.cn/register?utm_source=10006

关于apipost接口测试相关推荐

  1. ApiPost接口测试的用法之------Post

    我这里用的是onenet提供的API接口来测试,其他的云端都是类似的,具体看开发文档,我这边就演示一下onenet的操作 之前也写过GET的方法,不懂的可以看我之前的文章→传送门 准备操作: 1.需要 ...

  2. apipost接口测试

    1.首先要    新建--项目  2.  要开启全局cookie,便于后续接口享有登录权限 3.测试一下登录接口 4.后面就可以测试别的接口了  

  3. 接口测试文件上传(python+requests)

    在做接口测试的时候,往往会有需要文件上传的接口,今天教大家使用apipost接口测试工具和python+requests脚本进行接口测试. 一.使用python+requests python+req ...

  4. apipost如何设置断言

    前言 apipost断言是JavaScript语言编写的,在apipost客户端后执行脚本处即可.断言会在请求返回之后,运行,并根据断言的pass\fail情况体现在最终测试结果中. 一.首先编写一个 ...

  5. 接口测试-header头部详解

    一.什么是header header:标头 (header) 是服务器以HTTP协议传HTML资料到浏览器前所送出的字串,在标头与 HTML 文件之间尚需空一行分隔. -----百度百科 header ...

  6. java header接口_【分享】接口测试-header头部详解

    一.什么是header header:标头 (header) 是服务器以HTTP协议传HTML资料到浏览器前所送出的字串,在标头与 HTML 文件之间尚需空一行分隔. -----百度百科 header ...

  7. python+flask编写一个简单的登录接口例子

    在学习接口测试的时候往往会因为没有实际操作的接口进行测试而烦恼,这里教大家自己编写两个接口用于学习接口测试 1.编写一个登录的接口 2.在pycharm运行 3.使用apipost进行登录接口测试 输 ...

  8. 还在学Django! FastAPI Web 框架教程来了!

    点击上方"菜鸟学Python",选择"星标"公众号 超级无敌干货,第一时间送达!!! 大家好,我是菜鸟哥! 都说学Python web开发有三驾马车,其中Dja ...

  9. OkGo上传文件、图片的用法

    在Android开发过程中,肯定会遇到与后端进行交互的地方.手机端与后端进行交互,难免会使用到OkGo.在最近的一个项目中,明明是按照官方教程写的代码,但是始终会报一个异常. 报错信息: networ ...

  10. Django-16:rest-framework与jwt

    Django-16:rest-framework与jwt 一.web开发模式 1.1 前后端不分离 1.2 前后端分离 二.api接口 2.1 postman 2.2 Restful规范 三.Djan ...

最新文章

  1. Cocoapods安装使用
  2. MySQL的用户的创建以及远程登录配置
  3. C语言递归算法十进制数转换为八进制(附完整源码)
  4. linux sed举例,sed 常用命令与参数,带举例:时时更新!
  5. Eclipse 导出
  6. 如何判断自己的编程水平
  7. Newtonsoft.Json 获取匿名类数据
  8. GCC编译器和GDB调试器常用选项
  9. asp.net MVC ViewData详解
  10. jssdk 获取微信收货地址_微信收货地址共享开发接口讲解
  11. 【WPF】绑定Hyperlink超链接
  12. wps嵌入字体后也不改变_冬至后的君子兰,养护方式要改变,不然过年不开花
  13. 基于python flask的网上商城源码 mysql数据库
  14. 电子/自动化专业常用软件介绍
  15. P物质肽[DArg1, DTrp5, 7, 9, Leu11]
  16. LNB investigation
  17. 【转录调控网络】代谢组学与其他组学的联合分析经典模式简介
  18. 利用pytorch实现平均绝对值误差(MAE)
  19. 使用RecyclerView自定义实现二级联动列表
  20. excel中如何在同一单元格中换行

热门文章

  1. 专升本高数第一章试题_专升本高数复习资料,精品系列
  2. 学习Python的几个优质平台
  3. 资深Java面试题及答案(汇总)
  4. Oracle数据库索引底层实现原理笔记
  5. 手机怎么用外嵌字幕_怎么用手机给视频添加字幕?原来方法这么简单,3分钟教你学会...
  6. html静态模板资源,可下载源码
  7. matlab高斯窗函数,Matlab中窗函数的简单使用
  8. xrd连续扫描和步进扫描_多晶XRD步进扫描与连续扫描介绍
  9. SAP物料编码- -
  10. 计算机视觉是否已经进入瓶颈期?