您的位置:首页 > 理论基础 > 计算机网络

LoadRunner测试J2ME的Socket程序

2010-02-24 14:30 239 查看
LoadRunner有Windows Sockets协议用于支持Socket程序的测试脚本开发,但是有时候会录制不了或录制不全Socket脚本,而且Socket脚本的修改和参数化等方面都比较困难。
 
以J2ME Wireless Toolkit 2.0附带的NetworkDemo程序中的Socket Demo为例,用LoadRunner录制下来的脚本如下所示:
/*********************************************************************
 * Created by Mercury Interactive Windows Sockets Recorder
 *
 * Created on: Wed Feb 24 13:35:17
 *********************************************************************/
 
#include "lrs.h"
 
 
Action()
{
    lrs_create_socket("socket0", "TCP", "LocalHost=0", "Backlog=50",  LrsLastArg);
 
    lrs_create_socket("socket1", "TCP", "LocalHost=2663", "Backlog=50",  LrsLastArg);
 
    lrs_create_socket("socket2", "TCP", "RemoteHost=192.168.1.100:57328",  LrsLastArg);
 
    lrs_send("socket2", "buf0", LrsLastArg);
 
    lrs_receive("socket2", "buf1", LrsLastArg);
 
    lrs_close_socket("socket2");
 
    lr_think_time(13);
 
    lrs_create_socket("socket3", "TCP", "LocalHost=0", "Backlog=50",  LrsLastArg);
 
    lrs_create_socket("socket4", "TCP", "LocalHost=2669", "Backlog=50",  LrsLastArg);
 
    lrs_create_socket("socket5", "TCP", "LocalHost=0", "Backlog=50",  LrsLastArg);
 
    lrs_create_socket("socket6", "TCP", "LocalHost=2670", "Backlog=50",  LrsLastArg);
 
    lrs_create_socket("socket7", "TCP", "RemoteHost=192.168.1.100:57328",  LrsLastArg);
 
    lrs_send("socket7", "buf2", LrsLastArg);
 
    lrs_receive("socket7", "buf3", LrsLastArg);
 
    lrs_close_socket("socket7");
 
    lrs_create_socket("socket8", "TCP", "RemoteHost=192.168.1.100:57328",  LrsLastArg);
 
    lrs_send("socket8", "buf4", LrsLastArg);
 
    lrs_receive("socket8", "buf5", LrsLastArg);
 
    lrs_send("socket8", "buf6", LrsLastArg);
 
    lrs_receive("socket8", "buf7", LrsLastArg);
 
    lrs_send("socket8", "buf8", LrsLastArg);
 
    lrs_create_socket("socket9", "TCP", "LocalHost=0", "Backlog=50",  LrsLastArg);
 
    lrs_create_socket("socket10", "TCP", "LocalHost=2675", "Backlog=50",  LrsLastArg);
 
       /*
        * 发送消息
        */
 
    return 0;
}
 
发送和接收的Socket包数据可以在data.ws文件中找到,Socket Demo的客户端发送消息的操作并没有录制下来。
 
转变一下思路,可以采用Java Vuser来开发Java的Socket脚本,直接连接Socket Demo的服务器端并发送消息:
 
/*
 * LoadRunner Java script. (Build: 3020)
 *
 * Script Description:
 *                    
 */
 
import lrapi.lr;
 
import java.io.*;
import java.net.*;
 
public class Actions
{
 
       Socket socket;
       BufferedReader in;
       PrintWriter out;
 
       public int init() throws Throwable {
 
           try
           {
                socket = new Socket("127.0.0.1", 5000);
 
           }
           catch (IOException e){}
 
           return 0;
       }//end of init
 
       public int action() throws Throwable {
 
           try
           {
 
              in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
              //lr.output_message(in.readLine());
              out = new PrintWriter(socket.getOutputStream(),true);
              out.println("World!");
              //lr.output_message(in.readLine());
           }
           catch (IOException e){}
 
           return 0;
       }//end of action
 
 
       public int end() throws Throwable {
 
           try
           {    
              out.close();
              in.close();
              socket.close();
           }
           catch (IOException e){}
 
           return 0;
       }//end of end
}
 
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息