51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3226|回复: 5
打印 上一主题 下一主题

[原创] loadrunner winSocket协议 脚本编写问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-2-18 15:47:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 愚人 于 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)呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2012-2-18 16:21:54 | 只看该作者
这是我编写的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
-----------------------------------------------------

这是我的脚本。为什么相应的为空呢。大家看看有什么问题。。感谢万分呀
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2012-2-20 17:43:15 | 只看该作者
顶,学习
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2012-2-21 09:27:17 | 只看该作者
求解释呀。。大侠?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2012-2-22 14:53:49 | 只看该作者
socket协议的函数都有返回码,
使用lrs_get_received_buffer函数的返回值只是一个数值,让你判断是否接收成功,错误的类型。
使用lrs_send函数要有相应的lrs_receive函数,这个才是接收服务器的内容,保存到lr中的系统内存中。
之后用lrs_get_last_received_buffer函数 提取buffer中的首地址和大小。
之后就读吧
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2012-5-31 13:55:36 | 只看该作者
请问在哪里可以学习到socket协议的一些基本的知识?我是新手
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-24 05:52 , Processed in 0.073156 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表