Jmeter实例
我们在性能测试过程中,首先应该去设计测试场景,模拟真实业务发生的情境,然后针对这些场景去设计测试脚本。为了暴露出性能问题,要尽可能的去模拟被测对象可能存在瓶颈的测试场景。
我在本地部署了一个项目,可以用来模拟考勤打卡
性能测试之前我们要设计一下场景:
业务流程:
打卡首页--点击登录--跳转项目--打开考勤页--考勤打卡
业务预期的日常考勤量为400/min,也就是6.6/s
性能需求指标:
计算出需要加载的线程数:
Thread = BC/(60/t) = BC*(t/60)
t:单用户单次业务消耗时间,尽可能模拟用户的真实行为
单次消耗时间=打开主页(0.5s)+思考时间(3s)+输入用户名密码(1.5s)+主页响应时间(0.5s)+考勤打卡时间(3s)=8.5s(90%线)
BC: 业务量,本例 BC=400
单次消耗8.5s
需要的线程数=400*(8.5/60)=56(取整数)
利用jmeter的浏览器驱动,获取用户访问的响应整体时间:
设计测试脚本模型:
运行脚本,查看聚合报告结果:
最终结果显示,吞吐量大约在32/s,符合预期值
并发用户数C=(400*8.5s)/60=56
并发用户峰值C1=56+(3* 根号56)=78 在预期范围之内
上面的性能测试案例我们是利用了业务单次消耗时间和预期吞吐量计算出需要并发的线程数,接下来我们换一种线程组来做另一次实验。
利用Arrivals Thread Group(预期事物通过线程组)来自动释放线程数
业务场景的测试脚本保持不变,启动线程组,观察释放的线程数
结果显示,系统根据需要自动释放的线程数是55,吞吐量是31/s,和之前我们自己计算得出的结论几乎一样。
Jmeter实例的更多相关文章
- jmeter实例演示
Jmeter 是比较轻便的性能测试工具,下面根据一个实例演示下jmeter的常见用法 一.前期准备,在使用之前,先分析测试需求,比如:需不要登录?需不需要监视服务器性能?多线程还是多循环?需不需根据流 ...
- jmeter实例介绍
JMeter基础之一 一个简单的性能测试 测试需求: 1)测试目标网站是fnng.cnblogs.com 和 tt-topia.rhcloud.com 2)测试目的是该网站在负载达到20 QPS 时 ...
- Jmeter实例(二)简单的性能测试场景
我们在性能测试过程中,首先应该去设计测试场景,模拟真实业务发生的情境,然后针对这些场景去设计测试脚本.为了暴露出性能问题,要尽可能的去模拟被测对象可能存在瓶颈的测试场景. 我在本地部署了一个项目,可以 ...
- Jmeter实例(一)_Beanshell脚本断言Mock接口
我们在做接口断言的时候,如果遇到复杂的json,可以考虑用beanshell脚本去解析list,同时加入自定义的断言 Mock例:https://www.easy-mock.com/mock/5cb4 ...
- Jmeter实例计划(查询天气)
查询计划(天气查询) 这是一个入门计划,仅使用jmeter进行查询功能的计划,可参考http://www.cnblogs.com/TankXiao/p/4045439.html有代码可下载.不过我还是 ...
- jmeter实例,如果有说明错误,请各位大神批评
首先我们打开jmeter,今天录制的脚本的是获取QQ头像,找了好久才找到可以免费试用的接口,如果有什么错误的地方,欢迎大家提出来,我会及时修改,也给自己一次进步的机会,希望大家不吝赐教!!!如果有什么 ...
- jmeter接口测试实例7-关联
Jmeter实例7:关联(牛刀小试中登录.金币充值接口) 必须从网上下载这个插件放在lib的ext目录下才可以用,在登录接口添加此插件 Sign是变量名,其实就是下一步充值金币要取的值:路径是从哪里取 ...
- jmeter接口测试实例6-注册(参数化)
Jmeter实例6:注册(参数化) 选中http协议,添加CSV Data set Config 准备参数中要使用到的值,存放到txt中,如果一个里面有多个参数,中间用,号分隔: 选中CSV元件,fi ...
- jmeter接口测试实例5-文件上传
Jmeter实例5:文件上传 添加http协议.添加IP.路径.方法.选择files upload文件名称tab,输入绝对路径,参数名称,运行: 上传成功
随机推荐
- slice,substr和substring方法的区别
slice(start[,end])方法需要提供至少一个整数参数,作用是返回从start的位置开始到end位置的字符子串.当参数start为负数的时候他将从字符串尾部开始计算,当end没有指定时,en ...
- bootstrap-海棠
12 缩略图和警告框 <p class='alert alert-info'>这个是警告组<button class='close' data-dismiss='alert'> ...
- javascript总结23:javascript 数据类型与变量
1 基本类型和引用类型 JavaScript中的数据类型分为两类:基本类型和引用类型 基本类型:直接存储值,画图解释 Number.String.Boolean Undefined.Null 引用类 ...
- SourceInsight中 加namespace宏后,无法跳转问题解决
Option->preferences->languages: C++ language->special, checked Ignore namespace declaration ...
- WSAStartup函数
函数WSAStartup 一.WSAStartup函数 int WSAStartup ( ...
- APUE(5)---标准I/O库 (2)
六.读和写流 一旦打开了流,则可在3种不同类型的非格式化I/O中进行选择,对其进行读.写操作:1)每次一个字符的I/O,一次读或写一个字符,如果刘时代缓冲的,则标准I/O函数处理所有缓冲:2)每次一行 ...
- linux 进阶2--C++读取lua文件中的变量、一维表、二维表
lua 语言非常灵活,一般把lua 作为脚本文件,会用C++与之进行交互.最重要的是C++代码能读取到脚本中的变量.一维表.二维表. 这样有些参数就可以在lua文件进行更改,而不用重新更改C++代码. ...
- sql 计算地球2个坐标之间的距离
show variables like '%func%'; set global log_bin_trust_function_creators=1; use scm_wuliudelimiter $ ...
- 冒泡排序算法 :BubbleSort
java中的经典算法:冒泡排序算法 $. 可以理解成当你静止一杯可乐时,里面的CO2随着你的静止,由于不不易溶于水的性质, 且会以气泡的形式逐渐向上漂浮.越大的气泡上浮速度越快. 冒泡排序算法的原理于 ...
- spring 为什么可以一统江湖
spring 为什么可以一统江湖 Inversion of Contro 简称IOC 是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度.也就是面向接口编程的思想. 简单的说就是使用配 ...