JMeter

1. 如果现在有10000条数据保存在外部csv文件,每个线程读一条数据,而jmeter的线程数不可能开10000条,此时可以线程数500,设置循环次数为无限(或20次),CSV data set config设置 Recycle ON END = false, stop thread on EOF=true即可。意思就是当读到文件最后一条时停止线程,不重复利用。


2. 仅一次控制器,比如50个线程组,循环2次,如果某个请求设置了仅一次控制器,则该请求执行50次,不会执行循环。


3. 如果一次测试计划有两个线程组,第一个线程组进直播,第二个线程退出直播,测试数据如下:

  1. 线程时间10秒,线程二增加一个固定定时器,在所有用户进完直播60秒后退出直播循环次数都是1。会得到结果:线程1 10秒内执行完线程,接着暂时60秒,开始执行线程2
  2. 线程时间都是10秒,线程1 循环3次,线程2保持不变。结果:线程1开始时间10分10秒,第一次循环结束时间10分20秒,第二次循环10分22秒,第三次10分24秒,总耗时14秒。线程2开始时间10分20秒+等待60 = 11分10秒开始,11分20秒结束。
  3. 结论第二次以后的循环不用再次启动线程,利用之前生成好的线程,执行时间不用10秒。线程二是在线程1第一次循环结束后就开始的执行的,所以在结果查看树中会有部分开始时间的重叠。

4.用命令行启动Jmeter

  1. -h 帮助 -> 打印出有用的信息并退出
  2. -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
  3. -t 测试文件 -> 要运行的 JMeter 测试脚本文件
  4. -l 日志文件 -> 记录结果的文件
  5. -r 远程执行 -> 启动远程服务
  6. -H 代理主机 -> 设置 JMeter 使用的代理主机
  7. -P 代理端口 -> 设置 JMeter 使用的代理主机的端口号
  8. 参数传递
    -D[prop_name]=[value] - defines a java system property value.
    -J[prop name]=[value] - defines a local JMeter property.
    -G[prop name]=[value] - defines a JMeter property to be sent to all remote servers.
启动本地测试D:\apache-jmeter-2.13\bin\jmeter -n -t D:\guestenter.jmx -Jthreadnum=5 -Jloop=2 -l D:\result.jtl 在用例中即可使用${__P(threadnum)}来设置线程数
启动远程测试D:\apache-jmeter-2.13\bin\jmeter -n -t D:\guestenter.jmx -Gthreadnum=5 -Gloop=2 -l D:\result.jtl -R 192.168.1.101在用例中即可使用${__P(threadnum)}来设置远程线程数和循环次数

5. jmeter 调用外部命令行,可用OS Process Sampler,python则会接受到三个参数


6. Linux 下使用分布式
1. server端修改jmeter-server.sh, RMI_HOST_DEF=-Djava.rmi.server.hostname=本机IP地址
2. 控制器端启动时需要传入-Djava.rmi.server.hostname=控制器的IP地址


7. 正则表达式提取器,提取多个值时,可用模板$1$2$表达多个匹配,并用"引用名称_g1"来表示分组名


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值