自学内容网 自学内容网

性能测试工具JMeter(二)

1 json断言 

        接⼝发送请求成功,响应码为200并不能完全代表接⼝请求成功,我们更多需要关注接⼝响应数据是否 符合预期。

1.1 添加JSON断⾔

1.2添加JSON配置

        同JSON提取器语法配置:

         注意:

        1)若不选Additionally assert value,表⽰添加断⾔值,则可⽤来判断字段是否存在

        2)选择Additionally assert value,则必须添加Expected Value期望的断⾔值

         3)若不选Match as regular expression正则匹配,则Expected Value必须填写完整,少⼀个字符都 会导致断⾔失败

        4)若选择Match as regular expression正则匹配,则Expected Value可以仅写上部分关键词即可断 ⾔成功

        我们在登录的断言里面进行cose=success,则成功登录;但是我们的登录页凭证是data且由于该参数每一次登录都会有不同的数值,所以我们接下来对该参数进行断言设置:

        正则表达式:

        正则表达式是一种用于匹配和操作文本的强大工具,它是由一系列字符和特殊字符组成的模式,用于描述要匹配的文本模式

        \d:表示数字----匹配任意一个阿拉伯数字(0 到 9)。等价于 [0-9]

        \s:表示字符----匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,不包括换行。

1.3 正则表达式

        我们使用正则表达式来断言当前的登录状态;

        此时我们的登录状态为成功;

\S{20,}

        c此时表示我们要断言的参数必须是长度大于20的非空白字符;

2 同步定时器(集合点)

2.1 引入

        为了达到并发的效果,需要添加同步定时器 ;

        由于我们此次配置了五个线程,这五个线程是陆陆续续的完成了测试计划,谁先准备好谁先执行,如下所示,我们点击右上方的三角按钮之后,开始运行测试‘:

        我们此时发现我们的线程并不是并发进行的,所以引入同步定时器;

2.2 添加步骤

        我们在集合点设置的参数是并发数量,在运行测试的时候,当模拟用户大于等于该参数的时候,就直接发送请求,如下所示:

        当集合点配置的参数(并发数)小于线程数时,最好把循环打开,避免最后一次为准备好的线程数量达不到并发数;

3. 事务控制器

        JMeter事务控制器的作⽤主要⽤于测试执⾏嵌套测试元素所花费的总时间。这相当于模拟⽤⼾进⾏⼀ 系列操作的测试。

        在进⾏⻚⾯性能测试或API性能测试时,事务控制器是⼀个⾮常重要的⼯具。它可以帮助测试⼈员更准 确地评估系统性能,尤其是在涉及多个接⼝或操作的复杂场景中。例如,在订单提交的过程中,可能 需要调⽤多个接⼝,并且某些接⼝可能依赖于前⼀个接⼝的结果。在这种情况下,使⽤事务控制器可 以将这些接⼝统⼀视为⼀个事务进⾏性能测试,从⽽得到更接近真实场景的性能测试结果。

3.1 添加过程

页面如下:

3.2 关于聚合报告

4.CSV数据⽂件设置

        以登陆接⼝为例,当我们执⾏登陆接⼝的性能测试时,⼿动配置了⽤⼾名和密码为固定的username和 password,然⽽实际使⽤中不可能只有⼀个⽤⼾登陆,为了模拟更真实的登录环境,我们需要提供更 多的⽤⼾username和password来实现登录操作

4.1  添加⽅式

线程组⸺配置元件⸺CSV数据⽂件设置

4.2 参数配置

        1、将登录页面的参数修改为如下:

       2、 创建csv文件,宁保存,如下:

        3、 页面配置:

        ⽂件名:填写csv⽂件的路径。建议使⽤绝对路径。

        ⽂件编码:UTF-8

         变量名称:从csv数据⽂件中读起的数据需要保存到的变量名。有多个变量时⽤逗号分隔

        是否忽略⾸⾏:是否从csv数据⽂件第⼀⾏开始读取。

        分隔符:要求与csv数据⽂件中多列的分隔符⼀致

        遇到⽂件结束符再次循环:若选择为True当数据不够的时候会从头取。若选择False,则需要勾选 下⾯的配置,遇到⽂件结束符停⽌线程,这⾥如果不勾选,请求将会报错。

单线程运行如下:

多线程运行如下:

 5. http cookie管理器

5.1 添加方式

 

5.2 组件说明

6. 关于并发

        在工作中进行性能测试,并发是一点一点加上去的,期望最大是10000的时候,是从100,1000,2000,一点一点加上去的;

6.1 jmeter插件

        在真实企业压测场景中,我们通常为⼀点⼀点的逐步增加线程数,因此需要安装新的插件来⽀持线程 数的配置。 通过插件管理⼯具下载其他插件,url:Install :: JMeter-Plugins.org

        将该文件放在jmeter/lib/ext下面:

 6.2 在插件中下载其他监听插件

如此插件如下:

6.3 Stepping  Thread Group 梯度压测线程组

        This group will start:启动多少个线程,同线程组中的线程数

        First, wait for:等待多少秒才开始压测,⼀般默认为0

        Then start:⼀开始有多少个线程数,⼀般默认为0

        Next,add:下⼀次增加多少个线程数

        threads every:当前运⾏多⻓时间后再次启动线程,即每⼀次线程启动完成之后的的持续时间;         using ramp-up:启动线程的时间;若设置为5秒,表⽰每次启动线程都持续5秒

        thenhold loadfor:线程全部启动完之后持续运⾏多⻓时间

        finally,stop/threadsevery:多⻓时间释放多少个线程;若设置为5个和1秒,表⽰持续负载结束之后 每1秒钟释放5个线程

参数解读:

        开始的配置:

结束的配置:

 一般来说查看结果树是自己调试时使用的;

        响应时间和线程工作数量:

使用监听器观察:

         性能测试完成之后,要出性能测试报告:

7.测试报告

        JMeter测试报告是⼀个全⾯⽽详细的⽂档,它提供了关于测试执⾏结果的详细信息,帮助⽤⼾全⾯评 估系统的性能并进⾏性能优化。

        ⽣成性能测试报告的命令:

Jmeter -n -t 脚本⽂件 -l ⽇志⽂件 -e -o ⽬录

        -n : ⽆图形化运⾏

        -t : 被运⾏的脚本

        -l : 将运⾏信息写⼊⽇志⽂件,后缀为jtl的⽇志⽂件

        -e : ⽣成测试报告

        -o : 指定报告输出⽬录

C:\Users\缘客扫>where jmeter
E:\anzhuangchengxu\apache-jmeter-5.5\apache-jmeter-5.5\bin\jmeter
E:\anzhuangchengxu\apache-jmeter-5.5\apache-jmeter-5.5\bin\jmeter.bat

D:\>e:

E:cd E:\java_xiangmu\mianjie_xingneng

 

找到我们的jmx测试文件,输入jmeter指令:

E:\java_xiangmu\mianjie_xingneng>jmeter -n -t  第一个性能测试.jmx -l first.jtl -e -o ./first/.

如下所示:

        文件内容如下:

        html文件就是生成的性能测试报告:

 7.1 响应时间

        如果响应时间超过了要求,代表系统到了瓶颈;

        注意事项:分析在多少线程的情况下发生了超标;

        响应时间变化的原因:

                系统不稳定,有时快有时慢;

7.2 错误率

        高并发场景下,系统是否能够正常处理业务;

        要求99.99%,一般要求可靠性达到四个九;

7.3 吞吐量

        吞吐量越大,性能越好;吞吐量相对稳定或者变低,可能系统到达了性能瓶颈;

ps:关于性能测试就到这里结束了!!!


原文地址:https://blog.csdn.net/2202_76101487/article/details/142973928

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!