使用jmeter进行压力测试, 是比ab(s)方便多了(平时也只是用ab进行单个url的压力测试).
jmete可以导入csv文件来指定多个参数.
我们先来做一个参数列表 "param_test.csv", 包含以下内容:
id,width,height
1,100,60
2,200,140
3,240,180
4,320,240
在Thread下我们建2个http请求: Add
=>Sampler
=> HTTP Request
一个填写完整的url, 一个填写相对url, 这两种清空下参数的填写是有一些区别的
导入csv: Add
=> Config Element
=> CSV DATA SET Config
关于并发参数的设置:
上图中
Ramp-up period
表示在多少秒内执行完毕
如果设置并发10, LoopCount为1, 则只会执行第一组参数.
关于 Same user on each iteration
在 JMeter 中,user 就是线程,此选项的意思是说每个迭代都用相同的线程。
这个得从老版本讲起,在以前 3.x 和 4.x 版本的 JMeter 中,是没有这个选项的。创建好 1 个线程后,每次迭代都是用这个线程,直到测试结束。它的影响就是,比如登录,加了 HTTP Cookie 管理器以后,单个线程多次迭代(注意不是多个线程哦)登录用的都是相同的 Cookie。
5.x 版本加入了这个选项,可以控制每次迭代是否创建新的线程。
-
选中: 每次循环用第一次的cookie,不再更新;可以理解为每次循环都是同一个用户。
-
不选中: 每次循环都是用新的cookie值;可以理解为每次循环都是不同的用户。
同时在 HTTP Cookie 管理器也增加了一个选项,控制是否清除旧 Cookie:
销毁和创建线程本身就会占用资源,可能会影响性能测试结果