loadrunner winSocket协议 脚本编写问题
本帖最后由 愚人 于 2012-2-18 19:42 编辑现在要自己编写一个socket协议脚本(不是录制哦,那个坑爹的项目不能录制),下面是我写的一段服务器端的代码。请大家给点建议。我该怎么接收到服务器端响应的呢?请给出具体的demo,小弟在这谢过了。。
//服务器端
public class SocketServer {
public static void main(String[] args) {
new SocketServer().SocketServerTest();
}
// 平常的传输--服务器端
public void SocketServerTest() {
try {
ServerSocket ss = new ServerSocket(1234); // 1234是端口
System.out.println("我是服务器1234,我启动了");
Socket s = ss.accept(); // 等待客户端来链接,返回一个socknt
// 读取s中传过来的数据
InputStreamReader isr = new InputStreamReader(s
.getInputStream());
BufferedReader br = new BufferedReader(isr);
String b = br.readLine(); // 读取
System.out.println("客户端说: " + b);
PrintWriter pw = new PrintWriter(s.getOutputStream(), true);// 链接成功的话。可以给服务器发送数据
// .我们通过pw发数据。true即使刷新
pw.println("q1256");// 服务器响应的数据
System.out.println("响应下。。。");
} catch (Exception e) {
e.printStackTrace();
}
}
}
我在loadrunner的执行日志中。该怎么得到服务器相应的值(也就是字符串 q1256)呢? 这是我编写的socket协议脚本
Action()
{
char* pcTest3;
lrs_create_socket("strSock","TCP", "RemoteHost=127.0.0.1:1234", LrsLastArg); // 建立socket连?
lr_start_transaction("socket");// 设置事物
lrs_send( "strSock", "buf0", LrsLastArg ); // 发送报文 buf0不发送,发送上面设定的strSend
lrs_set_recv_timeout( 6, 0 ); // 设置接收返回报文的超时时间
pcTest3=lrs_get_received_buffer ("strSock", 0,-1, "ascii");
lr_output_message("recv=[%s]\n",pcTest3);//打印 。这个怎么得不到响应的值呀。怎么是空呀?求指教呀
lr_end_transaction("socket",LR_AUTO);
lrs_close_socket("strSock"); // 关闭socket连接
return 0;
}
---------------------------------------------------
这个是 data.ws
;WSRData 2 1
send buf0 8
"10000000"
-1
-----------------------------------------------------
这是我的脚本。为什么相应的为空呢。大家看看有什么问题。。感谢万分呀 顶,学习 求解释呀。。大侠? socket协议的函数都有返回码,
使用lrs_get_received_buffer函数的返回值只是一个数值,让你判断是否接收成功,错误的类型。
使用lrs_send函数要有相应的lrs_receive函数,这个才是接收服务器的内容,保存到lr中的系统内存中。
之后用lrs_get_last_received_buffer函数 提取buffer中的首地址和大小。
之后就读吧 请问在哪里可以学习到socket协议的一些基本的知识?我是新手
页:
[1]