Jmeter断言的操作(带实例)

上一篇 / 下一篇  2007-12-11 17:06:07 / 个人分类:JMeter

jmeter进行测试的时候,有时候,我们需要确定Jmeter究竟有没有正确工作,因为有时候,我们利用监听器查看的时候,监听器返回的结果是正确的,但是,实际上,我们发送的请求中的有些参数可能是错误的,系统并没有按照我们预期的方式进行相应,比如,一般典型的web应用一般都会:

 

1.有一个登录页,它是整个应用的入口。当用户登录之后,应用会将用户相关的安全信息放到session中。

2.有一个filter,它拦截请求,检查每个请求相关的session中是否包含有用户安全信息。如果没有,那么请求被重定向到登录页,要求用户提供安全信息。

 

在这种配置下应用前面介绍的测试计划,那么除了登录页之外的其它请求都将因为缺少用户安全信息,而使请求实际定位到登录页。如果不加断言,那么在监听器看来所有的请求都是成功。而实际上,这些请求最终都没有到达它们应该去的地方。显然,这种测试结果不是我们所期望的。

 

如果我们要确定Jmeter有没有按照我们的预期进行工作,我们应当考虑使Jmeter提供的断言,加到Sampler里面可以对返回的结果进行判断,例如判断HTTP返回结果里面是否含有某个字符串。如果断言为真,JMeter会标记请求为成功,否则标记为失败。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

 

要在JMeter中添加断言,我们首先要知道我们期望返回什么结果,比如我们利用jmeter测试http请求,向程序添加数据,同时,Jmeter又有查询的http请求,那么,我们当然要验证我们利用jmeterhttp请求,是否成功添加了数据,这个时候,我们可以在查询的http请求中添加断言,如下图所示:

 

 

我们一般选择响应断言,如下图所示:

 

我们可以根据自己的需要选择要测试的响应字段,文本,还是代码,一般选择响应文本,然后,我们选择匹配规则,一般选择“包含”,如果要精确匹配,则可以选择“匹配”,但是选择“匹配”,因为响应的内容一般还包含其他的信息,比如html语言标签,所以很难准确匹配。然后在在要册似乎的模式下面,添加你要响应的内容。

 

添加好断言后,要添加一个监听器,以监听响应断言,选择添加——监听器——断言结果,则,如果在执行的时候,http请求返回的数据符合添加的断言内容,断言结果则为运行成功的灰色,否则,则为运行失败的红色。

 

以下是一个添加断言的例子,在这个例子中,主要是添加一条数据,然后再查询该数据,如下图所示:

在这个测试计划中,我们添加房型的时候,传递的roomTypeBean.roomID值是一个带参数的值,因为这个值是唯一的,所以,我们利用jmetertime参数,给它一个参数化的值,这样每次添加的时候,该值都会根据时间的不同而变化。然后,在查询的时候,我们可以将这个值当作查询的条件,这样,每次执行,只要添加了数据,则查询的时候,就能够查询到新添加的数据,然后,在查询的时候,我们可以将这个值当作是断言。

 

因为Jmeter是根据测试计划中的元件顺序执行的,如果直接在查询的时候,将添加的时候,参数化的值当作断言,则因为取time的时间不一致,断言结果肯定是错误的,我们要先定义一个基于线程组的用户参数,将time函数当作一个用户参数,然后再在添加和查询,以及断言的时候,调用定义的用户参数,则可以解决这个问题。

 

添加jmetertime函数,选择选项——函数助手,然后选择__time函数,如下图所示:

在“ormat string for SimpleDateFormat (optional)”中输入值“MMddhhmmss”,表示取月日时分秒。然后,点击生成,怎生成了time参数。

 

然后再在线程组中定义一个用户参数,具体是添加——前置处理器——用户参数,出现添加用户参数的界面,如下图所示:

 

在用户参数中,名称写你参数名称,如“current”,用户,输入在函数助手中生成的time参数${__time(MMddhhmmss,)}

 

添加好用户参数后,在添加和查询的时候,在需要参数化的地方输入定义的用户参数,具体格式是${参数名},比如,上面我们定义的参数名是curent,则参数值应该是${curent},在断言中,断言内容也应该是${curent}这个。

 

 


TAG: JMeter 断言 用户参数 jmeter函数

引用 删除 ???????????   /   2015-04-30 19:31:12
拜托复制粘贴也专业点好不
pplin86的个人空间 引用 删除 pplin86   /   2011-07-21 11:40:14
例子?
xiangfeinewco的个人空间 引用 删除 xiangfeinewco   /   2010-09-09 15:26:35
例子呢,怎么没啊
软件测试*测试的不仅是软件 引用 删除 gucciyoung   /   2008-11-12 18:29:40
为什么没有图??
软件测试*测试的不仅是软件 引用 删除 gucciyoung   /   2008-11-12 18:29:40
为什么没有图??
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar