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安装完成。

jenkins 分布式构建配置

jenkins 分布式构建步骤如下:

1、系统管理—-管理节点。

2、新建节点

3、节点配置

说明:若“启动方法”无“Launch agent via java web start”一项,则需按照以下步骤进行设置。

a、进入:系统管理–configure global security。

b、开启“tcp  port  for  jnlp agents” 选择“随机获取”

4、下载安装节点服务

a、回到节点列表

b、选中刚才新增的节点,进入到节点详情

点击“Launch”下载文件“slave-agent.jnlp、slave.jar”将其复制到远程服务器工作目录下即E:\test\1。再其目录下以命令行运行:

java -jar slave.jar -jnlpUrl http://192.168.1.132/computer/slave/slave-agent.jnlp -secret 262630f06c00f210b28f548564e7e5768e81dfff7d932d658ca063c00e3ac9fc

至此节点配置完成。辣么问题来了:节点创建好了,那如何跟项目关联起来呢?

首先:我们点击项目名称右边的小箭头,选中“配置”

其次:在“general” 标签选中“Restrict where this project can be run” 在“Lable expression”处输入节点名称。

至此节点是如何创建的、以及节点跟项目是如何关联的。所有的配置到此都已结束。

备注:slave与master中的jdk、maven目录和文件名一致。以便管理,不容易出现其他问题

jenkins 发送邮件配置

jenkins自动配置邮件通知步骤如下:

1、打开系统管理—-系统配置


2 、在jenkins location–输入系统管理员邮箱地址


3、在“邮件通知”处置设如下
a、smtp服务器名称:smtp.163.com


b、勾选SMTP认证输入用户名(与系统管理员邮箱一致)及密码(即客户端授权码非登录密码)

c、勾选“通过发送测试邮件测试配置”,然后输入收件人地址。


备注:以jenkins 2.32.1版本,163邮箱为例,其余邮箱自行折腾。

至此jenkins发送邮件配置结束。