接口测试分为两种:
测试外部接口:系统和外部系统之间的接口。如:电商网站:支付宝支付。
测试内部接口:系统内部的模块之间的联调,或者子系统之间的数据交互。
测试重点:测试接口参数传递的正确性,接口功能的正确性,输出结果的正确性,以及对各种异常情况的容错性和权限控制。
接口测试过程?
比如我们出去吃饭,餐饮服务
接口请求过程:
- 饭馆地址(接口地址)
- 选择菜系:东北菜、四川菜、湖南菜(接口请求方式)
- 选择位置:靠窗、圆桌、包间(指定请求头)
- 桌上的菜:锅包肉、夫妻肺片、辣椒炒肉(请求参数)
接口响应过程:
- 响应状态码:1、非常好吃,2 一般, 3 难吃。
- 响应信息:非常好吃,一般,难吃
- 响应头:单号,顾客编号
- 响应主体:用餐感受的文字描述
postman + newman + jenkins + git/svn
jmeter + ant + jenkins + git/svn
postman简介:
postman一款功能强大的接口测试工具。专为接口而生。
两个版本可以安装:
Postman Chome app(chorme浏览器, 翻墙)不推荐
Postman native app 客户端的安装方式:https://www.postman.com/downloads/
注册,登录,只有登录之后才能使用云服务的功能
三、接口测试流程- 拿到接口文档,使用抓包工具:F12,Fiddler, charles,熟悉接口业务,接口地址,参数,请求头信息,请求方式,鉴权方式;
- 编写接口用例以及评审;
- 使用接口测试工具执行接口测试;
- 输出接口测试报告。
鉴权码:鉴权你受有访问此接口的权限的一个字符串码。
获取鉴权码的方式:
- 有一个专门的获取token鉴权码的接口
- 登录之后自动生成token鉴权码。
get请求以?方式传参,多个参数之间用@分隔。
请求功能页签:
Params:get请求参数
Authorization: 是否验证是否拥有从服务器访问所需数据的权限。
Headers:请求头。
Body:(post请求传参)
- form-data:用于表单:键值对,上传文件;
- x-www-form-urlencoded:表单:键值对;
- raw:传各种其他类型的参数,比如:Text,javascript,json,html,xml;
- . binary:用于上传二进制文件。
pre-request script:接口请求之前的js脚本。
Tests:接口请求之后的js脚本,主要用于断言(断言接口是否请求成功)
Settings:对请求的设置
cookie:是postman用于自动管理icookie关联。
响应的功能页签:
Body:响应内容。
pretty:json格式,raw文本格式,proview:网页格式。
cookie:响应的cookie信息。
Headers:响应头
Test Results:断言结果
200:响应状态码
响应信息:ok
响应时间和响应字节数
Console:控制台,用于接口测试调试。
面试题:接口测试中get请求和post请求的区别是什么?
- get请求一般是获取资源,post请求一般是提交资源
- get是通过在地址栏中以?方式传参
- post用body传参get不如post安全
1、全局变量:能够在所有的接口请求里面使用的变量叫全局变量。
2、环境变量:环境变量让代码能够在不同的环境下去执行,环境变量其实也是全局变量。
六、接口关联json提取器和正则表达式:
//1、获得响应正文
var resbody = responseBody;
console.log(resbody);
//2、转换为json对象进行解析
var jsonObj = JSON.parse(responseBody);
console.log(jsonObj.access_token);
//3、获取access_token作为全局变量
pm.globals.set("access_token", jsonObj.access_token);
//4、使用正则表达式解析
var value = responseBody.match(new RegExp('"access_token":"(.*?)"'));
console.log("正则表达式:")
console.log(value[1]);



