接口测试01

一:接口的定义:统称为API,程序与程序之间的对接,又称为灰盒测试,偏逻辑测试

为什么做接口测试:当界面功能没有出来时,测试人员可以尽早做接口测试,可以节省时间,可以突破前端的一些限制测试不到的场景

二:测试接口主要测哪方面:
前端和后端:测试前端显示后端的数据是否正确

系统内部的组件:测试相关逻辑是否处理正确

系统与系统之间(内部与外部)测试相关联的逻辑处理是否正确

三:为什么要做接口测试(接口测试的好处)
1.接口通过工具来测试,它可以发现我页面发现不了的问题
2.可以检查系统异常处理能力
3.在接口测试完备的情况,页面改动不会影响后端的功能
4.可以检查系统的安全性,稳定性
5.可以模拟多用户或者单用户对同一个接口发起并发请求操作
6,可以修改参数,突破前端对接口的入参的限制,利用各种条件组合对接口进行测试


四:如何设计接口用例

1.业务逻辑覆盖(包括正常,异常场景)

2.参数的验证-------边界,等价
2.1、参数的类型要求(数字,浮点型,字母、符号、空格、日期)
2.2、参数的长度、取值范围
2.3、日期格式
2.4、参数的配合说明,有些参数会与其他参数存在关联
2.5、参数是否必填
3.数据的验证=====返回的参数数据要与数据库的数据是否一致

4.性能测试(响应时间、吞吐量、并发数、资源要求)

5.安全测试(权限验证、SQL注入、病毒)

6.翻页器中翻页页码和页面是否一致

7.同一个请求不同时间操作返回的内容是不是一样

8.接口中包含图片或者视频检查是否被压缩

五:TCP/IP的五层协议模型
物理层-数据链路层-网络层-传输层-应用层

传输层中的TCP和UDP有什么区别:
1.连接方面的区别:
TCP面向连接(在传输的时候需要建立连接),建立的过程是三次握手和四次挥手

三次握手:客户端请求连接---服务端确认---客户端确认---可以开始连接

四次挥手:客户端请求断开---服务端同意----服务端释放连接---客户端确认断开---byebye

UDP是无连接(在传输的时候不需要连接)比如:广播,音频

2.传输效率方面

TCP传输效率较低,适用于要求比较高的内容传输

UDP效率较高,适用于要求内容和实效性较高的通信或者广播

3.安全方面
TCP传输数据是无差错、不丢失、不重复、按照先后顺序传输

UDP只是尽最大努力交付,不保障可靠交付

六:http和https的区别:
1.http是超文本传输协议,默认端口号是80
https是超文本传输安全协议,默认端口号是443

2.传输内容:
http不加密传输
https加密传输


3.安全性

http连接简单,没有状态,明文传输,不安全
https采用http+SSL/TLS协议加密传输、安全

4.http免费
https需要申请ca整数,需要付费

七:常用的接口测试工具:
单接口:fiddler 、 postman、 jmeter soapui

接口自动化:fiddler、postman、jmeter、python、java


八:请求头
1.接口请求方式:post 接口的域名Host: cms.duoceshi.cn
接口名称:/cms/manage/loginJump.do
域名加接口名称就是接口地址:http://cms.duoceshi.cn/cms/manage/loginJump.do

HTTP/1.1:请求协议版本号

Connection: keep-alive 保持连接状态

Content-Length: 33 请求信息正文的长度

Accept: application/json, text/javascript, */*; q=0.01 接口可接受的MIME类型

X-Requested-With: XMLHttpRequest 使用什么格式的请求


User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36 浏览器的类型


Content-Type: application/x-www-form-urlencoded; charset=UTF-8 传输文件的类型
x-www-form-urlencoded:表示表单类型

Origin: http://cms.duoceshi.cn 本地域名网址

Referer: http://cms.duoceshi.cn/cms/manage/loginOut.do 包含一个URL。表示该接口的上一个接口

Accept-Encoding: gzip, deflate 浏览器能够解释的编码格式

Accept-Language: zh-CN,zh;q=0.9 浏览器能够解释的语言


Cookie: JSESSIONID=2FFBA8A84A3106EA8995DA85A636A27F 请求时服务器生成的一个标识


九:请求体===请求参数--以键值对存在的
userAccount=admin&loginPwd=123456


十:响应头

HTTP/1.1 200 请求协议版本号 200===状态码(代表请求成功)

Server: nginx 服务器

Date: Mon, 27 Mar 2023 09:01:58 GMT 时间

Content-Type: application/json;charset=UTF-8 传输文件类型和编码格式

Connection: keep-alive 保持连接状态

Set-Cookie: JSESSIONID=EB8A2B91632F9B7569B0A861E2DD9C00;path=/cms;HttpOnly
请求时服务器生成的一个标识Set-Cookie


{"code":"200","msg":"登录成功!","model":{}} 响应体(返回参数) json格式

十一:接口的状态码:

2xx 表示接口请求成功,服务器有响应

3xx 表示重定向,访问的接口不存在但是重定向到其他接口去了

4xx 表示客户端错误,客户端请求的url地址错误或者请求的资源不存在,常见的报错状态码有403,404

5xx 表示服务器端错误,应用场景,网关错误,服务器端异常等

十二:post和get请求的区别

1.url可见性:
get,参数url可见

post,url参数不可见

2.数据传输上:
get,通过拼接url进行传递参数

post,通过body体传输参数

3.缓存性:
get请求时可以缓存的
post请求不可以缓存

4.后退页面的反应:
get请求页面后退时,不产生影响
post请求页面后退时,会重新提交请求

5.传输数据大小:
get一般传输数据大小不超过2k-4k(根据浏览器不同,限制不一样,但是相差不大)

post请求传输数据大小根据php.ini配置设定,也可以无限大

6.安全性:
get参数在url可见,安全性比较低

post参数放在body,安全性比较高


十三:postman组件get请求,或者说get请求是怎么样的?
1.请求方式get
2.网址写入接口url
3.在params输入入参
4.发送send请求
5.查看响应的报文(响应头和响应体)

十四:postman组件post请求,或者说post请求是怎么样的?
1.请求方式post
2.网址写入接口url
3.在body输入入参(有form表单,text文件,josn文本)
4.发送send请求
5.查看响应的报文(响应头和响应体)

post请求中的body传参表单和row的不同点

1.表单格式有form-data,可以传文本键值对和文件,当选择这种方式,请求头的Content-Type自动回转成application/x-www-form-urlencoded

2.表单格式有x-www-form-data,可以传文本键值对和文件,当选择这种方式,请求头的Content-Type自动回转成application/x-www-form-urlencoded

3.raw可以传文本,json格式文本html格式文本,xml格式文本,当选择json方式后,请求头的Content-Type会自动化转化成application/json

4.binary可以传内容是二进制的文件

 

十五、同步接口和异步接口

1、同步接口:发起一个接口请求必须要等到响应结果才能发起下一个接口请求

2、异步接口:发起一个接口请求不需要等到响应结果就能发起下一个接口请求

 

posted @ 2023-03-27 19:50  jormen  阅读(49)  评论(0编辑  收藏  举报