接口测试笔记

it2022-05-05  154

json 所有语言都认识的一种数据类型

key value键值对的类型

浏览器中get请求,url+key=value,多个参数之间连接用&

注:只要是get请求都可以在浏览器里直接发

 

一.postman

1.post请求

body form-data 中加参数key和value

入参是json类型的话选择raw, text改为json类型

上传文件body中选择参数类型为文件 ,浏览选择文件

2.get请求参数直接加在url中

3.headers

添加一些额外的信息,比如用什么浏览器访问的

例:

地址:https://qun.qq.com/member.html#gid=859536221

在检查中找到-network-xhr-headers

找到一个接口,找到Request URL、Request Method、cookie、form-data

 

4.如何设置ip

设置按钮--manage envenvironments--globals--输入参数名ip、具体参数--保存

在接口域名出输入{{参数名}}

5.postman中想保存某个接口地址,可以建collection

 

二.cookie

cookie保存在你自己本地的键值对

session是保存在服务端的键值对

三、get和post的区别

http请求

分析:

请求头

    header

    你发出去的请求的额外信息(请求路径、请求方式、浏览器、从哪个地址跳转过去的、你想让服务器给你返回       什么样的数据等)。cookie就是记录这些信息的

请求体

      body-正常发到接口的数据

1.get请求没有请求体,只有请求头

2.get请求没有post安全,因为get请求都把参数写在url里面了(实际上post请求时,在cookie中也能看到)

3.get请求有大小限制,post没有(实际上现在浏览器已经不限制url的长度了)

4.get请求一般是用来获取数据的(例如,qq获取朋友列表,获取群组列表),像服务器发送数据的时候用post请求(新建群,即想要类型的群、群名称等需要发参数给服务端)

四.jemeter

1.右键--添加--threads--线程组

线程数--并发数,压测的时候,有多少个并发数

循环次数--输入几次就跑几次

2.线程组--右键添加--sampler--http请求

服务器名称或ip--填域名,有端口号可以加端口号

方法--选择get或post请求

路径--url中域名后面为路径

parameters--填写参数

3.线程组--右键添加--监听器--查看结果树,查看接口运行结果

4.乱码问题解决

(1)jemeter返回中文乱码

在配置文件jemeter.properties中加,sampleresult.default.encoding=UTF-8,一定要重新打开jemeter

如果乱码还存在,在配置文件中添加sampleresult.default.encoding

(2)jemeter bodydata里面中文乱码

在配置文件jemeter.properties中加,jsyntaxtextarea.font.family=Hack,

content encoding也要写utf-8

5.jemeter添加cookie

哪个请求需要就在哪个请求下面添加--右键添加--配置元件--http信息头管理器,即可添加cookie也可添加header

 

httpcookie管理器只能添加cookie

cookie的每个key和value都要单独写,域要写上接口的域名,

添加图片

6.如果请求为https的,在协议里面加上https

7.上传文件

http请求中选择files upload--名称添加文件路径- 参数名称为file 

8.jemeter参数化

(1)选项--函数助手对话框--__Random--输入参数最小值和最大值--点击生成--复制函数字符串(取一个范围内的随机数)

例:uaername--参数输入tlx+随机数--tlx+函数字符串(随机取生成的数字)

(2)__time--点击生成或输入YYYYMMddHHmmss--复制函数

__time,直接取得就是时间戳

例同上

(3)__UUID--点击生成--生成的字符串是唯一的

(4)参数化从文件内循环取--线程组--右键添加--配置元件--csv data set config

filename填写文件的绝对路径

variable name填写一个代表名字的变量,如name

例:从文件内取用户名称,key=uasename vale=${name}

demiter 如果文件内多个参数,用什么隔开,如填写逗号,文件内参数要用逗号隔开,且variable name也要写两个变量名称,用逗号隔开

allow upload data

recycle on eof 为true,如果循环次数为20次,文件内只有10条数据,取完10条就从头开始取,false则不从头取,显示为eof

stop thread on eof为ture,如果循环次数为20次,文件内只有10条数据,就停止再取值,fale则就会继续取值

sharing mode--all则为所有线程组都用,

添加图片

9.jemeter关联

例.抽奖接口

抽奖接口先要验证抽奖的人是否登录,登录了才可以抽奖

抽奖接口内的userid和sign需要在登录接口的返回参数内取值

因串中有两个{},userid在login_info下面,所以需要写成以下的形式

$.login_info.userId和$.login_info.sign($.代表为第一个大括号外面的)

在登录接口添加--json path postprocessor

variabie name填写变量名字,取userid用

json path expressions填写$.login_info.userId或$.login_info.sign

default 可以随便写个值,取不到值的时候就取这个数据

关联也可以通过正则表达式来实现

“sign”:"(.*?)",模板$1$

10.jemeter压测

(1)自动判断结果对不对

添加断言,添加具体的参数,包括就是模糊对比,匹配就是要返回结果完全匹配

(2)ramp-up period (in )多长时间内把并发数都启动

(3)调度器

持续时间,要跑多长时间

例:如果要在十分内一直跑,循环次数要选择永远

tps:服务器每秒钟处理的请求数

响应时间:从发出请求到服务端处理完返回给客户端的时间

监听器内添加聚合报告

 

 

 

 

11.用户定义的变量

输入变量名称ip,值填IP地址

接口请求域名或ip处可填写${ip}

 

转载于:https://www.cnblogs.com/hehetian/p/9925735.html

相关资源:接口测试学习笔记一

最新回复(0)