Linux下安装LoadRunner LoadGenerator

LR的负载机安装在linux的理由:
1、windows xp,双核+4G内存,基本上每个vuser会消耗2-5m的内存,单机300-500的虚拟用户时,CPU已经超过90%,此时整个测试系统的瓶颈实际上是负载机,已经无法真实反映系统性能。当然可以通过多负载机的模式来实现,但是这样的测试环境构造起来成本比较高,性价比不高。
2、很多时候,被测试环境是放在机房的,那么在机房丢一台windows机器进去不太现实,即使丢进去了,远程连接的稳定和安全性也不够理想。
   因此,在linux服务器上,直接安装LR的负载端程序,从环境和性价比而言,都是一个不错的选择。
HP的LR负载端,最高版本到了11.5,下载地址在HP网站上,不过很不容易找到,我放一个到网盘上去,方便大家下载吧。网盘地址:http://pan.baidu.com/share/link?shareid=1375126821&uk=339142937
   闲言少叙,书归正传,下面开始正式干活了。
   linux 负载机的环境:

1
2
3
4
5
LSB Version: :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 5.7 (Final)
Release: 5.7
Codename: Final

   安装步骤:
1、远程登录到服务器上,切换到root用户下,必须要root账户才行;
    linux1

2、先安装一个rpm包,compat-libstdc++-33-3.2.3-61.i386.rpm,
很多系统都缺少这个rpm包,先安装上吧,包地址为:http://pan.baidu.com/share/link?shareid=1560421269&uk=339142937

1
[root@bogon lixin]# rpm -ivh compat-libstdc++-33-3.2.3-61.i386.rpm

linux2

3、开始安装客户端,先解压安装文件
[root@bogon lixin]# unzip linux_fuzai.zip
linux3

4、进入Linux文件夹,运行安装程序installer.sh

1
2
[root@bogon lixin]# cd Linux
[root@bogon Linux]# sh installer.sh 

linux4
这个时候会报错,提示一些脚本文件权限不足,为了方便起见,一次更改Linux下所有文件的权限。

1
2
[root@bogon Linux]# cd ..
[root@bogon lixin]# chmod 777 -R Linux/

linux5

可以看见权限全部被更改过来了
5、再次进入Linux目录,运行安装脚本
linux6

这样表示正式开始安装,首先提示你是否需要继续安装,输入’n’
linux7

提示你要不要看一看授权文件等等,不用看了,直接Agree吧。
linux8

最后让你确认一下是否需要安装,退出之类的,肯定选择‘i’,继续安装了。
linux9

安装完成了,问你是否要直接结束,还是看一下Log,懒得看的话,直接’f’结束好了。
linux10

     到了这一步,基本安装就结束了。
6、增加一个LR 负载端的客户higkoo

1
[root@bogon Linux]# useradd -g 0 -s /bin/csh higkoo

    这个时候已经确认了higkoo这个用户默认使用的shell为csh。
    这里多说一下,shell只是linux的一个外壳,每个linux都会有一个默认的shell程序,在centos下,默认shell应该是bash,但是LR使用的csh,这两者本质上没什么区别,但是在接下来的配置里面,会有一点点区别。可以用命令看一下,higkoo这个用户默认使用的是csh。

1
[root@bogon Linux]# more /etc/passwd

linux11

7、修改部分LR的配置。
    csh和bash有一个区别,就是在加载不同的shell时,可以加载不同的配置。
    csh的默认配置在 /etc/csh.cshrc 下,bash的默认配置在 /etc/profile 。在这两个配置文件中,
可以加载一些shell的环境变量。
    LR默认给出了一个环境变量的配置文件,文件在 /opt/HP/HP_LoadGenerator/env.csh 。可以看见,*.csh这样的配置文件其实是csh的配置文件的格式,默认的文件内容应该是:
linux12

    env.csh 这个配置目前还没有引入到csh的默认配置里面,我们手工修改一下,让它默认加入环境变量,这样就非常方便了。

1
[root@bogon HP_LoadGenerator]# vi /etc/csh.cshrc

在文件的最后一行加上 source /opt/HP/HP_LoadGenerator/env.csh ,这样就可以将lr的配置导入csh的默认配置。
8、切换到higkoo用户,验证一下程序是否安装成功。

1
2
[root@bogon HP_LoadGenerator]# su higkoo
[higkoo@bogon HP_LoadGenerator]$ env

linux13

验证一下程序安装的情况,验证程序为 /opt/HP/HP_LoadGenerator/bin/verify_generator

1
2
[higkoo@bogon bin]$ cd /opt/HP/HP_LoadGenerator/bin
[higkoo@bogon bin]$ ./verify_generator 

此时出现提示页面如下:
linux14

要求我们设置一个DISPLAY 变量,我们直接修改env.csh文件来解决。
先切换到root用户下,因为两个原因:
1、env.csh文件对higkoo用户是只读的,无法修改
2、修改env.csh用户,相当于修改csh的配置,这个时候需要重新进入一下csh,才能生效
所以我们先退回到root下,修改env.csh 文件。

1
[root@bogon HP_LoadGenerator]# vi /opt/HP/HP_LoadGenerator/env.csh

直接在文件最后方加上 setenv DISPLAY 0.0
linux16
 
切换到higkoo用户,再次运行验证程序。

1
2
3
[root@bogon HP_LoadGenerator]# su higkoo
[higkoo@bogon HP_LoadGenerator]$ cd /opt/HP/HP_LoadGenerator/bin
[higkoo@bogon bin]$ ./verify_generator 

linux17
非常顺利,全部通过。
9、启动LR 负载端。

1
2
[higkoo@bogon bin]$ cd /opt/HP/HP_LoadGenerator/bin
[higkoo@bogon bin]$ ./m_daemon_setup start

正常情况下,这个时候应该可以启动,但是我安装到这里的时候报错了,见截图。
linux18

检查一下log,log在/tmp 路径下,有一个错误日志,检查之后发现,可能是一个根据主机名称获取主机ip的程序有问题,无法根据主机名称获取到ip。

1
27/08/2013 00:10:25 Error: Communication error: Failed to get the server host IP by calling the gethostbyname function

linux19

看一下当前shell下的环境变量,发现主机名称是bogon,再ping 一下bogon,无法连接上。
切换到root下,更改hosts配置,把bogon指向127.0.0.1 .
linux20

再次切换到higkoo,重新运行启动程序,正常启动。

1
2
3
4
5
[root@bogon HP_LoadGenerator]# su higkoo
[higkoo@bogon HP_LoadGenerator]$ cd /opt/HP/HP_LoadGenerator/bin
[higkoo@bogon bin]$ ./m_daemon_setup start
m_agent_daemon ( 26299 ), 
[higkoo@bogon bin]$ ps aux | grep m_agent_daemon

linux21
    至此,LR的linux负载端安装全部完成。
附录:
    本次安装是在csh下安装完成的,如果想在bash下安装,可以在HP_LoadGenerator 下建立一个 env.sh文件,文件内容如下,再将该文件 引入到 /etc/profile 的最后一行,最后修改 /etc/passwd中的higkoo配置为bash,即可使用bash来安装程序。其余步骤一样。

1
2
3
4
5
6
#/bin/bash
export PRODUCT_DIR=/opt/HP/HP_LoadGenerator
export M_LROOT=$PRODUCT_DIR
export LD_LIBRARY_PATH=$M_LROOT/bin:$M_LROOT/lib:/usr/lib
export DISPLAY='0.0'
export PATH=$PATH:$M_LROOT/bin