接口自动化测试(2)
一、工具:
1.工具介绍
postman :很主流的API测试工具,也是工作里面使用最广泛的研发工具。
JMeter:
2.安装postman:
安装好直接打开,不用注册。
二、通信模式:
1、同步通信:
客户端请求服务端必须有回应,在回应之前不能做别的操作,有缺陷,会造成排队、等待、堵塞。
当任务太多时,服务器压力太大,可能会造成崩溃,为了防止崩溃这时就需要线程池技术,我们现在的软件都是使用这种技术。
线程池技术:(所有的请求都是task,每个task都是一个线程)线程池指定同时执行最大任务数。(如服务器指定最大任务数为90,客户端发来100个任务数,剩下的10个采取队列机制(先进先出原则))
queue:队列(先进先出的原则)
2、异步通信:
客户端向mq消息队列发送数据(商品名、价格),服务端从mq消息队列获取数据,向mq消息队列回应(扣款成功),mq消息队列向客户端回应(支付成功)
主流的MQ消息中间件:
Kafka、RabbitMQ、ActiveMQ
APache是Apache软件基金会的一个开放源码的网页服务器
Kafka在大数据领域主要使用在实时流数据方面非常优秀,能够处理千万亿的数据
RabbitMQ主要应用于一般的服务,对数据的一致性、可靠性、安全性要求高。
三、请求与响应
1.在网页中抓取网络请求
京东网为例:右键检查→Network→刷新→www.jd.com
2.客户端向服务端发送Request请求:
2.1作用:
客户端(app、浏览器)发送请求给服务器时,使用的协议——http请求协议。
规定发送给服务器的数据传输的语法格式。
2.2格式:
1、请求方法
2、请求地址:(url:http协议+域名+资源路径)
3、请求头: Key:Value格式
User-Agent:描述请求发送端的浏览器类型
Content-Type:描述请求参数的数据类型 (json数据格式;form表单数据;xml)
4、请求参数
post和put大部分有请求参数(在postman中有请求参数的方法需要在请求头中添加类型,在请求体中选择类型)
get和delete大部分没有请求参数
postman的介绍:(根据接口文档、模拟客户端向服务器发送请求)
3.请求方法:
常用的请求方法有8种,最常用的有4-5种:
3.1 GET请求方法:获取资源
例1:
步骤1:打开京东网,在获取到的数据种找一个图片类型pgn,获取请求地址复制到postman中用:
步骤2:在postman中选GET方法,粘贴获取到的地址,点击send就可以获取到图片了:
query params
例2:有请求参数的GET方法
http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?op=getMobileCodeInfo
步骤1:在接口文档中获取方法和地址:(协议加第二行的域名加第一行的资源路径
步骤2:在postman中选择GET方法,复制地址,点击send会自动出现请求参数(KEY),我们进行填写(如下图的VALUE部分)
3.2 POST请求方法:添加资源(对服务端已存在的资源也可以做修改和删除操作)
请求方法:
请求地址:
请求头:
表现形式为key-value的形式
在请求头中关注”Content-Type“来获取请求参数的类型,如:
json数据格式:application/json
表单格式:application/x-www-form-urlencoded
XML数据格式:text/xml
请求参数:
(在postman请求体中选择数据类型时:form格式直接选择x-www-form-urlencoded,xml和json格式需要先点raw再选)
例1:http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?op=getMobileCodeInfo
步骤1:在接口文档中获取:请求方法;请求地址(地址要加协议);请求头中获取请求参数类型;具体的请求参数:
解析接口文档总结一下获取到的内容:
地址:http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx
方法:POST
请求头:
数据格式:Content-Type: text/xml; charset=utf-8
请求参数:
<?xml version="1.0" encoding="utf-8"?>
步骤2:打开postman工具:
选择请求方法
粘贴请求地址(前面加http协议)
点请求头,选择获取到的数据类型(form格式直接选择x-www-form-urlencoded,xml和json格式需要先点raw再选)
在请求体中,选响应的数据数据类型,填写具体的请求参数
例2:
http://101.43.158.84/#/login 13484545195 asd888
步骤1:
步骤2:在postman中选择方法、填地址(要填协议http)、在请求头中添加数据类型、在请求体中选择参数类型、粘贴参数
2.3.3 PUT:修改资源
2.3.4 DELETE:删除资源
2.3.5 OPTIONS:路由映射
3.服务端响应客户端:
3.1作用:
服务器端,针对客户端发送的http请求,回发响应数据——http应答
规定回发给客户端的数据组织格式
3.2格式:
1、协议状态码
2、响应头 (key:value)
Content-Type:描述响应体中的数据类
3、响应数据(绝大多数不为空。请求成功:回发数据,失败:回发错误信息)
4、响应时间(记):
指的是客户端发送的时间加上服务端响应回复客户端请求的时间之和。以毫秒为单位。
响应数据的大小以kb为单位。