Jmeter 使用教程 系列(2) 基础入门

这篇我用java写个Rest接口,使用Jmeter来多线程调用

下一篇:多线程头部添加Token调用业务接口

目录

1:java接口

2:Jmeter测试案例

2.1:线程组

2.2:HTTP Request

3:监听器-查看结果树

3:启动测试

4:全局Token

4.1:添加正则表达式提取器

4.2:BeanShell 取样器将token值设为全局变量

4.3:.添加请求头部管理器作为全局使用


1:java接口

package com.example.demo.controller;
import java.util.ArrayList;
import java.util.List;

import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import com.example.demo.pojo.Students;

@RestController
@RequestMapping("/user")
public class UserController {
	/**
	 * @param number 生成List的长度
	 * @return
	 * @throws InterruptedException
	 */
	@RequestMapping(value = "/{number}",method = RequestMethod.GET)
	public List<Students> getStudents(@PathVariable  int number) throws InterruptedException{
		System.out.println(number+"开始");
		Thread.sleep(5000);
		List<Students> list = new ArrayList<Students>();
		for(int i=0;i<number;i++) {
			Students s= new Students("name"+(i+1),18+i, i%2==0?'男':'女');
			list.add(s);
		}
		System.out.println(number+"生成并返回"+number+"个students。");
		return list;
	}
}

用到的实体类

package com.example.demo.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import lombok.ToString;

@Data
@AllArgsConstructor
@ToString
public class Students {
	private String name;
	private int age;
	private char sex;

}

2:Jmeter测试案例

2.1:线程组

2.2:HTTP Request

这里也可以直接在路径填:http://localhost/8080/user/${__Random(10,100,number)}

注意:路径后面的参数是生成的随机的10-100的整数;取函数可以参考下图

3:监听器-查看结果树

3:启动测试

查看结果树

后端打印的:

可以看到结果是对的,但是注意,Jmeter中性别是中文,显示乱码,有两种这是方式可以解决

参考:https://www.cnblogs.com/xiaxiaoxu/p/9607017.html

这是Get请求,Post只是参数以Json格式写在 Body Data消息体中,也可以写在Parameters中

4:全局Token

但是前面的都是直接调用接口,那现在的接口一般都是需要登陆才能操作,所以需要在登录之后把返回的token作为全局token,再去调用其他业务接口

首先按照前面的例子请求登录接口,再:

4.1:添加正则表达式提取器

  • (1)引用名称 token
  • (2)正则表达式  "token":"(.+?)"
  • (3)模板 用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$$3$等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值
  • (4)匹配数字 0代表随机取值,1代表全部取值,通常情况下填0
  • (5)缺省值 如果参数没有取得到值,那默认给一个值让它取

4.2:BeanShell 取样器将token值设为全局变量

${__setProperty(newtoken,${token},)}

4.3:.添加请求头部管理器作为全局使用

${__property(newtoken)}

 

完成以上就可以使用jmeter完成登录后的其他操作了

打波我的广告:最近刚搬完家,用的是货拉拉无忧搬家,体验不错,全程搬运不用自己动手。搬家最高减80元,长按图片扫码就能领,价格实惠!搬完家还能领50元现金!狂省130元。扫码关注

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kone.wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值