- jmeter get请求
普通的get请求,是客户端去服务器获取资源的,可以直接在浏览器中访问,获取到服务端的响应的。
- post请求,参数为k=v的POST接口
post请求方式常用数据格式第一种: content-type:x-www-form-urlencoded,
content-type:x-www-form-urlencoded即表单形式,
数据格式类型:userName=admin&password=1234, 键值对形式 k=v;
- post接口,参数为json的POST接口
content-type:application/json,json格式的数据;
json格式的必须加 http信息头管理器,中放置content-type:application/json, json 格式数据: {}
json格式的数据,放置在消息体数据中。
忘记放url地址、ip地址,报404 请求的资源未找到;
post请求方式输入错误,写成get请求,报405 请求的方法不允许;
未添加信息头管理器,报415 ,请求头 中的content-type 不对,应该用json,不加就成默认的form表单了。
- post请求,参数为k=json的POST接口;参数 param={"skuId":123,"num":10}
这种 参数param = {“key1”:“value1”,"key2":"value2"} 形式的请求数据格式,其实从本质来说,跟form表单是一样的,也是k=v键值对形式,只是值 v 是json形式的。但从大结构来说,确实是键值对k=v形式 的。所以,参数放置在参数页签即可。
- 断言
看接口是否成功,用查看结果树 就可以吗? 接口某字段值为空时,查看结果树是通过的,但其实接口返回的是:用户名或密码为空;
jmeter查看结果树看的是服务器对http接口的处理是否处理成功,只要处理成功 ,响应状态码是200,就默认是成功的。
用户名或密码为空,是接口从业务角度上失败的。
所以,只用查看结果树,不能代表业务上都处理成功了,只能代表 服务器对接口处理成功了,响应状态码200 是正常响应了。没有办法识别 业务上的失败;
所以需要用断言,来进行接口业务上的成功与否。
接口业务上成功,返回的数据:
{
"code": "0",
"data": null,
"message": "success"
}
- json断言:大部分接口返回的都是json格式的响应数据,那么可以 使用json断言来进行业务上的判断;添加-断言-json断言
- 响应断言:如果接口返回的响应数据,不是json格式数据,是其他类型的响应,文本、xml或者表单等其他类型的数据格式,断言的话,用响应断言;添加-断言-响应断言
{"code": "0","data": {"stock": 695},"message": "success"}
需要注意:从接口成功响应 json格式中拿到的响应 message": "success", 值前面是有空格的,jmeter做了美化,放响应断言中使用时,需要去掉空格;
响应断言模式匹配规则
包括(Contains):如果响应中包含了指定的字符串,判断为成功,支持正则表达式
匹配(Matches):如果响应完全匹配指定的字符串,判断为成功,支持正则表达式
相等(Equals):如果响应完全匹配指定的字符串,判断为成功,不支持正则表达式
子字符串(Substring):如果响应中包含了指定的字符串,判断为成功,不支持正则表达式;
一般在工作中,不需要用到正则表达式,就选字符串即可,所以,默认的响应断言,就支持大部分的响应断言;
响应断言,还可以支持多个断言的情况。 断言1 且断言2,都满足。
或者:断言1或 者断言2,两个断言满足一个,就成功;
否:不满足断言1、且不满足断言2; 都不满足成功;---用的比较少;
写接口,一定要写断言,有了断言,才能判断 接口在业务上的成功与否。