Jmeter使用笔记之意料之外的

以下是在测试过程中按照以前loadrunner的思维来做的一点区别:

一、组织方式之setup

在用loadrunner做接口测试的时候如果不是针对login的测试,那么一般也会把login接口放到init中,然后通过关联取得sessionid,userid等值用在后面测试中。

那么在做Jmeter的测试时理所当然的想到了这种组织方式,所以就这么用了,但是却引来了一个不容忽视的问题。

把login放到setup中,登录无论是通过cookie还是session都会存在同一个问题,那就是作用域,cookie的作用域是线程组,因此在测试线程组中没法获取这些值,

session也是一样,虽然能够统通过属性来获得这些值,但是属性是固定的,不适合多个线程共同执行。无奈只能放弃这种方法。而改用一次控制器来进行这种操作。

二、cookie的管理方式

在用loadrunner的时候这种方式都是关联得到的,因此在Jmeter的使用过程中也想当然的这么理解了,在用badboy录制完脚本后,发现cookie是空的还很奇怪,

难道录制有问题?

然后自己通过关联的方式取得一些和用户相关的键值保存到cookie中,后来在测试中发现一些自己没有保存的值cookie中也存在,感觉很是奇怪,查了资料发现

Jmeter的cookie是自动管理的,只需要添加一个cookie的容器即可,会自动的根据response header的部分进行cookie的设置。也算是理解了这种工作方式。

三、session的管理方式

在loadrunner中同样sessionid也是通过关联取到的,但是Jmeter中却没有这么麻烦,只需要添加HTTP URL 重写修饰符即可,如下

只需要指定一个参数那么就会在以后的每次请求中自动带上这个sessionid了。

时间: 2024-10-27 10:43:06

Jmeter使用笔记之意料之外的的相关文章

【转】jmeter学习笔记——一种简单的数据库性能测试方法

前提条件:一个数据库:test   数据库下面有一张表:user   表中有两个字段:username.passworld . 要求:往数据库内大批量插入数据,1000/s 其实和之前的方法一样,为了简单,我还是把截图贴出来吧. 1.创建一个测试计划,将我们所使用的数据库驱动包导入. 2.添加一个线程组,并设置我们的虚拟用户数.启动时间.和循环次数 3.创建一个线程,并在线程下面,创建一个JDBC Connection Configuration ,设置相关信息. 4.创建一个JDBC Requ

【转】jmeter学习笔记——参数化

JMeter也有像LR中的参数化,本篇就来介绍下JMeter的参数化如何去实现. 参数化:录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户来登录系统. 这个时候就需要对用户名和密码进行参数化,使每个虚拟用户都使用不同的用户名和密码进行访问. 一.准备脚本,测试数据 1.录制一个脚本(可以用badboy工具录制),在jmeter中打开,找到有用户名和密码的页面.如下: 2.我们需要“参数化”的数据,用记事本写了五个用户名和密码,保存为.

【转】jmeter学习笔记——关联

依照<[转]jmeter学习笔记——一个简单的接口测试>一文中的例子,记录讨论关联 所谓关联, 就是第二个Requst, 使用第一个Request中的数据 我们需要在第一个Http Requst 中新建一个正则表达式,把Response的值提取到变量中,提供给别的Http Request 使用 选择第一个Http Request, 右键 Add -> Post Processors -> Regular Expresstion Extractor 现在新建第二个Http Reque

JMeter 学习笔记从不懂慢慢提升(01)

开源已经成为一个趋势,虽然说做测试是一个低端的行业,但是我们也应该在这个低端的行业慢慢提升自己,让自己到达理想的高度. 以前说如果你会使用loadrunner可能别人就会觉得你有一定的水平那么就会拿高薪聘请你,可是现在已经不一样了,如果你只是会实用工具还不行,而且还是那高昂的收费工具,你应该学会语言,脚本语言.开发语言~~~~~~~~~~~ 以前总听他们说JMeter但是自己并没有在意,但是现在因为项目需要慢慢的弄了,这里分享一下学习过程. 一.环境搭建 1.JMeter的环境搭建这个和java

【Jmeter自学笔记7----Badboy与jmeter脚本录制】

下载地址:http://www.badboy.com.au Badboy时一个强大的工具,旨在帮助测试和开发复杂的动态应用.Badboy包括一个简单而全面的捕获/回放界面,强大的负载测试的支持,详细的报告图表等等,从而使Web测试和开发变得更加容易. 关于录制时的脚本错误提示 访问者所实用的浏览器不能完全支持页面里面的脚本,形成"脚本错误".遇到"脚本错误"时一般会弹出一个非常难看的脚本运行错误警告窗口,而事实上,脚本错误并不会影响网站浏览,因此这一警告可谓多此一举

Jmeter使用笔记之组件的作用域

以前一直使用loadrunner,最近入职新公司后需要使用jmeter,这里把使用过程中出现的一些问题进行总结,同时会和自己使用loadrunner的情况相比较,以后也会不断总结,GO! 一.组件的作用域 元件收集其作用范围的每一个sampler元件的信息并呈现,在jmeter中,元件的作用域是靠测试计划的的树型结构中元件的父子关系来确定的,作用域的原则是: 采样器(sampler):元件不和其它元件相互作用,因此不存在作用域的问题. 逻辑控制器(Logic Controller):元件只对其子

Jmeter使用笔记之函数

用Jmeter才做了一个项目的测试,就不得不对函数这部分吐槽一下,真是有点弱,难怪大多数人不用这个功能,不过如果用的好也是很方便的,以下慢慢说. 一.BeanShell函数 在测试中遇到了时间戳的加减,查到发现__BeanShell可以做表达式的运算,满心欢喜的用了,结果发现没有结果,再三确认发现不是自己使用的问题,随即 测试了12+12,发现没有问题.最后猜测应该是这个函数是int类型的计算,测试后发现这里的最大值就是int类型的最大值.(心里又默默的吐槽了一番为何 不弄成long类型呢?)

JMeter学习笔记--详解JMeter逻辑控制器

JMeter使用逻辑控制器来决定采样器的处理顺序 简单控制器(Simple Controller):存储设备(将某些采样器归组) 循环控制器(Loop Controller:设置循环次数 仅一次控制器(Once Only Controller) 交替控制器(Interleave Controller) 随机控制器(Random Controller) 随机顺序控制器(Random Order Controller): 每个子测试元件都至多执行一次,但是执行顺序是随机的 吞吐量控制器(Throug

JMeter学习笔记--创建数据库测试计划

添加线程组(并发用户):线程数(10),Rame-Up Period(0), Loop Count(3) 线程组添加JDBC请求(配置元件):Variable Name(MySQL), Database URL:(jdbc:mysql://localhost:port/mydb), JDBC Driver class (com.mysql.jdbc.Driver), Username:(数据库用户名), Password:(数据库用户密码),其他输入域可以保持默认值不变,JMeter会使用控制面