【Jmeter】配置不同业务请求比例,应对综合场景压测
背景
在进行综合场景压测时,遇到了如何实现不同的请求所占比例不同的问题。
- 有人说将这些请求分别放到单独的线程组下,然后将线程组的线程数按照比例进行配置。
这种方法不是很好,因为服务器对不同的请求处理能力不同,有的处理快,有的处理慢。若采取上述方案的话,并不会按照我们预期的比例进行并发。
那么如何真实模拟按比例进行并发呢?此前使用LR进行过类似场景的测试时的思路如下:
- 每次向服务器发出请求时,先生成一个随机数,我们对随机数的取值划分若干个范围(对应若干个业务请求),然后对随机数进行判断,当随机数落在某个范围内,就可以执行对应的请求。
- 比如,我们压测的过程中,要访问百度和besttest官网,并且请求比例是2:8,那么可以规定随机数取值1<=random<=100,然后再划分2个范围:当随机数的取值在0到20之间,则访问百度;当随机数取值在20和100之间,则访问besttest官网;根据概率论,当取样量足够大的话,访问百度和besttest官网的请求比例会比较接近2:8。
Jmeter也能这样实现吗?答案是肯定的,下面我们使用Jmeter结合刚才的例子进行分解
Jmeter实现(Random)
首先,我们需要一个能够生成随机数的函数,刚好jmeter提供了这个函数
在测试计划下,我们右键“添加”——配置原件——Random Variable
设置随机数的变量名称为num,设置取值范围0到100
添加两个如果(if)控制器,添加控制条件,控制执行请求。
右键线程组添加“逻辑控制器”——如果(if)控制器
然后在两个控制器下,分别添加1个http请求。
当随机数num取值在20和100之间;调用获取图形获取验证码;
添加判断条件,如果当随机数num取值在1和20之间,调用登录接口
添加聚合报告,查看结果
运行jmeter验证,取值是否按照比例请求,我们设置一个线程数,让其循环100次,结果如下,获取图形获取验证码78次,登录接口22次,基本满足我们想要的比例。
可以预见的是当数据量达到一定程度之后,会无限接近设置的2比8的比例。
Jmeter实现(计数器)
计数器可以通过如下方式添加,其他的实现思路一样
后话:
其实在LR中也可以在场景设计里设置不同的请求的比例来实现。但是本文主要是讨论Jmeter的实现思路,所以在前文中没有提及。
【Jmeter】配置不同业务请求比例,应对综合场景压测的更多相关文章
- 【转载】Jmeter业务请求比例1
ps:文章转自订阅号“测试那点事儿”,链接:https://mp.weixin.qq.com/s/qVD4iNO0QqRIwAIq9_E_Kw 在进行综合场景压测时,由于不同的请求,要求所占比例不同, ...
- 转 Jmeter业务请求比例
[转载]Jmeter业务请求比例1 ps:文章转自订阅号“测试那点事儿”,链接:https://mp.weixin.qq.com/s/qVD4iNO0QqRIwAIq9_E_Kw 方法二: 可 ...
- 5. 堪比JMeter的.Net压测工具 - Crank 实战篇 - 接口以及场景压测
目录 堪比JMeter的.Net压测工具 - Crank 入门篇 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml 堪比JMeter的.Net压测工具 - Crank 进阶篇 ...
- 阿里云PTS分享-用性能测试工具JMeter实现基于供应链业务上对于WebSocket 协议的压测
性能测试PTS(Performance Testing Service)是面向所有技术相关背景人员的云化性能测试工具,孵化自阿里内部平台.有别于传统工具的繁复,PTS以互联网化的交互,面向分布式和云化 ...
- Jmeter读取excel表中用例数据实现接口压测
传统的接口测试,都是在接口中手动输入不同用例准备的多种场景参数数据,一遍一遍的输入来执行多个不同的用例,但是现在利用excel表格准备各种类型的数据,使用Jmeter中Jmeter CSV Data ...
- wrk,ab,locust,Jmeter 压测结果比较
背景: 项目需要对一批接口进行压测,要求是接口的QPS(Quest Per Second每秒请求数)达到6万以上由于楼主一直使用的压力测试工具是jmeter,但是jmeter单台电脑无法达到6万的QP ...
- 6. 堪比JMeter的.Net压测工具 - Crank 实战篇 - 收集诊断跟踪信息与如何分析瓶颈
目录 堪比JMeter的.Net压测工具 - Crank 入门篇 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml 堪比JMeter的.Net压测工具 - Crank 进阶篇 ...
- 7. 堪比JMeter的.Net压测工具 - Crank 总结篇 - crank带来了什么
目录 堪比JMeter的.Net压测工具 - Crank 入门篇 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml 堪比JMeter的.Net压测工具 - Crank 进阶篇 ...
- jmeter压测实践
技巧一:命令行执行 命令执行:指定参数,报告的存储位置 jmeter -n -t baidu_requests_results.jmx -r -l baidu_requests_results.jtl ...
随机推荐
- thinkphp --- 写入日志
在开发过程中,对于一些参数,不好直接输入或者打印调试,特别是在微信开发过程中,这个时候,通过日志来查看信息就显得格外重要. 下面是在TP3.2.3框架中,写入日志的方法: public functio ...
- 字符串处理(String)
字符串类型(String类)需要注意的几个函数: 1.字符串的连接.一般而言,Java不允许运算符直接应用到String对象,唯一的例外是"+"运算符,它用来连接两个字符串,产生一 ...
- Page Control
- No module named pip.req
https://stackoverflow.com/questions/25192794/no-module-named-pip-req#
- CMDB经验分享之 – 剖析CMDB的设计过程
作为IT管理的核心,CMDB逐渐成为系统管理项目实施的热点.在很多的案例中,由于忽视了CMDB的因素,ITIL的深入应用受到了极大的挑战.同时,由于CMDB是IT管理信息的集中,CMDB也是一个重要的 ...
- React Native教程
React Native 中文网 http://reactnative.cn/ 相关资料======================= React-Native学习指南 https://github ...
- 数据库知识,mysql索引原理
1:innodb底层实现原理:https://blog.csdn.net/u012978884/article/details/52416997 2:MySQL索引背后的数据结构及算法原理 ht ...
- Django REST framework 之JWT认证
Json Web Token 1.JWT简介 JWT 是一个开放标准(RFC 7519),它定义了一种用于简洁,自包含的用于通信双方之间以 JSON 对象的形式安全传递信息的方法.JWT 可以使用 H ...
- POJ2195:Going Home(费用流入门)
http://poj.org/problem?id=2195 #include <iostream> #include <stdio.h> #include <strin ...
- POJ2891:Strange Way to Express Integers(解一元线性同余方程组)
写一下自己的理解,下面附上转载的:若a==b(modk);//这里的==指的是同余,我用=表示相等(a%k=b)a-b=kt(t为整数)以前理解的错误思想:以前认为上面的形式+(a-tb=k)也是成立 ...