接口测试总结

接口测试总结

一、协议部分

1、三次握手

 

2、http请求流程

客户端与服务端建立tcp连接

客户端向服务端request请求

服务端发送response给客户端

客户端与服务端断开tcp连接

3、状态码

200:请求成功

201:添加成功

204:删除成功

301:永久重定项

302:临时重定项

400:Bad Request客服端请求错误

401:Unauthorized无权限访问

403:Forbidden有权限但禁止访问

404:请求资源或地址错误

405:不被允许的请求方法

500:服务端内部错误

504:GateWay Timeout网关延迟

4、断言方式

响应数据、状态协议码、业务状态码

5、请求流程

1)cookie、session、token的区别

cookie的数据是保存在客户端里,因此不安全;

session的数据是保持在服务端里,比cookie更安全

token是基于session基础上开发的,我们可以理解为一个令牌,每次返回的数据都不一样,是一串随机的字符串。

2)cookie的请求流程

以登录为例

通过登录账号与密码登录成功

服务端会生成一个cookieID,并通过set-cookie发送给客户端,

客户端将cookieID保持在本地

客户端在后续访问个人主页的时候,会通过请求头cookie,将cookieID带上发送给服务端,服务端将通过收到的cookieid与本地的cookieID进行对比

若对比一致则继续访问,若不一致则直接返回登录页面

3)session的请求流程

以登录为例

通过登录账号与密码登录成功后,

服务端会生成一个sessionID,并保持在服务端里,并通过set-cookie发送给客户端,

客户端在之后的请求里,会通过请求头cookie,将sessionID带上发送给服务端,服务端将收到的sessionID与保存在服务端的sessionID进行对比

若对比一致则继续访问,若不一致则直接返回登录页面

4)token的请求流程

以登录为例

通过登录账号与密码登录成功后,

服务端会生成生成一个token令牌,通过set-cookie将token发送给客户端,并将token保存在服务端。

当客户端再进行请求时,会通过Aothoriztion请求头,调取token变量,一起发送给服务端,服务端将收到的token与保存在服务端的token进行对比

若对比一致则继续访问,若不一致则直接返回登录页面

二、postman工具

1、获取postman动态参数的过程

以添加产品为例

首先我们填写请求地址、请求头与请求参数,之后再tests中通过pm.environment.set定义动态变量,最后通过{{}}进行调用动态参数

2、postman的接口测试怎么做

首先选择请求方法,填入请求地址、请求头、请求参数后,点击send,得到响应数据,

之后在tests断言中输入业务状态码与协议状态码以及断言后,点击save保存;

最后点击send运行,查看运行结果

3、怎么理解postman里面的collections

一般设置动态参数后,不能单独执行index接口,单独执行的话,响应状态码会显示401(无授权),所以需要集合运行

而集合运行是通过run collections实现的

4、在postman中,怎么调用变量

以登录为例

首先通过填写登录的请求方法、请求地址、请求头与请求参数,运行后得到响应参数里的token令牌,而token令牌是一串随机的数字,是变量;

然后在tests里定义两个变量分别存储服务端返回的数据与token的值;

之后,在其他请求时,通过请求头Authoriztion调用token的值,方法是:JWT {{token}}

5、在postman中,如何获得测试报告

1)通过newman的方式

首先将postman项目集合导出,保存在本地里,如d盘;

然后打开控制台,进入集合保存路径,如d盘,输入命令:newman run 文件名称

之后通过XTML插件,输入命令:newman run 文件名 -r html,导出XTML格式的测试报告

最后,进入本地存储导出测试报告所在的存储盘,打开newman文件夹,将导出的测试报告在浏览器中运行即可

2)newman的安装

命令:npm install -g newman --registry=https://registry.npm.taobao.org

验证:nawman

3)XTML插件安装

命令:npm install newman-reporter-html

三、jmeter工具

1、jmeter怎么做接口测试

首先我们现在添加一个线程组,然后在线程组下添加一个http信息头管理器,在其中填写请求头

之后再添加一个http请求,在其中填写请求方法、请求地址、与请求参数

接着我们再添加一个监听器中的察看结构树,用于察看运行断言结果

最后,我们添加断言中的JSON断言,在其中填写断言,之后运行即可在察看结构树看到运行结果

2、获取jmeter动态参数的过程

1)通过后端处理器中的正则表达式提取器

2)通过后端处理器中的json提取器;比如图书管理系统中bookID是变量;调用变量的方法时:${变量}。

3、在Jmeter中如何得到测试报告

1)进入到testes文件夹,复制路径,打开控制台,进入到tests目录下

2)输入ant,即可输出测试报告,出现build success表示生成成功

3)在生成成功后就可以看到在JMeter文件夹内的test下的report的html文件夹内看到生成的测试报告 

四、代码问题

1、怎么理解Requets里面的post请求方法的data和json

date是表单数据格式,json是处理json数据格式,如果用data格式处理json格式时,可以通过序列化后再处理。

2、怎么理解序列化和反序列化

以字符串为例

序列化是指将python的数据类型转换为字符串的数据类型

反序列号是指将字符串数据类型转换为python的数据类型

以文件处理为例

序列化为文件的读

反序列化时文件的写

3、如何判断是前端问题还是后端问题

请求参数错误,前端问题;返回结果错误,后端问题;返回正确,没有显示,前端问题。

4、如何理解mockserver

mockserver可以理解为测试替身的服务,

而Mock理解为一个替身,它是为了解决不同的单元之间由于耦合而难于开发、测试的问题

Mock既能出现在单元测试中,也会出现在集成测试、系统测试过程中。

5、测试过程中,没有数据怎么办?

解决办法,自己造数据(手动造数据或者代码造数据),自己moco数据。

首先自己造数据,编写HTTP请求的json文件,将其和moco放在同一位置;

之后打开控制台,进入到存放moco和json文件的目录,

运行如下命令: java -jar moco-runner-moco版本 -standalone.jar http -p 指定的端口 -c 文件名

最后,打开postman运行HTTP请求流程

 

posted @ 2022-04-20 09:34  无耿  阅读(113)  评论(0编辑  收藏  举报