一、Jmeter简介
- Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试。
- Jmeter具备高移植性,可以实现跨平台运行。
- Jmeter可以实现分布式负载。
- Jmeter采用多线程,允许通过多个线程并发取样或通过独立的线程对不同的功能同时取样。
- Jmeter具有较高扩展性。
文章图片
因为Jmeter是用java编写的,因此要想使用必须要安装JDK,JDK的安装就不做赘述了
下载成功后,解压
到解压文件夹中的bin目录下双击jmeter.bat
弹出这样的框说明运行成功了
文章图片
最开始打开时是英文的,那么为了使用方便,可以将其设置成中文的
设置Jmeter语言为中文环境 1、临时设置
Jmeter菜单栏选择Options–>Choose Language–>Chinese (Simplified)
这种方法,重启软件后又变为英文环境了。
2、永久设置
进入apache-jmeter-5.2.1\bin目录,找到“jmeter.properties”文件,在文件的第37行后添加“language=zh_CN”,保存之后再打开jmeter就永久变为中文环境了。
文章图片
设置完成之后重启软件, 就会变成中文的了
Jmeter简单使用
- 创建线程组
文章图片
- 设置线程组
文章图片
- 创建http请求
文章图片
要调用的接口地址为http://127.0.0.1:8080/api/v3/userinfo/list, 请求方法为GET请求, 可以以此来对照一下对应的配置
文章图片
文章图片
右击并启动就能进行测试了
创建一个Conrtroller
package come.pangting.api.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.concurrent.atomic.AtomicInteger;
@RestController("userInfoController")
@RequestMapping( "api/v3/userinfo")
public class UserInfoController {
public static final String CTRL_PRODUCE = "application/json;
charset=UTF-8, text/plain;
charset=UTF-8";
private static volatile AtomicInteger atomicInteger = new AtomicInteger();
private static Integer count = 0;
@RequestMapping(value = "https://www.it610.com/list", method = RequestMethod.GET, produces = CTRL_PRODUCE)
public Object userList() {
atomicInteger.addAndGet(1);
//线程安全
count++;
//线程不安全
System.out.println("正确请求数: " + atomicInteger.get() + ";
存在线程安全的请求数:" + count);
return null;
}}
【利用Jmeter进行接口并发测试】我们都知道自增的操作是线程不安全的, 而我们利用原子类AtomicInteger 和volatile关键字修饰变量atomicInteger ,从而保证线程安全.接下来我们启动Jmeter进行测试
文章图片
可以看到最终的结果
推荐阅读
- Java|Java基础——数组
- 人工智能|干货!人体姿态估计与运动预测
- java简介|Java是什么(Java能用来干什么?)
- Java|规范的打印日志
- Linux|109 个实用 shell 脚本
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- Spring注解驱动第十讲--@Autowired使用
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)