JMeter学习(四)参数化、断言、集合点

1.参数化

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

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

JMeter的参数化存在两种方式

准备工作

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

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

参数化的两种方式

(1)借助函数助手的方式

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

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

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

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

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

说明:

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时,此项无意义

b)使用刚才定义好的变量

 

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

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

2.断言

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

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

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

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

(2)设置响应断言

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

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

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

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

(4)查看断言结果

a)、成功如下图:

b)、若断言失败,如下图:

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

3.集合点

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

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

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

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

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

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

(2)我们添加完之后的列表是这个样子的

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

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

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

 

综上,即为JMeter的参数化、断言、集合点的添加方法。

 

转载于:https://www.cnblogs.com/tian-yong/p/4466690.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/376027.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows在安装builtwith时遇到问题

builtwith是一个十分有用的工具,可以用来检查网站构建的技术类型。但是我在安装这个包的时候出现了问题百度之后发现是编码的问题,应将编码格式设置为gbk具体过程就是:首先要找到Python路径下的Lib文件夹的mimetypes.py文件。然后在import下面…

php class使用方法,php的类使用方法问题

php的类使用方法:1、类通过class关键字来定义;2、访问对象的时候,属性名前不要加【$】;3、通过【->】访问修改类内成员变量;4、函数的返回值通过return来返回。php的类使用方法:1.语法说明和其他语言一样…

Linux抓包

tcpdump -i eth1 -nn dst host 172.31.0.42 -w /tmp/temp.cap 监听指定的主机 $ tcpdump -i eth0 -nn host 192.168.1.231 这样的话,192.168.1.231这台主机接收到的包和发送的包都会被抓取。 $ tcpdump -i eth0 -nn src host 192.168.1.231 这样只有192.168.1.231这…

汇编语言中各种声明

参考链接:http://zhidao.baidu.com/link?urlQZiRv_6nAzF1XHOG83SwngS1HoRZXWSP2a0uQEHVDON1rP1a07xlXCiYUXd0ORQP32h_7Nhfd-afCMox8q8McK 本文仅是为了自己学习方便而已,勿喷。 DATAS SEGMENT;定义数据段 BUF0 DB 1;定义一个字节型变量,名…

linux awk数组相关操作介绍

用awk进行文本处理,少不了就是它的数组处理。那么awk数组有那些特点,一般常见运算又会怎么样呢。我们先看下以下的一些介绍,结合样例我们会解说下它的不同之处。在 awk 中数组叫做关联数组(associative arrays),由于下标记能够是数…

java求最优解库,IPOPT在第二次求解时找到最优解

通常当我尝试使用IPOPT解决问题时,即使问题不可行,IPOPT也会显示运行过程,例如显示问题有多少约束以及问题的其他一般信息,但这次我遇到了一个奇怪的问题 . 我第一次解决它没有显示的问题,但第二次解决它,I…

ODAC(V9.5.15) 学习笔记(四)TCustomDADataSet(2)

2.连接相关 名称 类型 说明 Connection 指向一个数据库连接对象 Disconnected 设置为True将在数据库关闭后继续保持数据集的开启状态。 3. 数据获取 名称 类型 说明 FetchRows Integer 从数据库服务器获取一次性获取数据记录的条数,缺省25条。 Is…

详解汇编语言中乘法指令:MUL、IMUL

本文参考了马维华老师的《微机原理与接口技术》一书 指令格式: MUL REG/MEM ;REG寄存器,MEM存储器 IMUL REG/MEM MUL和IMUL指令分别用于实现无符号数的乘法和有符号数的乘法运算。都只有一个源操作数,可以使寄存器或存储…

Android Resource介绍和使用

1. 相关文件夹介绍 在Android项目文件夹里面,主要的资源文件是放在res文件夹里面的。assets文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像xml,java文件被预编译,可以存放一些图片,html&#xff0c…

mysql.sock 111,错误2002(HY000):无法通过套接字’/var/run/mysqld/mysqld.sock’连接到本地MySQL服务器(111)...

在Ubuntu计算机上获取关于问题“ mysql”命令的错误:错误2002(HY000):无法通过套接字’/var/run/mysqld/mysqld.sock’连接到本地MySQL服务器(111)服务未以以下错误启动:rootbettorssidekick:/# service mysql startstart: Job failed to sta…

c语言中的break和continue

break和continue是C语言中的两条语句,这两条语句在循环和选择结构中经常会遇到。 break首先最长见与switch语句中。比如我们设计一个程序,通过输入学生的成绩来确定学生成绩等级,等级一共分为四等,分别是优秀、良好、一般、较差&a…

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(44)-工作流设计-设计表单...

构建ASP.NET MVC4EF5EasyUIUnity2.x注入的后台管理系统(44)-工作流设计-设计表单 原文:构建ASP.NET MVC4EF5EasyUIUnity2.x注入的后台管理系统(44)-工作流设计-设计表单系列目录 设计表单是比较复杂的一步,完成一个表单…

汇编语言中变量的声明

参考链接为:http://zhidao.baidu.com/link?urlQZiRv_6nAzF1XHOG83SwngS1HoRZXWSP2a0uQEHVDON1rP1a07xlXCiYUXd0ORQP32h_7Nhfd-afCMox8q8McKDATAS SEGMENT;定义数据段BUF0 DB 1;定义一个字节型变量,名称是BUF0,初始值是01HBUF1 DB "2&qu…

php标签嵌入规范,HTML标签嵌套的详细规则

这次给大家带来HTML标签嵌套的详细规则,HTML标签嵌套的注意事项有哪些,下面就是实战案例,一起来看一下。最近在重新学习HTML的知识,算是对HTML的一个重新认识吧!别小看了这东西,一切的网页可都是以它为基础…

6、动态方法调用和使用通配符定义

action名称后面:!方法名即可;使用通配符:12345678910111213<?xml version"1.0" encoding"UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""http://struts.apache.org/dtds…

Sql 函数大全 (更新中...由难到简

1.字符处理类&#xff1a; 1.1 指定指定字符输出的次数 select replicate(1a,5) 结果&#xff1a;1a1a1a1a1a &#xff08;5个1a&#xff09;转载于:https://www.cnblogs.com/shengwei/p/4479662.html

C错误处理

本文为个人学习笔记&#xff0c;仅用于个人学习、复习使用&#xff01;c语言不提供对错误处理的直接支持&#xff0c;但是作为一种系统编程语言&#xff0c;它以返回值得形式允许您访问底层数据&#xff0c;在发生错误时&#xff0c;大多数的c或Unix函数调用返回1或NULL&#x…

存储过程——存储过程与视图(三)

数据库视图&#xff1a;视图是虚表&#xff0c;是从一个或几个基本表&#xff08;或视图&#xff09;中导出的表&#xff0c;在系统的数据字典中仅存放了视图的定义&#xff0c;不存放视图对应的数据。 在sql中视图是基于sql语句的结果集的可视化的表&#xff1b;视图包含行和列…

php如何转类型,PHP数据类型转换

指的是将数据(变量)的值转换成目标数据类型。PHP中有两种数据类型转换方式&#xff1a;自动转换&#xff0c;强制转换自动转换&#xff1a;系统根据操作所需要的类型将变量的值进行对应类型的转换自动转换都是系统本身所做的事情&#xff0c;不需要用户去干预。强制转换&#x…

lr_start_timer,lr_get_transaction_duration,lr_get_transaction_wasted_time函数使用总结

lr_start_timer&#xff1a; 函数的功能&#xff1a; 为了计算时间更加精确&#xff0c;可以用这个函数去掉LR自身的检查点所浪费的时间。如text check and image time Action() { double time_elapsed; merc_timer_handle_t timer;web_url("487989.html","URLh…