接口测试
1. 接口
接口,也叫api(Application Programming Interface,应用程序编程接口),接口(Interface)是指不同软件组件或系统之间进行交互的点。接口定义了组件之间如何通信,包括数据的请求、接收和响应的方式。
后端的程序会给前端用,后端的程序怎么给前端用,一般是后端编写接口,提供给前端使用
接口本质上是开发人员写的函数或方法
不是所有函数或方法都是接口,但接口一般都是函数或方法
使用接口的主要目的就是分工合作,加快开发
一个软件由很多接口组成
2. 接口要素
接口最终要给前端使用,测试时通过软件如postman、python等来使用(测试肯定得用接口),使用一个接口时,需要哪些概念,就是接口要素。
3. 接口地址
接口的URL或URI,它是客户端访问接口资源的地址。
例如:
http://192.168.1.3:8080/abc/def/xyz
abc一般表示应用名,就是软件名简称
def一般表示模块名,有的接口可能没有模块名
xyz一般表示功能名
一般所说的接口,全名是接口地址,最后一个单词(例如xyz)是真正的接口名,接口最终是其背后的函数或方法
4. 测试方法
接口测试是绕过前端,根本不使用页面,而是使用工具或软件直接对接口进行操作,能发现更多更深的缺陷
一般先做单元测试、再做接口测试,再做功能测试
一般都借助工具或软件
postman
jmeter
apifox
python
java...
5. 测试流程
收集文档,需求分析,写测试点
准备测试数据
部署测试环境
执行测试用例,提交缺陷报告
生成测试报告
6. 接口分类
内部接口(内网)和外部接口(外网)
7. 接口协议
提供协议分类:
HTTP接口
HTTPS
FTP
SMTP 简单邮件传输协议
POP3 邮局协议第3版本
WebService接口,采用SOAP协议 简单对象传输协议
8. 状态码
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进—步的操作l以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误
9. JSON文本格式
JSON全称:JavaScript对象表示法
- JSON是介于普通文本和XML之间的一种数据文本格式;比普通文本复杂,又比XML简单,便于生成、表达、解析。
- JSON相比XML更轻量化,提高网络传输效率;
- JSON是一种跨平台(操作系统)、跨语言(编程语言)的文本;
- JSON具有面向对象特性,主要存储对象的属性数据;
- 接口测试经常使用JSON、XML作为返回结果的文本格式,有时发请求的参数值也用
JSON文本格式的基本语法
- JSON对象使用{}包围
- 属性数据以“名值对”表示 区分大小写
- 多对属性之间使用逗号, 分隔
- JSON属性名都必须有英文双引号
- 不支持单引号
- 字符串:“文本” 必须使用双引号 比如:"Hello123"
- 数字:整数、小数 直接写 比如:123 123.567 为了算术运算方便
- 逻辑值:true false 必须全小写 为了进行条件判断 真、假
- 空值:null 表示该值没有意义,什么也不是
- 对象:{ } 其中写属性名、属性值
- 数组:[ ] 便于罗列数据
- 可以互相嵌套
10. 参数化
让每次发送请求时,能够自动改变数据!——参数化技术
从接口测试角度:可以减少用例的数量让一条用例可以重复使用多组数据,提高自动化测试的效率
比如:请求参数添加,id、username、password、email、salary ... (入参)
返回的结果,就是预期结果,也会变化
实际结果 单词:actual 随着每次条件的变化而变化
预期结果 单词:expect 作为检查点的判断依据,也需要变化 (出参)
在进行接口自动化时,为了测试大批量数据,采用参数化技术,根据业务需求设计入参和出参,设计用例并执行;
重点关注:类型 + 数据 + 策略
入参:请求携带参数数据,是可以改变的(因)
出参:响应返回的结果数据,需要检查,会随着入参的变化而变化(果)
11. 验库
验库,也称为落库检查就是在自动化测试过程中,能够自动判断数据库中的数据是否存在、合理为什么需要验库?添加断言时,关心两个方面,一个是接口的返回值,一个是对数据库的影响,这两方面都要正确验库就是对数据库中的数据进行确认,比如通过查询数据库验证实际结果是否存在,包括对数据库表中的行和列的检查
增删查改操作都可以验库
通过Postman访问数据库,可以进行数据库的自动化控制,进行批量数据添加,从而实现测试数据的初始化