jmeter脚本,测试并发,一般执行10-15分钟
2.1 汉化
Options->Choose Language >Chinese
2.2 测试计划/TestPlan
用户自定义变量:
这里设置的变量,是全局变量。整个测试计划都可以引用这个变量。
设置变量name=张三
引用name变量
独立运行线程组:
如下图,一个测试计划下有多个线程组时
如果不勾选独立运行线程组,则启动脚本时,线程组1与线程组2是同时运行的
勾选独立运行线程组,则启动脚本后,先执行线程组1,当线程组1执行完成后才执行线程组2.
应用场景:
比如晚上下了班,需要依次执行多个线程组,这个时候我们就可以设置独立运行线程组,这样第二天来了,就可以直接看运行结果了。
添加目录或jar包到ClassPath
需要添加第三方jar包情况下,如在跑某些脚本时,依赖额外的一些jar包,就在这里面添加。
也可以把依赖的jar包直接放在jmeter文件的lib目录ext文件夹下面。
2.3线程组
添加线程组
线程属性
线程组设置并发数量和并发多长时间。
jmeter是用java程序写的,所以用线程数来表示并发数量。java是单进程多线程。
线程数就是并发数。
进程与线程关系:
进程是程序运行的基本单元,但不是最小单元。线程是程序运行的最小单元,进程里面有线程。
单进程:
一个进程下面,只有一个线程。
多线程:
一个进程下面,有多个线程。
运行速度来说,进程比线程快(因为一个进程下面只有一个线程),但是多线程的优点就是支持更大并发。
Ramp-Up时间(秒):
设置线程数10,Ramp为1秒。表示1秒内启动完这10个线程。
如上图,我们设置一个很大的线程数,如要求10s内启动10000个线程。
这个是很明显10s不能启动完成10000个线程的,它只是尽量10s内启动完10000个线程。当在规定时间内完不成时,他会加班启动,如我设置了10s10000个,它实际执行时,可能用了100s启动了10000个。
循环次数:
针对每个线程,设置循环次数为9次时,则每个线程会循环执行9次。
设置为永远,则每个线程会循环跑下去。
调度器:
调度器必须配合循环次数为永远时使用的。
持续时间:
设置持续600(秒),表示这个线程组持续执行600s
启动延迟:
如图,设置启动延迟为10。启动脚本后,在10s内不启动线程,10s过后,再在1s内启动完50个线程。
启动延迟没有太大的意义。
在取样器错误后要执行的动作
继续:
在请求出错之后,继续执行
启动下一进程循环:
在请求出错之后,不会继续执行后面的请求。而是重新发起一个循环,再从头开始执行
停止线程:
在请求出错之后,把这个线程停止掉
停止测试:
在请求出错之后,把这个线程组下的所有线程都停止掉。(正在执行的线程,执行完停止掉,未执行的线程,直接就不执行了)
立即停止测试:
立即停止在整执行的线程和停止未执行的线程。
2.4取样器
HTTP取样器/请求
协议不填,默认http
端口不填,默认80端口
http协议,对应80端口
https协议,对应443端口。
服务器名称或ip:
这里可以填写域名或者ip地址。
内容编码:
字符的编码, 只针对我们请求参数(request)的编码,默认是ISO8859。
编码的配置,是在配置文件里配置的。jmeter的配置文件为bin目录下的jmeter.properties文件。
我电脑下的路径:
资源库下
我们查看jmeter.properties文件。
发现这个文件里,有大量的注释内容。这些被注释的内容,都是这个jmeter的默认配置文件。
如
这个jemter的默认语言是English。如果我们想要修改默认配置要怎么做?
如我们想讲默认语言换成中文,
则第一步放开注释
第二步,将en换成zh_CN
将
变成
回到我们讲解的默认编码
第一行默认编码,是针对请求传参的默认编码,
第二行#sampleresult.default.encoding=ISO-8859-1,是针对请求返回值的默认编码。
当我们想更改请求参数的编码时,直接在jmeter的界面上更改就可以了。
但是当我们想更改返回值的编码时,我们要去配置文件。
首先要放开注释
然后将 ISO-8859-1 替换成UTF-8
什么情况下需要更改编码?
我们查看结果树,当查看某个请求的传参,发现某个字符乱码时,我们可以设置请求参数的字符编码。
当我们查看结果树,查看某个请求的返回值,乱码时,我们可以更改返回值的编码。