jmeter 接口测试工具使用
一般来说,使用jmeter的大致使用流程如下:
1.【新建线程组】,一般我们工作中,一个线程组就是一个项目,比如项目A;
命名尽量规范,简洁明了,别人一眼可以知道这是干什么用的。
2. 添加【事务控制器】,(后面项目内容过多,或者不同环境参数及请求有较多不同时,便于规范管理脚本)
3. 在事务控制器里:
添加两个【用户自定义变量】,一个存放接口path, 一个存放通用请求参数, 自己命名;
添加一个【HTTP请求默认值】,可以设置公共的协议和域名/ip;
添加一个【HTTP信息头管理器】,可以存放代理设置user_agent、文本类型Content-Type、cookie等;
添加一个监听器-【查看结果树】;
4. 准备工作基本做好了: 那么下面就可以实际操作了:
4.1 添加【HTTP请求】:鼠标右键-【添加】-【sampler】-【HTTP请求】,请求里选择方法get/post,填入路径变量${变量名};
4.2 然后根据接口文档,在Parameters里或者Body data里添加参数,分别是以下格式;
4.3 根据接口文档的需要,如果需求对参数进行urlencode或者签名,加密等操作,可以添加一个【前置处理器】BeanShell PreProcessor,里面可以导入jar包,对变量进行处理,之后,才会把处理过的参数变量放入请求中,发送到服务端;比如下面求签名的一种格式:
String hehe= "abc";
vars.put("hehe ",java.net.URLEncoder.encode(hehe,"utf-8"));
HashMap map = new HashMap();
map.put("hehe",hehe);
signStr = ToolSign.sortByKey(0,map,appSecret);
sign = ToolSign.getMD5Sign(signStr);
4.4 添加【断言】-【响应断言】;比如断言“main sample”的“响应文本”“包括/substring”某个字段内容;
5. 如果我想要上下游传参,可以通过【正则提取器】提取变量,也可以用【后置处理器】BeanShell PostProcessor来提取变量;
import org.json.simple.parser.JSONParser;
import org.json.simple.JSONObject;
//拿到响应值
String json = prev.getResponseDataAsString();
JSONParser parser=new JSONParser();
JSONObject obj=new JSONObject();
try{
obj=(JSONObject)parser.parse(json);
} catch(ParseException pe){
}
String hehe=obj.get("hehe").toString();
//解析后放到变量里
vars.put("hehe",hehe);
6. 如果我想批量调接口,查看结果,而且只有单个参数规律变更,可以用【计数器】+【响应断言】+“循环次数” 来实现;
如果有多个参数,且不规则,可以通过导入【csv文件】+【响应断言】+"循环次数"的形式来实现;
如果我想提取响应结果里的部分参数,批量导入到csv文件里,可以通过【csv文件】+【正则表达式提取器】+【后置处理器】BeanShell PostProcessor的形式来实现;
相关实现方式,参考自己【接口篇】的整理文档;
---------------------------------------------------------------------------------------------------------------------
常用的就这些吧,有时间再补充好了。。。