此时情绪此时天,无事小神仙
好好生活,平平淡淡每一天

编辑

JMeter参数化、断言、集合点

参数化

JMeter的参数化存在两种方式

录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户来登录系统。

这个时候就需要对用户名和密码进行参数化,使每个虚拟用户都使用不同的用户名和密码进行访问。

准备工作

  • 录制一个脚本(可以用badboy工具录制),在jmeter中打开,找到有用户名和密码的页面。如下:

    image

  • 我们需要“参数化”的数据,用记事本写了三个用户名和密码,保存为.txt格式文件,注意:用户名和密码是一一对应的,中间用户逗号(,)隔开。

    image

借助函数助手的方式

  • 点击菜单栏“选项”---->函数助手对话框,看下图: CSV文件列号是从0开始的,第一列0、第二列1、第三列2、依次类推

    image

  • 复制生成的参数化函数,打开登陆请求页面,在右则的参数化中找到我们要参数化的字段,这里对用户名和密码做参数化,第一列是用户名,列号为0;第二列是密码,列号为1;修改函数中对应的参数化字段列号就可以了

    image

现在参数化设置完成,在脚本的时候,会调用 D:\JMeter\Login.txt 文件,第一列是用户,第二列是密码。

借助JMeter中的配置元件(CSV Data Set Config)

  • 选中线程组,点击右键,添加-配置元件-CSV Data Set Config

image

说明:

Filename --- 参数项文件

File Encoding --- 文件的编码,设置为UTF-8

Vaiable Names --- 文件中各列所表示的参数项;各参数项之间利用逗号分隔;参数项的名称应该与HTTP Request中的参数项一致。

Delimiter --- 如文件中使用的是逗号分隔,则填写逗号;如使用的是TAB,则填写\t;(如果此文本文件为CSV格式的,默认用英文逗号分隔)

Recycle on EOF? --- True=当读取文件到结尾时,再重头读取文件
False=当读取文件到结尾时,停止读取文件
Stop thread on EOF? --- 当Recycle on EOF为False时,当读取文件到结尾时,停止进程,当Recycle on EOF为True时,此项无意义

  • 使用刚才定义好的变量
    image

至此,两种参数化的方法就介绍完了。

需要说明一下:函数助手方法要比CSV控件方法参数化功能要弱,推荐使用CSV控件方法。

断言

JMeter也有像LR中的检查点,本篇就来介绍下JMeter的检查点如何去实现。

JMeter里面的检查点通过添加断言来完成。

上面讲到,我们对用户名和密码进行了参数化,那么怎样来判断jmeter有没有正确调用t.dat里面的文件呢。当然,我们可以从结果图表中查看。但我还是想在“登录”这个地方进行一下检查。

  • 添加响应断言

    右键点击我们的“登录”页面---->添加---->断言---->响应断言

    image

  • 设置响应断言

    image

    断言中可以添加多个断言一起判断,断言中也可以使用参数化方法,进行动态判断。

  • 添加断言结果

    右键点击我们的“登录”页面---->添加---->监听器---->断言结果

    再添加一个“查看结果树” 右键点击我们的“登录”页面---->添加---->监听器---->查看结果树

    image

    在线程组中设置3个用户,点击运行运行。

  • 查看断言结果

    成功如下图

    image

    失败如下图

    image

    注意:一般成功只会显示一行数据,否则会多显示一行。至此,检查点设置完成。

集合点

JMeter也有像LR中的集合点,本篇就来介绍下JMeter的集合点如何去实现。

JMeter里面的集合点通过添加定时器来完成。

注意:集合点的位置一定要在Sample之前.

简单来理解一下,虽然我们的“性能测试”理解为“多用户并发测试”,但真正的并发是不存在的,为了更真实的实现并发这感念,我们可以在需要压力的地方设置集合点,拿那个用户和密码的地方,每到输入用户名和密码登录的地方,所有的虚拟用户都相互之间等一等,然后,一起访问。

  • 接着之前创建的脚本,右键点击 线程组---->定时器---->Synchronizing Timer

    image

    这样子就添加了一个“集合点”,下面来设置一下集合点,设置延迟时间(以毫秒为单位)

    image

  • 我们添加完之后的列表是这个样子的

    image

    发现了没,我们集合点的位置不对,应该在登录的前面才对。怎么弄呢?

    简单方法:拖住集合点,直接移动Synchronizing Timer至登录的前面即可。

    image

至此,集合点已添加完成。

posted @ 2020-04-30 10:28  踏步  阅读(556)  评论(0编辑  收藏  举报