Jmeter 后置处理器

如何获取HTTP请求 响应结果的数据? 此文以获取产品ID为例进行演示。 如下为请求相应数据中的部分数据,我们最终要获取的数据为: productid=1602171116hezongjiaotong中的1602171116hezongjiaotong。 {productid=1602171116hezongjiaotong productid=2016002100000000guoqibao productid=201600210000000guahaobao productid=201601060931huanqiuwuyou productid=20160119142600luxingxiaa} 那么如何获取呢?Jmeter提供的后置处理器则为我们提供了获取方法。以下我们以正则表达式提取器为例进行说明,添加的路径为【添加/后置处理器/正则表达式提取器】,添加后目录结果如下: 对应添加的在正则表达式如下所示: 正则提取器说明: Apply to:应用范围 要检查的响应字段:样本数据源。 引用名称:其他地方引用时的变量名称,引用方法:${引用名称} 正则表达式:数据提取器,如上图的productid=(.*)不熟悉正则的,劳烦联系度娘或者谷大爷,谢谢! 模板:对应正则表达式提取器类型,样式为:1。若为:0,则为所有的匹配数据,例如:productid=1602171116hezongjiaotong其中1602171116hezongjiaotong 为 (.*) 匹配的数据,即最终提取的目标部分。若模板为:1,则 1 对应正则表达式中的 (.+?) 匹配数字:正则表达式匹配数据的最终结果可以看做一个数组,匹配数字即可看做是数组的第几个元素。当为 0 时,随机返回匹配的数据,当为 1 时,表示返回匹配结果数组的第一个元素。 缺省值:匹配失败时的默认值。通常用于后续的逻辑判断,一般通常为特定含义的英文大写单词组合,简单可写为 ERROR。  

Jmeter 代理服务器设置

(一)设置Jmeter之web代理,操作步骤我们以gif图代替。 第一步:在“工作台”添加http代理服务器 第二步:添加一个线程组 第三步:在代理服务器上设置各项参数,并启动代理服务器 第四步:设置浏览器的代理,必须跟代理服务器 保持一样的参数 第五步:在浏览器操作,检查jmeter是否有录制相关操作。 第六步:设置浏览器代理。 第七步:选择就可以愉快的进行操作了。 (二)设置Jmeter之app代理,操作步骤如下所示: 第一步:设置jmeter代理服务器,与设置web代理的第五步一致 第二步:找到本机链接的ip地址:打开CMD命令行工具,输入ipconfig 第三步: 打开手机wifi设置,必须跟代理服务器 保持一样的参数 第四步:可以启动手机上任一app,可以看到所有的请求都被发送到jmeter了。 注意:第一:录制结束后,一定要去掉代理,否则你的浏览器、手机在代理断开后上不了网。 第二:手机必须跟jmeter代理服务器在同一网段内

Jmeter之定时器

简单来说一下,虽然我们常说的“多用户并发测试”,但是真正的并发是不存在的,为了更真实的模拟并发,我们采用集合点。比较常见的就是用户登录。下面我们就模拟多用户同时登录。 1、启动GUI界面,并添加登录接口 2、添加集合点 3、集合点用法 Number of Simulated Users to Group by:集合多少人后再执行请求(也就是执行的线程数) 注意:等同于设置为线程租中的线程数,一定要确保设置的值不大于它所在线程组包含的用户数。 Timeout in milliseconds:指定人数 多少秒没集合到算超时(设置延迟时间以毫秒为单位) 注意:如果设置Timeout in milliseconds为0,表示无超时时间,会一直等下去。 线程数量无法达到”Number of Simultaneous Users to Group by”中设置的值,那么Test将无限等待,除非手动终止。 4、查看结果树 至此,jmeter之定时器使用及配置告一段落。

Jmeter 分布式部署遇到的问题

1、远程启动测试,响应数据为空 远程运行jmeter脚本,主机无性能响应数据。如下图: 从机的jmeter server 显示链接后立即结束,看似执行实则未执行。 解决办法: 1、jmeter 脚本若有csv data configure测试数据,主机和从机两边都要存放。且从机中测试数据的存放路径和主机中的路径一定要保持一致。  2、在原因1的基础上,主机的测试数据地址要用绝对路径,从机的测试数据绝对路径或相对路径均可。 2、从机若的Vm影响远程链接。如下图: 解决办法: 关闭虚拟机,并撤销共享盘。 原因是:从机安装有vm或将某个盘设置了共享权限的时候,主机在配置该从机时除IP地址外,虚拟机ip或者共享盘ip也会出现在远程连接待选列表中,连接时报错。 3、运行报:outofmemery错误 修改jmeter.bat设置的内存大小 解决办法: 修改D:\apache-jmeter-2.13\bin\jmeter.bat文件。 将 set HEAP=-Xms256m -Xmx256m set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m 改为: set HEAP=-Xms256m -Xmx1024m set NEW=-XX:NewSize=128m -XX:MaxNewSize=512m 根据经验,heap最多设置为物理内存的一半,默认设置为512M.如果heap超过物理内存的一半,可能运行jmeter会慢,甚至出现内存溢出,原因java比较吃内存,占CPU。 4、主从机不在同一网段报:远程链接错误。如图: 解决办法: 1、主从机选择同一个网段内; 2、关闭从机的防火墙。 以上为我在jmeter分布式部署当中遇到的一些问题,在此做以说明。

Jmeter利用JDBC Connection Configuration从数据库读取数据并关联变量

1、下载mysql jar包 下载地址:http://pan.baidu.com/s/1c2bo8Q 密码:gh62 查看jar包支持的mysql版本: http://dev.mysql.com/doc/connector-j/en/connector-j-versions.html 查看mysql数据库版本:SELECT VERSION(); 注:如果下载的jar包版本不支持mysql数据库,运行Jmter时可能会报错:no suitable driver found for jdbc:mysql//…….. 为Jmeter添加jar文件 下载后解压.zip文件,把mysql-connector-java-x.x.x-bin.jar(例中:mysql-connector-java-commercial-5.1.25-bin.jar)放到Jmeter安装目录下的lib目录下(例中:D:\Program Files\apache-jmeter-2.13\lib) 下面我将从数据库查询所有的产品id,并将产品id作为参数传入下一个请求。 步骤如下: 2、启动jmeter客户端,添加 JDBC Connection Configuration元件 右键线程组–>添加–>配置元件–>JDBC Connection Configuration。 配置如下图所示:   配置信息说明: Database URL:jdbc:mysql://mysql_host_ip:mysql_port/mysql_db_name JDBC Driver class:com.mysql.jdbc.Driver username:数据库用户名 password:数据库密码 3、添加JDDBC REQUEST 元件 右键线程组–>添加–>sampler–>JDBC  REQUEST 配置如下图所示:   配置信息说明: Variable name:此处填写添加jdbc connection configure时填写的变量名,以便建立关联 4、添加 后置处理器 元件 右键线程组–>添加后置处理器–>正则表达式 配置如下图所示:   本例中,我只提取前一个请求返回的产品id…

jmeter windows下分布式部署

前提条件: 主从机在同一网段内 主从机关闭防火墙 主从机使用同一版本的jmeter、jmeter插件、jdk 主从机配置: 开始—->运行。输入cmd进入dos窗口,ipconfig获取从机ip地址 在主机找到Jmeter  bin目录下jmeter.properties文件,修改如下:  remote_hosts=从机1ip地址:1099,从机2ip地址:1099 注释掉如下行:server_port=1099;server.rmi.localport=1099 其中:1099为jmeter默认端口,用户可自定义。 启动主从机: 从机启动jmeter-server.bat 脚本 主机启动jmeter.bat,并配置测试计划;若测试计划中含有csv data set config元件,则必须在从机的相同目录下拷贝一份csv的参数文件。 在jmeter  GUI界面,点击“运行—->远程启动  ”选择某一个从机来进启动,也可启动全都的从机