jmeter 读取多个用户名并同时发
在运营活动测试过程中,经常需要对秒杀活动或定时抽奖活动进行并发测试。那么怎样快速便捷的模拟多用户同时参与活动,抽取奖品,进行并发测试呢?尤其是,当奖品总数N<用户总数M时,代码是否会存在奖品多发给用户,导致奖品剩余总数出现负数的严重bug?
下面介绍使用轻量级开源测试工具Jmeter进行并发测试的方法——巧用集合点。
以总产品数为3,模拟多用户(5个用户)同时进行抽奖并发测试为例,进行介绍。
思路:首先在运营后台配置产品总数为3,其次模拟多用户登陆,最后通过设置集合点的方式,模拟多用户同时进行抽奖并发测试。
下面进行详细介绍。
一、模拟多用户登录
1、准备M个用户登录数据,将数据保存到data.txt文件中,如下所示:

2、将登陆接口参数化
通过添加CSV Data Set Config,将登陆接口参数化。如下图所示:

设置好上述步骤后,再在登陆接口中引用手机号和密码变量:${mobileNo},${passWord},如下图所示:

二、在抽奖接口前设置集合点
性能测试中经常要进行多用户并发测试,但真正的并发是不存在的,为更真实的模拟并发,可以在并发测试的接口前设置集合点。在本次示例中,当所有的虚拟用户登陆之后,都相互等待,然后一起访问抽奖接口。设置集合点的方法如下:
1、在刚刚创建的脚本中,右键点击 线程组---->定时器---->Synchronizing Timer,如下图所示:

2、将抽奖接口移至集合点下,并在集合点中设置多少个用户同时访问
本次示例中,设置为5个用户并发访问,如下图所示:

注意,若设置5个用户并发访问时,需在线程组中设定,用于模拟多用户同时测试的线程数为5个。如果线程数达不到集合点设置的数,JMeter会一直不动,一直在等待达到设定的集合数到来。
添加完成之后,线程组线程数设定,如下所示:

集合点用户数设定如下图:

以上步骤都设置完成后,执行结果,结果展示中,第一个用户抽奖时间为:2016-12-15 08:19:30,如下图:

第二个、第三个用户抽奖时间都为:2016-12-15 08:19:30,如下图所示:

至此,已达到多用户同时抽奖并发测试的目的。
使用非gui操作
jmeter -n -t admin.jmx -l test.jtl -e -o test_report
-e -o output,指的是在out文件下生成html报告
进入out文件夹,就能看到我们生成的html报告了:

转自:https://www.jianshu.com/p/088616023ecd
jmeter 读取多个用户名并同时发的更多相关文章
- 关于jmeter读取CSV文件的详细设置
jmeter 读取excel数据使用的方法是使用Jmeter CSV Data Set Config参数化 但是将excel文件保存成csv格式后,jmeter读取后返回的数据总是出现乱码问题, 以下 ...
- jmeter 读取excel数据
jmeter 读取excel数据使用的方法是使用Jmeter CSV Data Set Config参数化 但是将excel文件保存成csv格式后,jmeter读取后返回的数据总是出现乱码问题, 以下 ...
- Jmeter读取excel表中用例数据实现接口压测
传统的接口测试,都是在接口中手动输入不同用例准备的多种场景参数数据,一遍一遍的输入来执行多个不同的用例,但是现在利用excel表格准备各种类型的数据,使用Jmeter中Jmeter CSV Data ...
- Jmeter读取CSV文件,请求参数乱码
Jmeter读取CSV文件,请求参数乱码 1.修改本地配置文件,jmeter.properties,修改以下配置项 sampleresult.default.encoding=UTF-8 重启Jmet ...
- [Jmeter]通过批处理调用java,java从CSV动态读取登录的用户名和密码,并将其作为参数组合成字符串,写入外部.bat文件,然后通过Java执行这个外部批处理文件
问题1:怎样通过批处理调用java代码? 问题2:怎样通过java从CSV文件获取到用户名和密码存入变量? 问题3:怎样将获取到的用户名和密码组合成字符串,写入外部批处理文件? 问题4:怎样在批处理文 ...
- jmeter读取文件进行参数化时随机取值实现
jmeter能用来做参数化的组件有几个,但是都没有随机取值的功能,遇到随机取值的需求怎么办呢? 突发奇想,可以用函数_StringFromFile来实现,先来介绍下此函数: 此函数位于函数助手中, 函 ...
- jmeter读取执行case插入DB生成报表和备份记录
前言:由于通过jmeter写的接口自动化木有数据导入和统计分析功能,因此做了2次开发,目的是读取每条case获取接口名称和用例名称,通过获取的case执行结果进行计算,得到详细接口的用例通过率存入DB ...
- Jmeter读取Excel,BeanShell取样器调用rt.jar和jxl.jar
将rt.jar和jxl.jar,放在\apache-jmeter-5.0\lib\ext下面 import java.io.*; import java.util.ArrayList; import ...
- jmeter 读取mysql数据库
业务背景 当我们用jmeter进行压测,或者造数据的时候,我们可能希望每次请求的参数都是随机的.如果从一个文件里读取,很难达到要求.jmeter提供了一套读取数据库的组件,能满足部分要求.但性能不好, ...
随机推荐
- Java 编译???
如果是在命令行下,编译就是 javac a.java 如果有错误,那么命令运行之后会显示错误 但是在eclipse下,我都是直接点击运行按钮的,如果有错误,在编程是就提示了,那么是怎么编译的呀 大的工 ...
- nginx转发请求
location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_add ...
- Chrome Postman及Firefox Poster使用
Chrome浏览器跟Postman工具共用代理设置及Cookie Firefox浏览器跟Poster工具共用代理设置及Cookie xdebug调试原理 第一次请求url通过参数XDEBUG_SE ...
- 小酌Jmeter4.0新版本特性
1. 首先下载打开jmeter4.0,说一个能感受到的视觉变化,如图, 黑色界面,不少朋友认为做技术黑色的东西看起来高上大一点,虽然这个观念有点肤浅,但似乎也有点道理,毕竟还是有不少朋友热衷于lin ...
- day9-IO心得
Gevent协程 Select\Poll\Epoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitMQ队列 Redis\Memcached缓存 Paramiko SSH Tws ...
- Arduino学习笔记A6(补充) - 在串口读取多个字符串,并且转换为数字数组
功能如题目. 在串口收到逗号分割的6串数字比如 100,200,45,4,87,99 然后在6个PWM端口3, 5, 6, 9, 10, 11输出对应PWM值 代码注释很详细了,就不再说明了. ARD ...
- leetcode445
/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNo ...
- 前端使用CryptoJs类库进行sha-256、MD5加密
Google的加密库 CryptoJs(点此下载) 包含了很多常用的加解密方式,包括AES.DES.SHA-1.SHA-2.SHA256.MD5等. DES对称加密在之前的文章中也有介绍过,大传送门. ...
- 批处理文件中获取当前所在路径的几种方法,以及写文件到txt
@echo off setlocal EnableDelayedExpansion echo 当前正在运行的批处理文件所在路径:!cd! pause @echo off echo 当前目录是:%cd% ...
- delphi三层架构
我们的delphi程序很多是以前开发的,采用典型的CS架构,由程序直接连接数据库.现在需要改成在外网可以直接操作软件.先把数据库搬到了阿里云上,测试发现直接连数据库和VPN连接测试速度很慢,直连还容易 ...