文章目录
一、接口测试灵魂拷问
1.1 什么是接口?
电脑:USB、投影机 --> 数据传输
软件:统称API,application program interface,例如微信提现和充值,支付宝支付,银联支付接口。(鉴权码:token/key/appkey)
接口包括:内部接口和外部接口
内部接口:开发人员自己开发的对自身系统提供的接口
外部接口:开发系统调用外部的,微信,支付宝,其他的接口
总结:接口就是软件提供给外部的一种服务,用于做数据传输
1.2 软件为什么需要接口?
因为接口能够让内部的数据被外部进行修改
1.3 为什么要做接口测试?
- 现在很多系统都是前后端分离,开发的进度不一样,需要把一开始开发出来的接口进行测试
- 基于安全考虑,前端有验证很容易绕过,直接请求接口
- 测试推崇的是测试尽早介入
接口测试的本质:就是测试接口能否正常的交互数据,权限控制以及异常场景。
微信端需要跟银行签订一个合同,然后银行给微信端一个token,有效时间是合同期限,然后微信端就可以携带这个token去访问充值和提现的接口。
二、接口返回数据和 JSON详解
三、接口测试协议
3. http协议:接口地址:http://… 这种协议占80%
https = http+ssl安全传输协议 端口:443
http:端口80
什么是http协议
四、企业接口测试的流程和方案
五、Postman应用
六、问题
6.1 postman的环境变量和全局变量
环境变量就是全局变量
全局变量就是能够在任何接口里面访问的变量
获取环境变量和全局变量的值通过:{{变量名}}
- 多种环境:开发环境,测试环境,生成环境
设置环境变量
在test环境里设置一个变量,变量名为ip,值为weixinqq.com
这样{{id}}的地方就是weixinqq.com
设置全局变量
6.2 接口关联
- 接口关联:需要手动关联
就是一个接口的返回结果有其他接口的参数,那么需要自己去复制该值
使用JSON提取器解决手动接口关联
还可以用正则表达式实现接口关联
6.3 内置动态参数以及自定义动态参数
- 参数需要手动修改
自定义动态参数
七、Postman断言
在断言中获取自定义动态参数的方式
将参数设置为全局变量,在断言中获取该全局变量,就可得到参数的值
全局断言
当所有接口都有相同的断言时,代码一样。就可以将该断言设置为全局断言。
八、Postman操作
8.1 Postman批量运行测试用例
注意:批量运行测试用例时,文件上传接口会做如下操作,不然会报错。
8.2 Postman数据驱动之CSV文件和JSON文件处理
拿一个接口来操作
- 创建一个data.csv文件
- 该接口有3个参数,我们接下来要挨个设为null去看返回结果是什么,如:当grant_type为null时,执行接口,返回errcode为41004,在data.csv文件记录errcode,以此类推,appid为null,secret为null
- 修改参数值,因为取得是data.csv里的值
- 在批量运行测试用例里选择data.csv文件
data.csv还可以是data.json,只是数据格式变为了json而已
8.4 必须带请求头的接口测试
postman不能发送https请求时,关闭这个
在访问某个百度页面时,postman发送该请求,发现能发送但是页面不是浏览器显示出来的页面。这个时候应该带上请求头
可以将所有请求头复制到
然后可以一个一个试,看哪个请求头带了才能正常显示页面。
8.5 Postman接口Mock Server服务器
Mock模拟:当后端的接口还未开发完成,前端的业务需要调用后端的接口时。可以用Mock模拟接口
8.5 Cookie鉴权
8.6 Newman命令
postman是专为接口测试而生,newman是转为postman而生,newman可以让postman的脚本通过非GUI(命令行)的方式
常用参数:
- -e:引用环境变量
- -g:引用全局变量
- -d:引用数据文件
- -n:指定测试用例迭代的次数
- -r cli,html,json,junit --reporter-html-export:指定生成html的报告