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

5、添加sampler 元件。

目的:将前一个请求返回值作为参数传递给该请求

右键线程组–>添加–>sampler–>HTTP  REQUEST

配置如下图所示:

配置信息说明:

用${}来调用后置处理器的。此处的变量名填写后置处理器的引用名称,以便建立后置处理器与下一个请求之间的关联

6、添加结果树

目的:方便查看运行结果

右键线程组–>添加–>监听器–>查看结果树

7、运行测试计划。

运行测试计划。运行结果如下图:

至此,jmeter链接数据库以及关联变量到此结束。

 

jmeter windows下分布式部署

前提条件:

  1. 主从机在同一网段内
  2. 主从机关闭防火墙
  3. 主从机使用同一版本的jmeter、jmeter插件、jdk

主从机配置:

  1. 开始—->运行。输入cmd进入dos窗口,ipconfig获取从机ip地址
  2. 在主机找到Jmeter  bin目录下jmeter.properties文件,修改如下:
    •  remote_hosts=从机1ip地址:1099,从机2ip地址:1099
    • 注释掉如下行:server_port=1099;server.rmi.localport=1099
    • 其中:1099为jmeter默认端口,用户可自定义。

启动主从机:

  1. 从机启动jmeter-server.bat 脚本
  2. 主机启动jmeter.bat,并配置测试计划;若测试计划中含有csv data set config元件,则必须在从机的相同目录下拷贝一份csv的参数文件。
  3. 在jmeter  GUI界面,点击“运行—->远程启动  ”选择某一个从机来进启动,也可启动全都的从机

jenkins 通过git获取代码

在jenkins中通过git插件获取代码时会要求jenkins必须有获取代码的权限。在jenkins项目时可以通过下述方法来配置:

1、启动jenkins并在浏览器访问你的jenkins即:http://your ip:8080

2、在jenkins上配置credentials,在创建项目时使用。其配置方法如下:

a、在jenkins左边目录树依次点击credentials—-system—-add domain,如图:

其中:domain name:为方便起见填写git服务器的地址;description :为描述性文字可填可不填。

b、点击“ok”后,再点击“adding some credentials”,如图:

点击“adding some credentials”弹出页面如下:

 

其中:

kind:有username with password、SSH Username with private key。这个根据实际情况选择,这里我们选择“username with password”.

username:一般取项目名称,用来在创建项目时使用该credentials。如图:

保存后,jenkins就可以通过git插件来获取代码了。

要验证,单击新建项目在 Jenkins 的菜单选项。然后输入一个名称的工作,在以下示例中,输入的名称为”test2″,选中“构建一个maven项目”
点击“确定”后。标签切换到“源码管理”如下图:

 

jenkins 定时构建项目

jenkins 如何定时构建项目。

首先进入job配置页,选择“构建触发器”如下图:

其中“Build periodically”、“poll scm”都可实现自动获取代码。

“Build periodically” 定期构建code。但其不关心code是有发生变化。配置信息如下:

0-2 * * * *  表示:每隔2小时去构建一次

“poll scm”定时检查code变更。若有变动就checkout,然后执行构建动作。配置信息如下:

H/5 * * * *  表示:每隔5分钟去检查代码库

备注:poll scm 时间格式说明:

MINUTE HOUR DOM MONTH DOW

MINUTE 一小时内多少分钟(0-59)

HOUR    一天内多少小时(0-23小时)

DOM     一个月内多少天(1-31)

MONTH  每月(1-12)

DOW     星期几(0-7),其中0和7都表示周日。

如果要指定一个字段允许多个值,就按下面提供的操作步骤(指定)。
优先顺序如下:

‘*’                       可用来指定所有有效的值。

‘M-N’                   可以用来指定一个范围,比如“1-3”

‘M-N/X’或’*/X’      可用于在指定范围内跳跃一个X的值,比如在MINUTE字段中”*/15″表示”0,15,30,45″,”1-6/2″表示”1,3,5″。

 

jenkins git maven配置

1、下载和设置maven

点击给出的链接就可以打开maven的官方网站,如下图所示

一单文件被下载,解压文件到任意目录下。(我的解压目录为:E:\tool\apache-maven-3.3.9)

2、设置jenkins与maven

在浏览器访问你的jenkins即:http://your ip:8080

然后点击“系统管理—-管理插件”如图
在插件管理中,选择“可选插件”搜索“Maven Integration plugin”并下载重启jenkins。

 

然后点击“系统管理—-系统设置”如图

进入系统设置配置页。如图

在配置系统屏幕上滚动,直至看到 Maven 部分,然后点击“Add Maven’按钮。
取消选中“Install automatically”选项。
添加名称和设置 MAVEN_HOME 的位置。
然后,在屏幕的末尾点击“Save”按钮。
我们现在就可以去创建一个maven项目。
3、下载和设置git
点击给出的链接,就就可以进入到git的官网网站,如下图
一单文件被下载,安装到任意目录。(我的安装目录为:C:\Program Files)
4、设置jenkins 与git
在浏览器访问你的jenkins即:http://your ip:8080
然后点击“系统管理—-管理插件”如图
在插件管理中,选择“可选插件”搜索“git plugin”并下载重启jenkins。如下图:
Jenkins 重新启动后,我们需要在系统管理—-global—-tool—-configuration中进行维护,如图:
维护页面如下所示:
 要验证,单击新建项目在 Jenkins 的菜单选项。然后输入一个名称的工作,在以下示例中,输入的名称为”test2″,选中“构建一个maven项目”
点击“确定”后。标签切换到“源码管理”如下图:
至此:jenkins 与git 结合结束。

jenkins 安装

下载jenkins

点击给出的链接,就可以访问jenkins官方首页了。如下图所示:

默认情况下,我们选择“LTS release”版本。下载jenkins.war文件,这里选择下载最新的版本如下图所示:

启动Jenkins

打开命令提示符进入到jenkins.war存放目录下。执行以下命令:

java -jar jenkins.war

执行完后,在命令提示符会输出以下行:

访问jenkins

一单jenkins已经启动并成功运行,在浏览器上输入http://your ip:8080或http://localhost:8080 都将出现jenkins成功页。如图:

到此,jenkins安装完成。