大家好,我是好学的小师弟。今天来和大家分享下近期工作中的所学内容——关于jmeter的一些常见使用方法。
简介:jmeter是一款基于java开发的测试工具,常用于接口测试/性能测试。(个人觉得,jmeter用于性能测试比较多,接口测试常用postman较多)。由于接口测试是性能测试的一个子集,所以本篇将基于性能测试给大家介绍下jmeter。
首先我们先下载jmeter,这里我下载的是jmeter5.4.1。然后进入bin目录,打开jmeter.bat。从而在windows上打开了jmeter。进入页面,点击options,将语言改为简体中文。
新建任务,添加线程(用户)--->线程组
注意:从上图,我们可以看到,我们已经创建了两个线程组,如果这里我们不点击下方框框中的独立运行每个线程组,那么两个线程组就会同时运行;想要线程组,按照从上而下的顺序来运行,就需要点击这个框框。
请求:
选择线程组,右键-添加-取样器-HTTP请求。输入协议,ip,端口,请求方法,路径等参数后。根据接口文档的需求,写入相应的请求参数。
响应:
右击该线程---添加---监听器,这个就是我们用来查看接口响应的工具。一般我们监听器选择---察看结果树即可。
注意:图中有很多监听器,线程组,如果不想删除他们,也不想启用他们,可以右键禁用,这样他们就不会运行了。
断言:
jmeter的断言有许多种,这里我们就介绍两种常用的断言。json断言与响应断言
json断言:我们先根据接口文档,找到预期响应,发现其是json格式的。然后我们右击该条测试用例的http请求---添加---断言---json断言。
这样在发送请求后,我们可以在察看结果树里看到结果,如果是绿的,那就说明,该条测试用例通过断言了;如果红了,那就说明,该条测试用例没有通过断言。
响应断言:右击该条测试用例的http请求---添加---断言---响应断言。
以上就是常用的三件套:发送请求,进行断言,查看响应。
但是我们在工作中常常会遇到很多用例,这个时候就要用到我们的http请求三件套
HTTP请求默认值:右击线程组或者测试用例---添加---配置元件---HTTP请求默认值
HTTP信息头管理器:右击线程组或者测试用例---添加---配置元件--- HTTP信息头管理器
这个元件就是管理请求头的,接口发送请求的时候,有时候要在请求头里带一些东西,这个时候,我们就把这些内容,放在这个信息头里
HTTP Cookie管理器: 右击线程组或者测试用例---添加---配置元件--- HTTP Cookie管理器
这个cookie管理器,能够自动获取你登陆的所获得的cookie值,不需要你去通过正则表达式或者json提取器获取了,很方便。我们用的时候,就先登录一遍网页,这个目的就是先获得cookie值,然后我们下面在进行正常的操作,每个请求都自带cookie了。
注意:注意你的cookie管理器的作用域
有时候我们还是需要提取上一条请求中的某条响应内容,才能继续进行第二次请求,这个时候就需要用到正则表达式提取器和json提取器了
正则表达式提取器:右击线程组/测试用例---添加---后置处理器---正则表达式提取器
引用名称:Jmeter变量的名称,存储提取的结果;引用方法是$
模板:模板$1$,$2$等等,表示把解析到的第几个值赋给变量;从1开始匹配,以此类推。若只有一个结果,则只能是$1$;
匹配数字:0代表随机取值,正数n则表示取第n个值(比如1代表取第一个值),负数则表示提取所有符合条件的值
缺省值:匹配失败时候的默认值;通常用于后续的逻辑判断,一般通常为特定含义的英文大写组合,比如:ERROR等
json提取器:右击线程组/测试用例---添加---后置处理器---json提取器
2021.12.31更新【祝大家元旦节快乐,新的一年冲冲冲!】
性能测试常用元件:
csv数据文件设置:右击线程组or测试用例---添加---配置元件---csv数据文件设置
csv文件常用来写一些配置文件,或者写一些测试数据,用来做并发测试,引用csv文件的内容,依旧是${变量名}。同步定时器(集合点任务):右击线程组or测试用例---添加---定时器---同步定时器
在我们执行并发测试任务的时候,需要一个集合点,让大家同一时刻一起跑,这就需要同步定时器了。
上图中需要注意的地方
模拟用户组的数量:1.如果设置为0,等同于设置线程组中的线程数(点击左侧的线程组,你就可以去设定线程数了)
2.确保设置的值不大于他所在的线程组所包含的用户数(线程数)。(注意:如果你设置的值大于线程数,而你又没有设置超时时间,那么这个同步定时器就会一直在等那个多余的(根本不存在的)线程数过来,而多的线程又不存在,所以同步定时器就会一直傻等,永远不会发出测试请求)
超时时间,单位是毫秒:1.如果超时时间设置为0,那么同步定时器将等待,直到到达的线程数达到模拟用户组数量中设置的那个数的时候,才会释放
2.如果设置的超时时间是个正数,那么等待线程抵达时间超过设置的这个超时时间的时候,Timer将不再等待,释放已经到集合点的线程
未完待续。。。
新人创作不易,觉得不错的看官,点个赞吧,么么哒!!!
转载注明出处!