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

一、工具:

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

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

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

相关推荐
测试者家园37 分钟前
ChatGPT生成接口文档实践案例(二)
软件测试·chatgpt·llm·测试用例·测试图书·质量效能·用chatgpt做测试
是店小二呀1 小时前
【Linux】Linux开发利器:make与Makefile自动化构建详解
linux·运维·自动化
m0_675988233 小时前
Leetcode3218. 切蛋糕的最小总开销 I
c++·算法·leetcode·职场和发展
测试者家园5 小时前
ChatGPT与Postman协作完成接口测试(一)
软件测试·chatgpt·接口测试·postman·用chatgpt做软件测试·测试图书·质量效能
黑客老陈5 小时前
面试经验分享 | 北京渗透测试岗位
运维·服务器·经验分享·安全·web安全·面试·职场和发展
Simp1e_a7 小时前
最大转矩电流比(MTPA)
科技·自动化·硬件工程·能源·制造
CIb0la10 小时前
GitLab 停止为中国区用户提供 GitLab.com 账号服务
运维·网络·程序人生
测试杂货铺11 小时前
Jmeter压测实战:Jmeter二次开发之自定义函数
自动化测试·软件测试·测试工具·jmeter·职场和发展·测试用例·压力测试
PieroPc11 小时前
Python 自动化 打开网站 填表登陆 例子
运维·python·自动化