⼀、使⽤postman进⾏接⼝测试
接⼝测试
(⼀)接⼝测试
(1)服务器端(server):在使⽤别⼈的服务器上,例如APP客户端,服务端在腾讯的服务端上,上的账号信息,聊天记录均存储在服务端上;⽤户A发送1条信息到服务端上,服务端再把这条信息转发到⽤户B上。
服务器使⽤的语⾔分别为:Java、Python、PHP、Go、C、C++等等
(2)客户端(client):⼿机上的APP,⽹站
客户端使⽤的语⾔分别为:object-c(IOS)、Android、HTML、CSS、JS等等
(3)接⼝:通过客户端与服务端进⾏交互的
(4)这么多种类的语⾔,造成⽆法识别,需要通⽤的数据类型进⾏解析:json{},没有json之前⽤的XML格式
XML:通⽤的数据类型
<title>接⼝测试</title>
<content>服务器与客户端需要接⼝进⾏交互</content>
JSON:通⽤的数据类型,以⼀种键值对来展⽰:
{
"title" : "接⼝测试",
"content" : "服务器与客户端需要接⼝进⾏交互"
}
(⼆)如何测试接⼝
1、接⼝:是由客户端和服务器来进⾏交互的,以及接⼝返回的数据⼀般都是json格式的数据类型。
2、接⼝测试基本步骤如下:
(1)在接⼝⽂档中或者其它地⽅,拿到接⼝的URL地址
(2)查看接⼝是⽤什么⽅式发⽣请求(例如:get和post请求)
(3)添加请求头,请求体
(4)发送查看返回结果,校验返回结果是否正确
3、打开接⼝⽂档(参考:hp)
(1)URL
(2)请求⽅式
(3)请求参数
(4)get请求
在浏览器上,直接输⼊接⼝⽂档中的请求URL:,页⾯报错提⽰“必填参数未填写!请查看接⼝⽂档!”(如图所⽰)
基于上⾯中的url链接中不带必填参数报错,故需在URL中补上必填参数:
有多个必填参数时,需要在URL中添加其他必填参数⽤“&”拼接,例如:
机器学习PAI控制台:
(5)post请求
复制URL在浏览器打开,报错“请求⽅式错误!请查看接⼝⽂档”,例如如图显⽰
这时候需要借助postman接⼝⼯具进⾏测试,前提条件:需要本地安装postman应⽤软件(注意:如果是POST请求,选择Params填写参数,这时URL中会⾃动带上该参数信息,这种请求⽅式应该是GET请求⽅式⽽不是POST请求,如图:)
POST请求,应该选择Body选项,勾选“form-data”或者“x-www-form-urlencoded”填写必填参数,如图所⽰:
POST请求,⽤户注册,如图:
POST请求,⼊参为json类型,如图:
查询是否存在该学⽣信息:
POST请求,Body选择form-data,Key由Text切换File格式,进⾏⽂件上传,(注意:x-www-form-urlencoded没有File格式,只有Text选项,不能上传多媒体⽂件)如图:
4、浏览器进⾏抓包
(1)浏览器打开检查或者开发者⼯具,再或者检查元素等控制台
(2)⼀般查看调⽤接⼝Network(⽹络)下⾯的XHR调⽤了哪些接⼝
(4)利⽤Postman接⼝⼯具进⾏调⽤接⼝:get_group_list
(5)接⼝search_group_members,多个参数进⾏接⼝测试:
(6)cookie和session
cookie:在浏览器存放⾃⼰本地信息数据的⼀个键值对(key-value)的地⽅
保存时间:根据需要设定
保存位置:客户端
session:存放在服务端的⼀个键值对
保存时间:⽤户活动时间+⼀段延迟时间(登录时提⽰⽤户保存时间7天时间)
保存位置:服务器端
5、GET请求⽅式和POST请求⽅式的区别:
(1)GET请求没有请求体,只要请求头和URL:host/api/xxx?name=xxx
(2)POST请求是有请求头、请求体
(3)GET请求没有POST请求安全
(4)GET请求有参数长度限制,POST没有
app接口测试工具(三)postman接⼝⾃动化
1、测试银⾏项⽬、⾦融项⽬会遇到加密参数,需要:
(1)参数去掉加密
(2)提供⼀个⼯具,产⽣加密后的参数
(3)⾃⼰了解加密算法,然后⾃⼰加密
2、Postman中⼿动配置环境变量:
(1)在Postman中,有Environment和Environment,⽤于实现不同环境的管理,不同服务器环境分别为:
Production ⽣产环境
Development 开发环境
Local 本地局域⽹环境
(2)环境快速查看,如图1所⽰:
图1
(3)使⽤Environment实现多服务版本管理,点击右上⾓的设置,点击【Manage Environments】,和图2所⽰:
图2
(4)在弹窗【MANAGE ENVIRONMENTS】界⾯中,右下⾓点击“Add”,如图:
(5)在“Add Environment”中,填写变量名和变量值,如图:
(6)配置好变量名称和变量值后,可以在请求URL中进⾏参数化:
(6)编写脚本,脚本参数化,如同
(7)点击runner,配置运⾏参数,如同:
(8)查看最后的运⾏结果,状态码为200 ok,表⽰运⾏成功,如图:
图中有个字段是:“This requests does not have any tests.”
需要检查:
第⼀步:检查是否变量名称是否对应;
第⼆步:是否点击了保存,再点击Runner
第三步:是否添加了校验
(9)添加校验,设置检查
(10) postman断⾔:
(11)点击【Tests】按钮,右边栏有个snippets栏,⾥⾯是postman内置的测试脚本,辅助接⼝测试:A:判断状态码
Status code : Code is 200
对应的脚本:
pm.test("Status code is 200", function () {
});
B:返回的response包含内容
Response body : Containing string
对应的脚本:
<()).to.include("string_you_want_to_search");
});
C:返回的json数据中的值
Response body : JSON value check
对应的脚本为:
pm.test("Your test name", function () {
var jsonData = pm.response.json();
});
D:响应的内容等于⼀个字符串
Response body : is equal to a string
对应的脚本:
});
E:检查响应头中是否有Content-Type字段
Response headers : Content-Type header check
对应的脚本:
});
F:判断响应的时间少于200MS
Response time is less than 200ms
对应的脚本:
});
(12)新建集合便于将个别请求进⾏分组,如图:
(四)HTTP
1、http和https的不同之处:
(1)安全性不同:
http:普通的http请求,,信息明⽂传输信息,不安全;
https:具有安全性的ssl加密传输协议,为浏览器和服务器之间的通信加密,确保数据传输的安全;(2)连接⽅式不同:
http的连接很简单,是⽆状态的;
https是由SSL+HTTP协议构建的可进⾏加密传输、⾝份认证的⽹络协议;
(3)端⼝不同:
http协议:使⽤的端⼝是80;
https协议:使⽤的端⼝是443;
(4)证书申请⽅式不同:
http协议:免费申请;
https协议:需要到ca申请证书,⼀般免费证书很少,需要交费。
3、接⼝HTTP参数
http请求⽅式:
get --- 通过请求URL得到资源
POST --- ⽤于添加新的内容
PUT ---⽤于修改某个内容
DELETE---删除某个内容
CONNECT---⽤于代理进⾏传输,如使⽤SSL
OPTIONS---询问可以执⾏哪些⽅法
PATCH---部分⽂档更改
PROPFIND(WebDAV)---查看属性
PROPPATCH(WebDAV)---设置属性
MKCOL(WebDAV)---创建集合(⽂件夹)
COPY(WebDAV)---拷贝
MOVE(WebDAV)---移动
LOCK(WebDAV)---加锁
UNLOCK(WebDAV)---解锁
TRACE ---⽤于远程诊断服务器
HEAD --- 类似于GET,但是不返回body信息,⽤于检查对象是否存在,以及得到对象的元数据http请求头(headers)
请求头包含许多有关客户端环境和请求正⽂的⼜⽤信息。如图所⽰:例如语⾔种类和状态码
http请求体(body):请求体即为请求等正⽂。
json 格式
xml 格式
html 格式
⼆进制格式(多⽤于图⽚)
字符串格式
4、⽤户接⼝可以通过以下4种不同⽅式的请求来做不同的事情:
(1)获取数据,⽤“GET”⽅式,成功了返回HTTP状态码:200
(2)创建数据,⽤“POST”⽅式,成功了返回HTTP状态码:201
(3)修改数据,⽤“PUT”⽅式,成功了返回HTTP状态码:203
(4)删除数据,⽤“DELETE”⽅式,成功了返回HTTP状态码:204
5、HTTP状态吗:
(1)请求消息(1字头)例如:100 Continue(请继续)
(2)请求成功(2字头)例如:200 OK(请求已成功)
(3)重定向(3字头)例如:300 Multiple Choice(多项选择,会返回⼀个选项列表)
(4)客户端请求错误(4字头)例如:400 Bad Request (错误请求) 403 Forbidden(禁⽌) 404 Not Found(没有到)(5)服务器错误(5、6字开头)例如:500 Internal Server(内部错误) 502 Bad Gateway(代理或者⽹关下⼀链路收到未响应)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论