loadrunner tuxedo协议测试

来源:互联网 发布:js统计人数 编辑:程序博客网 时间:2024/05/18 01:33

环境描述:
服务器操作系统:Linux 2.6.18-194.el5
测试的机系统:winxp sp3
测试软件:loadrunner 9.5

tuxedo版本:11G


一. --------- 在服务器 simpapp 服务器端部署 ------------

前提:在 linux 服务器上建立 oracle 用户,并用oracle用户登陆到系统中

1.下载安装 tuxedo
 ./tuxedo111120_32_Linux_01_x86.bin -i console  -- 一路看提示进行安装

2.配置服务器环境
把tuxedo安装目录下的tux.env 加入到用户的 .bash_profile中,例如:
echo "source /tuxedo 安装目录 /tux.env" >> .bash_profile

3.拷贝样例到相应目录
把 /tuxedo安装目录/samples/atmi/simpapp 拷贝到一个部署目录,例如:
cp /oracle/tuxedo11gR1/samples/atmi/simpapp /tmp/ -R
cd /tmp

4.配置 simpapp 的 ubbconfig
详细参见 simpapp 目录中的 README 文件

PS ubbconfig配置文件样例:
################# ubbsimple 样例 #####################
#       (c) 2003 BEA Systems, Inc. All Rights Reserved.
#ident  "@(#) samples/atmi/simpapp/ubbsimple    $Revision: 1.7 $"
 
#Skeleton UBBCONFIG file for the TUXEDO Simple Application.
#Replace the <bracketed> items with the appropriate values.
 
*RESOURCES
IPCKEY          32769
 
#Example:
#IPCKEY         123456
 
DOMAINID        simpapp
MASTER          simple
MAXACCESSERS    10
MAXSERVERS      5
MAXSERVICES     10
MODEL           SHM
LDBAL           N
 
*MACHINES
DEFAULT:
                APPDIR="/tmp/simpapp"
                TUXCONFIG="/tmp/simpapp/ubbSimple.conf"
                TUXDIR="/oracle/tuxedo11gR1"
                MAXWSCLIENTS=5  # -- 注意此处增加的信息与位置
#Example:
#               APPDIR="/home/me/simpapp"
#               TUXCONFIG="/home/me/simpapp/tuxconfig"
#               TUXDIR="/usr/tuxedo"
 
OracleWeblogic  LMID=simple
 
#Example:
#beatux         LMID=simple
 
*GROUPS
GROUP10
        LMID=simple     GRPNO=1 OPENINFO=NONE
 
*SERVERS
DEFAULT:
                CLOPT="-A"
 
simpserv        SRVGRP=GROUP10 SRVID=1
WSL             SRVGRP=GROUP10 SRVID=10                 # -- 注意此处增加的信息与位置
                CLOPT="-A -- -n //192.168.1.8:3200"     # -- 注意此处增加的信息与位置 才能通过 tcp/ip 与 tuxedo 通信
 
*SERVICES
TOUPPER
################# ubbsimple 样例 end #####################

5.编译配置文件 与 编译样例服务器程序
 tmloadcf ubbsimple ubbSimple.conf
 buildserver -o simpserv -f simpserv.c -s TOUPPER
 export TUXCONFIG="/tmp/simpapp/ubbSimple.conf"

6.启动 tuxedo 服务器程序
tmboot -y

如下提示:
Booting all admin and server processes in /tmp/simpapp/ubbSimple.conf
INFO: Oracle Tuxedo, Version 11.1.1.2.0, 32-bit, Patch Level (none)
 
Booting admin processes ...
 
exec BBL -A :
        process id=3512 ... Started.
 
Booting server processes ...
 
exec simpserv -A :
        process id=3513 ... Started.
exec WSL -A -- -n //192.168.1.8:3200 :
        process id=3514 ... Started.
3 processes started.

二、 --------- 测试机配置  ------------
1. winxp安装 tuxedo 客户端

2. 环境设置
我的电脑 属性-> 高级-> 环境变量-> 设置相关变量;
TUXDIR  c:/tuxedo                 Tuxedo installation directory
PATH %TUXDIR/bin;%PATH%  Path should include the Tuxedo bin directory



三、 --------- 手动写loadrunner脚本  ------------
###############################################
#
# loadrunner 中 action的代码
#
###############################################
#include "lrt.h"

#define WSNADDR               "WSNADDR=//192.168.1.8:3200"
#define SOP_MAX_PACK_LEN      1024*64

char  *pSndBuf = NULL;
char  *pRcvBuf = NULL;

Action()
{
    long int iRecvLen = 0, iSendLen = 0, iRet;

    // step 1 -- initialize envirment
    iRet = lrt_tuxputenv(WSNADDR);
    if (iRet != 0)
    {
        lr_error_message("lrt_tuxputenv failed!");
        return -1;
    }

    // step 2 -- allocate memory of sendBuf
    if ((pSndBuf= (char *)lrt_tpalloc((char *)"STRING", NULL, SOP_MAX_PACK_LEN )) == NULL)
    {
        lr_error_message("lrt_tpalloc failed!");
        return -1;
    }

    // step 3 -- allocate memory of receivBuf
    if ((pRcvBuf= (char *)lrt_tpalloc((char *)"STRING", NULL, SOP_MAX_PACK_LEN )) == NULL)
    {
        lr_error_message("lrt_tpalloc failed!");
        lrt_tpfree(pSndBuf);
        return -1;
    }

    // step 4 -- ready data of send
    sprintf(pSndBuf,"This is a simple test");


    // step 5 -- send data to server
    iRet = lrt_tpcall("TOUPPER",pSndBuf,strlen(pSndBuf)+1,&pRcvBuf,&iRecvLen,0);


    // step 6 -- view the receiv's data ( negligible )
    lr_log_message("----------pRcvBuf: %s",pRcvBuf);
    lr_log_message("----------iRecvLen:%d",iRecvLen);

    return 0;
}