目录

接口

编辑

接口(API)的组成

接口测试概念

为什么做接口测试?

模块接口测试

模块接口测试

Web接口测试

接口测试质量评估标准

接口测试流程

软件测试流程基本步骤:

接口测试测试的是:

接口测试点:

接口测试工具jmeter(postman,restclient)

jmeter优缺点

badboy录制工具



接口

接口(API)的组成




  • http — 普通的http请求,默认端口为80
  • https — 加密的http请求,传输数据更加安全,默认端口为443
  • ftp — 文件传输协议,主要用来传输文件,默认端口为21
  • IP(域名):就是指提供接口的系统所部署的服务器地址,可以是直接的IP地址
  • 端口:如果不填端口,都是默认端口,否则需要填写端口号
  • 接口地址:指系统提供的接口在什么位置
  • 接口参数:参数在接口路径后,用“?”来表示路径地址结束,用“&”来区分参数个数





接口测试概念



接口测试是测试系统组件间接口 的一种测试,主要用于测试系统与外部其他系统之间的接口,以及系统内部各个子模块之间的接口。测试的重点是要检查接口参数传递的正确性,接口功能实现的正确性,输出结果的正确性,以及对各种异常情况的容错处理的完整性和合理性。 测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。



针对软件接口的分类一般有如下几种情况:



1)系统与系统之间的调用,如微信向用户提供统一的对外接口,程序员调用接口完成基于微信的小程序等;



2)同一系统内部上层服务对下层服务的调用,如一个软件程序一般分为表示层,业务层和数据层,表示层调用业务层的接口来完成自己的工作,而业务层又会调用数据层的接口来实现相应的业务等。



其以保证系统的正确和稳定为核心,重要性主要体现为以下几个方面:



(1)能够提早发现 bug,符合质量控制前移的理念。



(2)接口测试低成本高效益,因为接口测试可以自动化并且是持续集成的。



(3)接口测试从用户的角度对系统接口进行全面检测。实际项目中,接口测试会覆盖一定程度的业务逻辑



为什么做接口测试?



1.越底层,越稳定。2.越底层,越高效。3.越底层,越低成本。4.越底层,越难实施




模块接口测试



接口测试大体分为两类:模块接口测试和web接口测试。



模块接口测试



是单元测试的基础,它主要测试模块的调用与返回。经常需要编写一些桩模块与驱动模块。



主要测试要点如下:



检查接口返回的数据是否与预期结果一致。



检查接口的容错性,假如传递数据的类型错误时是否可以处理。



接口参数的边界值。例如,传递的参数足够大或为负数时,接口是否可以正常处理。



接口的性能,接口处理数据的时间也是测试的一个方法。牵扯到内部就是算法与代码的优化。



接口的安全性



Web接口测试



web接口测试又可分为两类:服务器接口测试和外部接口测试。



服务器接口测试:是测试浏览器与服务器的接口。用户输入的数据是输入到的前端页面上,怎样把这些数据传递的后台的呢?通过http协议的get与post请求来实现前后端的数据传递。这也可认为是接口测试。



外部接口测试:这个很典型的例子就是第三方支付,比如在我们应用中在充流量时,交话费时,都会调用第三方支付接口。



主要测试要点如下:



请求是否正确,默认请求成功是200,如果请求错误也能返回404、500等。



检查返回数据的正确性与格式;json是一种非常常见的格式。



接口的安全性,一般web都不会暴露在网上任意被调用,需要做一些限制,比如鉴权或认证。



接口的性能,这直接影响用户的使用体验。




接口测试质量评估标准

  •  业务功能覆盖是否完整
  •  业务规则覆盖是否完整
  •  参数验证是否达到要求(边界、业务规则)
  •  接口异常场景覆盖是否完整
  •  接口覆盖率是否达到要求
  •  代码覆盖率是否达到要求
  •  性能指标是否满足要求
  •  安全指标是否满足要求



接口测试流程

  • 需求评审,熟悉业务和需求
  • 开发提供接口文档
  • 编写接口测试用例
  • 用例评审
  • 提测后开始测试
  • 提交测试报告



软件测试流程基本步骤:

  • 测试计划拟制;
  • 测试方案编写;
  • 测试用例设计;
  • 测试执行;
  •  生成软件问题报告



接口测试测试的是:

  • 接口功能是否实现
  • 返回值是否正确
  • 测试参数内容
  • 数据安全性
  • 敏感性数据
  • 接口能否正确处理



接口测试点:



目的:测试接口的正确性和稳定性;



原理:模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程;



重点:检查数据的交换,传递和控制管理过程,还包括处理的次数;



核心:持续集成是接口测试的核心;



优点:为高复杂性的平台带来高效的缺陷监测和质量监督能力,平台越复杂,系统越庞大,接口测试的效果越明显(提高测试效率,提升用户体验,降低研发成本);



用例设计重点:通常情况下主要测试最外层的两类接口:数据进入系统接口(调用外部系统的参数为本系统使用)和数据流出系统接口(验证系统处理后的数据是否正常);




接口测试工具jmeter(postman,restclient)



Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序);能满足接口功能自动化、批量数据准备、性能测试等多重需求;当前业界最主流的接口测试工具之一,很多公司的接口自动化平台和性能测试平台都是基于其内核扩展的,不仅适合个人学习和使用,更适合规模化和团队化使用。



jmeter优缺点




优点:



  1. 开源,他是一款开源的免费软件,使用它你不需要支付任何费用
  2. 小巧,相比LR的庞大,它非常小巧,不需要安装,但需要JDK环境,因为它是Java开发的工具。
  3. 支持功能扩展开发。
  4. 学习成本比较低,容易上手。
  5. 验证功能时候,能够跳过前端页面数据限制,验证服务端对数据是否有限制等

缺点:



  1. 支持想协议没有loadrunner多,不过目前主流协议基本上都支持
  2. 压测的结果分析报表没有loadrunner详细丰富,不过一些主要的性能指标都支持生成展示了,比如TPS,QPS,吞吐量等



badboy录制工具




当需要开发大量接口,这时候可以先利用badboy工具录制脚本,然后保存成.jmx文件,再把这个文件导入到jmeter中去,进行一定修改然后即可完成大量脚本的开发工作。