依赖
org.databene contiperf 2.3.4
注解 @PerfTest
@Rule
public ContiPerfRule contiPerfRule = new ContiPerfRule();
@Test
// 用10个线程调用11次
@PerfTest(invocations = 11,threads = 10)
public void hystrixTest2() {
logger.info(Thread.currentThread().getName() + "==>" + userService.queryContents());
}
ApacheBench压测
简介
安装Ab(ApacheBench) 测试工具是 Apache 提供的一款测试工具,具有简单易上手的特点,在测试 Web 服务时非常实用。 ab 一般都是在 Linux 上用。
yum -y install httpd-tools常用参数
-n:总请求次数(最小默认为 1); -c:并发次数(最小默认为 1 且不能大于总请求次数,例如:10 个请求,10 个并发,实际就是 1 人请求 1 次); -p:post 参数文档路径(-p 和 -T 参数要配合使用); -T:header 头内容类型(此处切记是大写英文字母 T);响应参数
Requests per second:吞吐率,指某个并发用户数下单位时间内处理的请求数; Time per request:上面的是用户平均请求等待时间,指处理完成所有请求数所花费的时间 /(总请求数 / 并发用户数); Time per request:下面的是服务器平均请求处理时间,指处理完成所有请求数所花费的时间 / 总请求数; Percentage of the requests served within a certain time:每秒请求时间分布情况,指在整个请求中,每个请求的时间长度的分布情况,例如有 50% 的请求 响应在 8ms 内,66% 的请求响应在 10ms 内,说明有 16% 的请求在 8ms~10ms 之间。实战 1. 10 个并发用户/10 万请求量(总)
ab -c 10 -n 100000 http://127.0.0.1:8080/jvm/heap2. POST请求
# 新增文件 devops-user.txt,写入json格式参数,然后运行下列指令 # 200并发下,请求1w次 ab -c 200 -n 10000 -p "./devops-user.txt" -T "application/json" http://127.0.0.1:8080/devops/user
# 在默认不配置 JVM 堆内存大小的情况下,JVM 根据默认值来配置当前内存大小。 我们可以通过以下命令来查看堆内存配置的默认值: java -XX:+PrintFlagsFinal -version | grep HeapSizeJmeter 压测 前言
操作步骤本地部署的jmeter更多情况下会应网络/本地线程问题,导致测试数据不准确,专业的做法还是应该在服务器上部署分布式的jmeter用于测试。
下面主要介绍简单的用法,更多的是用于调用本地java程序,查看本地java的堆内存,cpu状态。
新建线程组
创建统一的http请求头
创建HTTP请求
添加取样器,聚合报告,用于分析接口性能
添加取样器,察看结果树 用于查询调用结果
添加后置处理程序,解决中文展示乱码问题。
添加 prev.setDataEncoding(“UTF-8”)



