在jmeter进行测试的时候,有时候,我们需要确定Jmeter究竟有没有正确工作,因为有时候,我们利用监听器查看的时候,监听器返回的结果是正确的,但是,实际上,我们发送的请求中的有些参数可能是错误的,系统并没有按照我们预期的方式进行相应,比如,一般典型的web应用一般都会:
1.有一个登录页,它是整个应用的入口。当用户登录之后,应用会将用户相关的安全信息放到session中。
2.有一个filter,它拦截请求,检查每个请求相关的session中是否包含有用户安全信息。如果没有,那么请求被重定向到登录页,要求用户提供安全信息。
在这种配置下应用前面介绍的测试计划,那么除了登录页之外的其它请求都将因为缺少用户安全信息,而使请求实际定位到登录页。如果不加断言,那么在监听器看来所有的请求都是成功。而实际上,这些请求最终都没有到达它们应该去的地方。显然,这种测试结果不是我们所期望的。
如果我们要确定Jmeter有没有按照我们的预期进行工作,我们应当考虑使Jmeter提供的断言,加到Sampler里面可以对返回的结果进行判断,例如判断HTTP返回结果里面是否含有某个字符串。如果断言为真,JMeter会标记请求为成功,否则标记为失败。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
要在JMeter中添加断言,我们首先要知道我们期望返回什么结果,比如我们利用jmeter测试http请求,向程序添加数据,同时,Jmeter又有查询的http请求,那么,我们当然要验证我们利用jmeter的http请求,是否成功添加了数据,这个时候,我们可以在查询的http请求中添加断言,如下图所示:
我们一般选择响应断言,如下图所示:
我们可以根据自己的需要选择要测试的响应字段,文本,还是代码,一般选择响应文本,然后,我们选择匹配规则,一般选择“包含”,如果要精确匹配,则可以选择“匹配”,但是选择“匹配”,因为响应的内容一般还包含其他的信息,比如html语言标签,所以很难准确匹配。然后在在要册似乎的模式下面,添加你要响应的内容。
添加好断言后,要添加一个监听器,以监听响应断言,选择添加——监听器——断言结果,则,如果在执行的时候,http请求返回的数据符合添加的断言内容,断言结果则为运行成功的灰色,否则,则为运行失败的红色。
以下是一个添加断言的例子,在这个例子中,主要是添加一条数据,然后再查询该数据,如下图所示:
在这个测试计划中,我们添加房型的时候,传递的roomTypeBean.roomID值是一个带参数的值,因为这个值是唯一的,所以,我们利用jmeter的time参数,给它一个参数化的值,这样每次添加的时候,该值都会根据时间的不同而变化。然后,在查询的时候,我们可以将这个值当作查询的条件,这样,每次执行,只要添加了数据,则查询的时候,就能够查询到新添加的数据,然后,在查询的时候,我们可以将这个值当作是断言。
因为Jmeter是根据测试计划中的元件顺序执行的,如果直接在查询的时候,将添加的时候,参数化的值当作断言,则因为取time的时间不一致,断言结果肯定是错误的,我们要先定义一个基于线程组的用户参数,将time函数当作一个用户参数,然后再在添加和查询,以及断言的时候,调用定义的用户参数,则可以解决这个问题。
添加jmeter的time函数,选择选项——函数助手,然后选择__time函数,如下图所示:
在“ormat string for SimpleDateFormat (optional)”中输入值“MMddhhmmss”,表示取月日时分秒。然后,点击生成,怎生成了time参数。
然后再在线程组中定义一个用户参数,具体是添加——前置处理器——用户参数,出现添加用户参数的界面,如下图所示:
在用户参数中,名称写你参数名称,如“current”,用户,输入在函数助手中生成的time参数${__time(MMddhhmmss,)}
添加好用户参数后,在添加和查询的时候,在需要参数化的地方输入定义的用户参数,具体格式是${参数名},比如,上面我们定义的参数名是curent,则参数值应该是${curent},在断言中,断言内容也应该是${curent}这个。
如果断言是选择断言的话,可以在要测试的模式中输入响应的数据,判断请求是否发生成功;
分享到:
相关推荐
很不错的j2se课件(ppt)!!!如果你认真学习每个ppt并自己敲完这些实例,你的java基础已经很优秀了!这些资料就是某些大学和培训机构一个学期或更长时间学习的! 为的是共同学习,共同进步! 注:本资料不承担任何...
chai-jquery, chai的jQuery断言 链chai是对断言库的一个扩展,它提供了一组jquery特定断言。用法在你的测试文件中包括 chai-jquery.js,在 jquery.js 和 chai.js ( 版本 1.0.0 -rc1或者更高版本) 之后:<s
在MATLAB编程中,数据结构和输入断言是两个重要的概念,它们对于编写高效、可靠的代码至关重要。在本文中,我们将深入探讨这两个主题。 首先,数据结构是组织和存储数据的方式。MATLAB提供了多种内建的数据结构,如...
面向对象程序设计中的断言是Java编程中一种重要的调试工具,它允许程序员在代码中插入检查点,确保特定条件在程序执行过程中始终为真。断言的使用可以帮助开发者尽早发现和修复逻辑错误,特别是在测试阶段。然而,...
本篇文档主要讲解了Robot Framework中的常用断言关键字,这些关键字在编写测试用例时扮演着至关重要的角色,确保测试结果的准确性。下面我们将深入探讨每个断言的关键字及其用法。 1. **should contain** 和 **...
### JUnit常用断言方法详解 #### 一、概述 JUnit 是一个用于编写和运行可重复测试的框架,主要用于Java程序的单元测试。在进行单元测试时,我们经常需要使用到断言方法来验证被测代码的行为是否符合预期。本文将...
断言在编程中是一种非常重要的调试工具,尤其是在测试过程中,用于验证代码的预期行为。在Node.js中,`assert`模块提供了丰富的断言方法来帮助开发者确保程序的正确性。以下是对`assert`模块中各个方法的详细说明: ...
**strikt——Kotlin的断言库** 在软件开发中,测试是不可或缺的一环,它确保了代码的质量和稳定性。Kotlin,作为一种现代、类型安全的编程语言,提供了丰富的工具来支持测试。其中,`strikt`是一个专为Kotlin设计的...
使用断言 .....枚举 ..........概述 ..........定义枚举 .....泛型 ..........概述 ..........定义泛型类 .....注解(Annotation) ..........概述 ..........注解的定义/使用/解析 .....I/O_体系 ..........认识IO .....
断言在接口测试中扮演着关键角色,确保接口的行为符合预期。本文将深入探讨如何在Postman中设置断言,以及如何通过JavaScript脚本来编写预置脚本(Pre-request Script)和测试脚本(Test Script)。 首先,我们来...
fest-assert-2.x, FEST断言 2.x fest断言为断言提供了一个连贯的接口。例如:int removed = employees.removeFired();assertThat(removed).isZero();List<Employee&g
### Web服务策略断言语言(WS-PolicyAssertions) #### 一、引言 Web服务策略断言语言(WS-PolicyAssertions)是一项旨在为Web服务提供一套标准的消息处理策略的规范。这一规范由BEA Systems、IBM、Microsoft和SAP...
在探讨Java编程语言中的断言使用时,我们首先需要了解断言是一种开发调试工具,用于在程序运行时检查代码中的特定条件是否满足。如果条件为真,则程序正常运行;如果为假,则会抛出一个AssertionError异常,终止程序...
Jmeter断言的使用方法 Jmeter断言是Jmeter提供的一种功能,用于判断测试结果是否符合预期。通过添加断言,用户可以验证Jmeter是否正确地执行了测试用例,并确保测试结果的准确性。 在Jmeter中,断言可以用来判断...
标题中的"atrium,kotlin的断言库.zip"表明这是一个与Kotlin编程语言相关的断言库,名为Atrium,并且它已经打包成ZIP格式的压缩文件。断言库通常用于在开发过程中进行单元测试,帮助程序员确保代码在特定条件下应该...
Funsert 功能断言库 安装 $ npm install --save funsert 用法 var is = require ( 'funsert' ) ;...funsert(断言...) 用and组合断言。 funsert.ok(检查,[消息]) 如果返回false ,则运行check功能并抛