接口自动化测试 —— 工具、请求与响应

一、工具:

1.工具介绍

postman :很主流的API测试工具,也是工作里面使用最广泛的研发工具。

JMeter:

ApiPost:

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格式:

python 复制代码
1、请求方法
2、请求地址:(url:http协议+域名+资源路径)
3、请求头:  Key:Value格式
        User-Agent:描述请求发送端的浏览器类型
        Content-Type:描述请求参数的数据类型 (json数据格式;form表单数据;xml)
     referer:
     cookie:
4、请求参数
    post和put大部分有请求参数(在postman中有请求参数的方法需要在请求头中添加类型,在请求体中选择类型)
    get和delete大部分没有请求参数

postman的介绍:(根据接口文档、模拟客户端向服务器发送请求)

3.请求方法:

常用的请求方法有8种,最常用的有4-5种:

GET请求方法:获取资源

POST请求方法:添加资源(对服务端已存在的资源也可以做修改和删除操作)

PUT:修改资源

DELETE:删除资源

OPTIONS:路由映射

3.1 GET请求方法:获取资源

例1:

步骤1:打开京东网,在获取到的数据种找一个图片类型pgn,获取请求地址复制到postman中用:

步骤2:在postman中选GET方法,粘贴获取到的地址,点击send就可以获取到图片了:

GET请求参数:

query params

步骤1:在接口文档中获取方法和地址:(协议加第二行的域名加第一行的资源路径)

步骤2:在postman中选择GET方法,复制地址,点击send会自动出现请求参数(KEY),我们进行填写(如下图的VALUE部分)

(GET方法的请求参数 在postman中是写在Params中的)

3.2 POST请求方法:添加资源(对服务端已存在的资源也可以做修改和删除操作)

python 复制代码
请求方法:
请求地址:
请求头:
    表现形式为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:在接口文档中获取:**请求方法;请求地址(地址要加协议);请求头中获取请求参数类型;具体的请求参数:

解析接口文档总结一下获取到的内容:

方法:POST

请求头:

数据格式:Content-Type: text/xml; charset=utf-8

请求参数:

<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="++++http://www.w3.org/2001/XMLSchema-instance++++ " xmlns:xsd="++++http://www.w3.org/2001/XMLSchema++++ " xmlns:soap="++++http://schemas.xmlsoap.org/soap/envelope/++++ "> soap:Body <getMobileCodeInfo xmlns="http://WebXml.com.cn/"> <mobileCode>string</mobileCode> <userID>string</userID> </getMobileCodeInfo> ++++/soap:Body++++ ++++/soap:Envelope++++

步骤2:打开postman工具:

1、选择请求方法

2、粘贴请求地址(前面加http协议)

3、点请求头Headers

4、点Body,选择获取到的数据的类型(form格式直接选择x-www-form-urlencoded,xml和json格式需要先点raw再选)选响应的数据数据类型,填写具体的请求参数

例2:

**步骤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为单位。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
这个DBA有点耶2 分钟前
从DBA到数据架构师(五):数据架构演进中的技术债务管理
数据库·程序人生·云原生·架构·dba·数据库管理员
HiDev_3 分钟前
【非标自动化】2、认识元器件(固态继电器)
运维·自动化
明达智控技术9 分钟前
国产 PLC 落地立库自动化,MC5000边缘智能控制器破局
运维·自动化
cdprinter1 小时前
信刻——留置谈话音视频数据集中自动刻录归档解决方案
自动化·音视频
桐桐桐2 小时前
PDF 翻译工具横评与自建批量方案:从在线工具到 Python 自动化
python·pdf·自动化
Lzh编程小栈2 小时前
【嵌入式底层】SPI超透彻详解:通信原理、四线结构、四种模式、寄存器底层 + 面试全集
c语言·stm32·单片机·面试·职场和发展
汽车仪器仪表相关领域3 小时前
KRYPTON坚固型IP67 EtherCAT总线数据采集模块:工业级分布式采集方案
分布式·功能测试·汽车·压力测试·可用性测试
安科瑞-小李4 小时前
铁路智能运维进化路线:自动化→状态可视→预测维护
运维·自动化·数据采集·能耗可视化
Dr.kangder4 小时前
嵌入式面试总结(十八)——JTAG调试
嵌入式硬件·面试·职场和发展·架构·嵌入式
酷可达拉斯5 小时前
自动化运维-Ansible任务控制与流程控制
运维·自动化·ansible