接口测试基础

什么是接口测试

不同端的工作进度不一样,这就需要对最开始出来的接口进行接口测试

接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。

做接口测试能给我们带来的好处一般也就是以下三条:

  1. 节约时间,缩短项目时间;
  2. 提高工作效率;
  3. 提高系统的健壮性

接口的分类分为Post,Get等等

GET --- 通过请求URI得到资源
POST --- 用于添加新的内容
PUT --- 用于修改某个内容
DELETE --- 删除某个内容
CONNECT --- 用于代理进行传输,如使用SSL
OPTIONS --- 询问可以执行哪些方法
PATCH --- 部分文档更改
PROPFIND (wedav) --- 查看属性
PROPPATCH (wedav) --- 设置属性
MKCOL (wedav) --- 创建集合(文件夹)
COPY (wedav) --- 拷贝
MOVE (wedav) --- 移动
LOCK (wedav) --- 加锁
UNLOCK (wedav) --- 解锁
TRACE --- 用于远程诊断服务器
HEAD --- 类似于GET, 但是不返回body信息,用于检查对象是否存在,以及得到对象的元数据

Post和Get请求方法的区别:

  1. 功能不同:Get是从服务器上获取数据;Post是向服务器传送数据;
  2. 过程不同:Get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单各个字段一一对应,在URL中可以看到;Post是通过HTTP post机制,将表单各个字段与其放置在HTML HEADER一起传送到ACTION属性所指的URL地址。用户看不到这个过程;
  3. 获取值不同:对于Get方式,服务器端用Request.QueryString获取变量的值;对于Post方式,服务器端用Request.Form获取提交的数据;
  4. 数据传输量不同:Get传送的数据量较小,一般不大于2 KB;Post传送的数据量较大,一般默认不受到限制,但不超过10 KB;
  5. 安全性不同:Get安全性非常低;Post安全性较高;

URL请求结构
URL结构

1. 请求协议
	·http - 普通的http请求
	·https - 加密的http请求,传输数据更安全
	·fps - 文件传输协议,主要用来传输文件
2. 请求ip
	指低通接口的系统所部署的服务器地址,本机为localhost或者127.0.0.1
3. 请求端口
	即对应服务器暴露出来的端口号,不填默认为80端口,端口范围为1-65535
4. 接口路径
	系统提供的接口在什么位置
5. 接口参数
	参数在几口路径后面,用“?”来表示路径地址完了,剩下的都是参数了,用“&”来区分参数个数

接口测试流程

接口测试流程

整体的思路同产品设计差不多,但是其中的重点是设计用例!!

  1. 理清思路,避免漏测(肯定不能是随机测试)
  2. 提高测试效率
  3. 跟进测试进度(哪些做过测试,哪些还没有)
  4. 做过哪些东西,避免责任
  5. 跟进重复性工作(避免大量重复性作用的时候每次都不一样)

用例设计的设计方面:功能;逻辑业务;异常;安全

  1. 功能用例设计:主要是看功能是否被实现
    1. 功能是否正常

    2. 功能是否按照接口文档实现

    3. 逻辑业务用例设计

      1. 是否有依赖业务
    4. 异常用例设计

      1. 参数异常
        1. 关键字参数
        2. 参数为空
        3. 多、少参数
        4. 错误参数
      2. 数据异常
        1. 关键字数据
        2. 数据为空
        3. 长度不一致(超出数据库对应字段的最大长度)
        4. 错误数据
    5. 安全用例设计

      1. Cookies
      2. Header
      3. 唯一识别码

接口测试工具介绍与使用

1. 接口测试工具的重要性

​ 帮助你解决测试阶段和上线阶段大量的重复性工作,提高整体效率

2. 接口测试工具的分类

工具分类

如何选择接口测试工具

  1. 测试所给时间
  2. 测试的简易程度
  3. 测试业务的复杂度
  4. 自身的能力,对测试工具的熟练度

3. 分类工具介绍

3.1 抓取接口的工具
	1. HTTP watch:仅集成在IE和Firefox浏览器中,只需要在检查中去去使用即可,但是查看数据比较麻烦,而且其他浏览器不支持
	2. Wire shark: 功能齐全的一款庞大的软件,会抓取经过电脑的所有请求,不只是HTTP,还包括TCP,导致看数据的时候会显得很乱,很麻烦
	3. Fiddler: 轻量级软件,只记录HTTP请求,而且本身可以进行接口测试
3.2 测试接口的工具
  1. load runner: 性能测试和接口测试工具
  2. fiddler
  3. postman
  4. soupUI
  5. J meter

测试工具三剑客:postman+fiddler+自己开发的

4. Fiddler运用

​ Fiddler是一个HTTP协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间HTTP通讯,设置断点,查看所有的“进出”Fiddler的数据

  1. 独立的可以直接抓取HTTP请求
  2. 小巧且功能完善
  3. 快捷,启动即用
  4. 代理方便

工作原理

fiddler工作原理

Fiddler的运用

  1. Header,Cookie
  2. 设置断点
  3. 添加筛选
  4. fiddler进行接口测试

5. Postman运用

​ Postman是由谷歌开发的一款接口测试插件;

  1. 各种类型接口测试
  2. 按需求添加Cookie,Header
  3. 操作记录清晰
  4. 多接口一起使用
  5. 方便回归
  6. 可以看到你测试的代码,帮你一步步熟练掌握代码

​ postman区别于其他的接口测试软件,其最大的特点就是可以自动反复的测试一个需要携带Header的Post请求,并且对针对线上、测试环境同一个数据进行测试,并对其实际结果作比较,作为测试结果;

接口测试工具的简单实践

1. Get接口

  1. 定义接口地址
  2. 定义请求数据
  3. 整理请求数据
  4. 发送数据并返回结果

利用Python创建接口测试工具类

import urllib.parse
import urllib.request
# 定义URL(根据自己的需求去定义)
url = ""
# 定义请求数据,并赋值,为字典格式(注意这里面的值是否有加密,如果有,需要传入加密后的值)
data = {}
data['key'] = 'value'
data['key1'] = 'value1'
# 把字典格式请求数据进行编码,并转化为Get请求数据格式
data = urllib.parse.urlencode(data)
# 请求地址和请求数据拼接
request = url + '?' + data
# 向服务端发送get请求
requestResponse = urllib.request.urlopen(request)
# 读取返回对象的内容
response = requestResponse.read()
# 进行编码转换,这里是utf-8和unicode之间的转化
responseStr = response.decode('unicode_escape')
# 打印内容(如果有需要,自行转换为JSON格式)
print(responseStr)

2. Post接口

import urllib.parse
import urllib.request
# 定义URL(根据自己的需求去定义)
url = ""
# 定义Header(为字典格式)
headers = {'key':'value', 'key1':'value1'}
# 定义请求数据,并赋值,为字典格式(注意这里面的值是否有加密,如果有,需要传入加密后的值)
data = {}
data['key'] = 'value'
data['key1'] = 'value1'
# 把字典格式请求数据进行编码,并转化为Get请求数据格式
data = urllib.parse.urlencode(data)
# 请求地址和请求数据拼接
request = urllib.request.Request(url,data,headers)
# 发送Post请求
requestResponse = urllib.request.urlopen(request)
# 读取返回对象的内容
response = requestResponse.read()
# 进行编码转换,这里是utf-8和unicode之间的转化
responseStr = response.decode('unicode_escape')
# 打印内容(如果有需要,自行转换为JSON格式)
print(responseStr)

接口测试基础部分大概就写这么多,不是很全面,只是后续学习的一个奠基,希望能够对大家有所帮助

祝各位码上无ERROR,键盘无BUG!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值