请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
  • 便民服务
  • 关注我们
  • 社区新手
接口的定义:
1,什么叫接口:接口统称为api,程序与程序之间的对接、交接;接口测试主要用于
检测外部系统与系统之间以及内部各个子系统之间的交互点;主要是为了检验不同
组件(模块)之 间数据的传递是否正确, 同时接口测试还要测试当前系统与第三方
系统的对接,比如和:支付宝、财付通、微信、银联。
2,为什么做接口测试:当界面功能没出来时,测试人员可以做接口测试,t是节省时
间,二是测试- -些界面功能测不到的场景。
3,如何做接口测试?
目前项目前后端主要是基于http协议的接口,所以测试接口时主要通过工具或代码模
拟http请求发送与按收,来实现手工接口测试和自动化接口测试。

1、ui自动化不会去连接数据库
2、服务端(数据库的数据)需要显
示在ui界面就需要调接[ ]
3、ui界面==》功能测试
接口层==》接口测试
代码层==》单元测试

HTTP : 超文本传输协议,端口号为80
Telnet :远程登录协议
FTP/TFTP:用于文件传输的协议
DNS:域名解析
SMTP:邮件服务协议
TCP:传输控制协议,面向连接的。
UDP:用户数据包协议。无需建立连接就可以发送数据包的方法。
IP:网际互联协议
arp:地址解析协议

TCP传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠
的、基于字节流的传输层通信协议,电脑是通过增删改查这四种方式与服务器进行
交互的。其中中间有一个TCP传输层,让电脑和服务器建立连接的,它是采用三次握
手确认建立一个连接。四次挥手,终止TCP连接。



TCP协议是建立在客户端和服务端之间的,在进行数据传输之前必须要建立连接。
SYN:是请求同步包,意思是同步客户端的数据到服务端。
seq:是序列号,相当于传了几个参数/变量,就是说传输了一个有标记的东西。
ACK:是确认同步包。相当于服务端收到客户端的请求包之后,进行确认,确认之后在参数上做了修改返回给客户端。(就是数据包)
established:建立连接,客户端跟服务端建立了连接。


常见的协议以及端口:
1、HTTP协议是Hyper Text Transfer Protocol (超文本传输协议)的缩写,是用
于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送
协议,HTTP协议的端口号为: 80
2、HTTP协议的工作原理:
HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向
HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客
户端发送响应信息。

3、HTTPS (全称: Hypertext Transfer Protocol Secure,超文本传输安全协议)
WEB服务存在http和https两种通信方式,http对于传输采用不加密的方式,https
默认采用443端口,在HTTPS数据传输的过程中,需要用SSL/TLS对数据进行加密
和解密。


5、其他的协议和端口
telnet:远程登入协议   23
FTP:文件传输协议   21
SMTP:邮件传输协议  25
DNS:域名解析协议   53
POP3:邮件服务器   110
UDP:用户数据报协议
OSI:网络协议
IOS:苹果操作系统
ISO:镜像文件格式


常见的接口测试工具
fiddler (抓包软件, 也可以用来测试接口)
postmein (以前属于谷歌浏览器的插件,最常用的一款接测试工具)
jmeter (市面 上最流行的接口和性能测试工具)
Charles (Mac系统 苹果电脑用这个抓包工具用的比较多)
soapui (soapUl可以测自动化和性能, 也比较常用)
wireshark (抓包软件, 也可以用来抓取tcp和udp, tls协议的数据)


五、接口的类型:
1、http接口:基于http协议的开发接口分为: http和https的接口, 请求报文都
是key-value形式的,返回报文一般都是json串和文本格式等等。
2、RPC接口: Remote Procerure Calls远程过程调用(RPC)是一种协议
3、RMI: RMI (Remote Method Invocation,远程方法调用) RMI是针对于java语言的,RMI 允许您使用Java编写分布式对象
4、Webservice接口: Webservice是系统对外的接口
5、RESTful风格的接口

6、接口的测试流程:
接口测试需求分析
接口测试需求评审L
编写接口测试计划
编写接口测试用例/接口测试用例评审
用例导入接口测试工具(执行用例)
发现BUG提交到禅道
编写小结测试报告
编写总结测试报告


六、接口测试抓包工具之fiddler
1、fiddler的简介:
Fiddler是一款免费且功能强大的数据包抓取软件。
2、fiddler抓包工具的原理:
Fiddler是位于客户端和服务器端之间的HTTP代理,它可以设置断点、 修改请求
的数据和服务器返回的数据,Fiddler启动后会自动将代理服务器设置成本机,默
认端口为8888。


接口的请求方法(HTTP1.1)
GET (查) 请求指定的页面信息,并返回实体主体,请求参数- -般放在ur|地址栏的后面。
POST (增)向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。
HEAD  类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
PUT (改)从客户端向服务器传送的数据取代指定的文档的内容。
DELETE (删)请求服务器删除指定的页面。
CONNECT  HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
OPTIONS  允许客户端查看服务器的性能。
TRACE  回显服务器收到的请求,主要用于测试或诊断。


5、请求方法之get请求
1)请求的数据一般会显示在地址栏
2)安全性差,请求的入参信息全部暴露在URL地址栏当中
3)请求的数据量比较小入

6、请求方法之post请求
1)请求的数据一般不会显示在地址栏里面,会把数据封装在表单里面(入参放在
requests body当中)再提交;
2)安全性比较高
3)请求的数据量比较大


7、HTTP请求头和请求体、响应头和响应体
1)请求头部信息:
post :表示请求的方法
HTTP/1.1 :表示超文本传输协议版本为1.1版本URL统一资源定位符
Host:域名Host表示请求的服务器网址心
Content-Length:用来说明传输的正文大小或者内容长度
Connection: Keep-Alive Connection表示客户端 与服务连接类型
Keep-Alive:表示持久连接
Accept: text html,application/xhtml+ xml,application/xml;q=0.9,*/*;q=0.8
浏览器支持的MIME消息内容类型分别是text html、application/xhtml+ xml、
application/xml和*/*.优先顺序是它们从左到右的排列顺序


Cookie:设置服务器使用Set-Cookie发送的http cookie Cookie的作用就是用于解决
记录客户端的用户信息
当用户下一-次访问该web页面时,可以在cookie中读取用户访问记录。
2)请求体部信息
userAcount= admin&userPwd= 123456
3)响应头部信息
HTTP/1.1:表示超文本传输协议版本为1.1版本URL统-资源定位符
Server:服务器名称Server: Apache/2.4.1 (Unix)
Set-Cookie:设置HTTP Cookie Set-Cookie: UserlD= JohnDoe; Max-Age=3600;
Version= 1


8、HTTP状态码详细解释:
200请求已成功,请求所希望的响应头或数据体将随此响应返回;
201请求已经被实现,而且有一个新的资源经依据请求的需要而建立,且其
URI已经随L ocation头信息返回;
302请求的资源现在临时从不同的URI响应请求;
400语义有误,当前请求无法波服务器理解;除非进行修改,否则客户端不应该
重复提交这个请求/请求参数有误;
403服务器已经理解请求,但是拒绝执行它;
404请求失败,请求所希望得到的资源未被在服务器上发现;
500服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理;
501服务器不支持当前请求所需要的某个功能;
505服务器不支持,或者拒绝支持在请求中使用的HTTP版本;


3) raw
可上传任意格式的文本,可以上传text、json、 xml、 html、 JavaScript等各种文
本类型
4) binary
等同于Content-Type:application/octet- stream,只可上传进制数据,通常用来上传文件
由于没有键值,所以一-次只能上传一个文件


6、Tests中增加断言
1)断言方式一:断言响应的结果中包含某个字符串
tests["Body ratches string"] = responseBody.has("string. you _want to search")
2)断言方式二:断言响应状态码等于200
tests["Status code is 200"] = responseCode.code === 200
3)断言方式三:断言响应时间小于200ms
tests["Response time is less than 200ms"] = responseTime < 200




分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册