Python接口自动化测试实战系列

本节内容

  • 接口及接口测试

  • 网络基础知识:IP,域名, DNS及端口

  • 网络基础知识:OSI七层模型及TCP协议

  • HTTP协议

接口及接口测试

这里插播一个段子

Python接口自动化测试实战系列_第1张图片


上图中,程序员口中提到的接口是什么意思呢?
手机壳有没有颜色这个属性(功能)?--- 有
手机壳有没有提供让程序获取它颜色的途径?--- 没有,这个途径就是接口

接口的概念

接口又称API(Application Programming Interface,应用程序编程接口),是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

简单概括为以下3点:

  • 程序代码(函数方法)

  • 屏蔽实现细节

  • 可以被访问/调用来获取信息或实现某些功能(提供访问地址,定义了访问规则)

接口自述(通俗的来说):

  • 首先我有一些功能(功能函数)

  • 你不用关心我怎么实现的(屏蔽细节)

  • 我会给你一个我的地址(接口地址)

  • 你按照地址找到我,按照我规定的格式(请求类型)告诉我所需要的信息(参数)就行

  • 我会给你个反馈(相应信息)

举个栗子
西虹市公考报名处 --- 接口名称
报名地址:西虹市街口区带莫路3号 --- 接口地址
现场需填写资料:姓名,身份证证号码,专业,报考岗位等等 --- 接口参数
验证规则:--- 参数验证规则

  • 身份证需与本人一致

  • 专业需与报考岗位符合

  • 报名时间 2024.8.22-2024.8.30
    现场会给出是否报名成功 --- 接口响应信息

软件中的接口

Python接口自动化测试实战系列_第2张图片

软件项目中,接口是系统与系统之间,模块与模块之间或者服务于服务之间相互调用的入口。

从开发者角度,接口是分工协作的产物,不同开发者实现自己的功能之后,封装成接口,供其他开发者调用。其他开发者只要按规定格式发送一些必要参数,就能使用该功能

Python接口自动化测试实战系列_第3张图片

常见接口类型

  • HTTP接口:通过HTTP协议传输的接口,可以传输文本表单数据,也可以传输Json类型的对象数据或xml类型的数据

  • RPC: 远程方法调用,随着分布式系统的出现,当你需要调用部署到其他服务器上的方法时,需要用到RPC。RPC只是提出了这样一个问题,有很多种解决方案,比如WebService(基于SOAP协议), REST(基于HTTP协议)。

  • SOAP: 简单面向对象协议,基于HTTP,使用xml作为默认传输格式

  • Web Service: 基于SOAP协议的一种RPC实现方案。相比传统的HTTP接口只传输文本请求和文本相应,通过Web Service可以直接拿到远程的一个对象,并能够直接调用该对象的属性和方法,比HTTP更高级。

  • REST/RESTful API: REST,表述性状态转移。一种HTTP接口的设计风格,将一切接口视为资源,要求接口路径同意管理,分版本管理,规定了GET/POST等请求以及HTTP状态码的使用规范,默认使用JSON格式传输。RESTful API即满足REST风格即设计规范的API接口
     

  • Python接口自动化测试实战系列_第4张图片

什么是接口测试?

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个
子系统之间的交互点。测试的重点是要检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

为什么要做接口测试?

  • 接口测试介于单元测试与系统测试之间,单元测试一般由开发完成(不要相信开发)

  • 接口是各种系统功能的基础,一旦接口出现问题可能会引起许多系统功能的问题并且不容易定位

  • 开展接口测试可以及早发现问题,有效降低测试成本

  • 接口一般较UI相对稳定,利于进行自动化和持续集成

接口测试都测什么?
接口测试一般有以下岗位实施:

  • 手工测试岗:先提测接口再提出功能,兼做接口自动化

  • 服务端测试岗:梳理代码,审核接口实现逻辑是否与业务设计一致,技术实现逻辑的合理性,异常流测试,接口压测及安全性测试

  • 测试开发岗:专职做接口(或UI)的自动化用例开发,测试工具开发

接口测试点参考:

Python接口自动化测试实战系列_第5张图片

怎样掌握接口测试?

  1. 了解OSI网络模型,TCP/UDP协议,掌握HTTP/HTTPS协议,了解RPC, Web Service及REST,理解Session和Cookie

  2. 掌握常用的接口测试工具如curl命令,Postman,Jmeter,LR,SoupUI,AB等

  3. 掌握基本的抓包工具如Chrome开发者工具,Fiddler,Charles,Wireshark,tcpdumps等

  4. 掌握一门编程语言Python或Java

  5. 了解Nginx, Ap

你可能感兴趣的:(软件测试,程序员,python,自动化,开发语言)