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
相关资源:接口测试学习笔记一