LoadRunner测试J2ME的Socket程序

本文探讨了使用LoadRunner录制Socket测试脚本的局限性,包括录制不完整和参数化困难等问题,并提供了一个JavaVuser实现的Socket测试案例。

LoadRunnerWindows 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来开发JavaSocket脚本,直接连接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

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值