51Testing软件测试论坛

标题: 请教一下关于Winsocket的问题,谢谢 [打印本页]

作者: wisebinbin    时间: 2006-3-15 17:02
标题: 请教一下关于Winsocket的问题,谢谢
问题一:用Winsocket协议录制脚本的时候,其过程和设置是否与http类似?
问题二:如何对其脚本进行修改和扩充?
问题三:我们在测试一个类似netstar的教学系统,该系统开了好多端口,而且主控端和被控端
                在不停的发包(没有触发条件),影响脚本录制,应该怎么办?
问题四:回放的时候为什么会很慢(其中没有think time)?

谢谢大家了。
作者: guirongb    时间: 2006-3-15 17:06
我觉得使用Windsoket 最好的方法是搞清楚 Client/Server的通讯机制,然后自己编写测试脚本,这样做比较灵活,而录制的脚本比较模糊,你只能看到一大堆发送,接受的脚本语句,至于发送了什么,接受了什么都要到data.ws中去看,短的还好,长了就要头晕了。。
作者: wisebinbin    时间: 2006-3-15 17:51
不好意思 ,没有编过,能知道一下吗?而且我在data.ws中看见的是乱码,怎么解决?谢谢
作者: wisebinbin    时间: 2006-3-16 09:33
自己顶一个,大家帮帮忙呀
作者: k0c0b0    时间: 2006-3-19 00:15
原帖由 guirongb 于 2006-3-15 17:06 发表
我觉得使用Windsoket 最好的方法是搞清楚 Client/Server的通讯机制,然后自己编写测试脚本,这样做比较灵活,而录制的脚本比较模糊,你只能看到一大堆发送,接受的脚本语句,至于发送了什么,接受了什么都要到dat ...


请问一下,自己写代码,怎么设置要发送的数据包啊!怎么弄要发送的数据内容谢谢!!!!!?????????????????
作者: guirongb    时间: 2006-3-19 09:37
标题: 给各小小的例子。。楼主不要着急
[LoadRunner]性能测试工具篇之loadrunner
wendy 发表于 2005-12-20 14:16:40


性能测试工具篇之loadrunner

    各大论坛faq和实际工作经验而来,属于<性能测试工具篇之loadrunner>部分内容,内容来自51testing,谢谢作者!!!
问题解答篇
1.        监视服务器资源?
在Controller的场景运行中,在Graphs中选中System Resource Graphs下Windows Resources节点,点击Windows Resources的右键菜单项add measurements,加入你要监视的机器名称。注意监视的服务器必须启动Remote Registry Service。
2.        错误“the ip wizard does not support dhcp-enabled network cards.  your network card is either dhcp-enabled or configured with invalid settings”
这是由于ip Spoofer不支持动态获得ip
3.        找不到设置多IP运行方式
必须在Cotroller中设置Expert Mode才能设置多ip方式。
4.        解决lr编辑器中显示乱码的问题
loadrunner7.8版本中,在Virtual User Generator设置Tool->record options->advanced中support charset选项。
5.        LoadRunner7.5支持ie6的一个解决方法
在ie中,tool->internet选项,切换到高级页面,设置http1.1设置,选择通过代理连接使用http1.1
6.        修改WinSock协议生成的代码,参数化
    socket脚本的参数化数据在data.ws中.
建议同样的业务录制两遍,比较一下两个脚本中的data.ws,找找需要参数化的地方.
7.        分析结果中如何处理think time
Analysis 可以设定 Filter,Filter 就可以把 think time 过略掉。
8.        LoadRunner测试ftp模式的相关经验
什么叫做PASV mode(被动模式传送)?他是如何工作的?
FTP一般有两个连接的,一个是客户程和服务器传输命令的,另一个是数据传送的连接。FTP服务程序一般支持两种不同的模式,一种是Port模式,一种是Passive模式(Pasv Mode)。

先假设客户端为C,服务端为S.
Port模式:
当客户端C向服务端S连接后,使用的是Port模式,那么客户端C会发送一条命令告诉服务端S(客户端C在本地打开了一个端口N在等着你进行数据连接),当服务端S收到这个Port命令后 就会向客户端打开的那个端口N进行连接,这种数据连接就生成了。
Pasv模式:
当客户端C向服务端S连接后,服务端S会发信息给客户端C,这个信息是(服务端S在本地打开了一个端口M,你现在去连接我吧),当客户端C收到这个信息后,就可以向服务端S的M端口进行连接,连接成功后,数据连接也建立了。

Actions()
{
char acTest[100];
char acTest2[100];
char* pcTest3;

//生成发送的串
sprintf(acTest,"kkkhhhh\r\n";
//指定发送的串
lrs_set_send_buffer ("socket0", acTest, strlen(acTest));
//发送,由于之前运行了lrs_set_send_buffer,所以这里的"buf0"参数无效
lrs_send("socket0", "buf0", LrsLastArg);

//接收返回的串
lrs_receive("socket0", "buf1", LrsLastArg);
//把返回的串放到变量中
pcTest3=lrs_get_received_buffer ("socket0", 0, -1, NULL);
//对返回串中的数据操作
if (pcTest3[0]=='k')
{
lrs_set_send_buffer ("socket0", pcTest3, strlen(pcTest3));
lrs_send("socket0", "buf0", LrsLastArg);
lrs_receive("socket0", "buf1", LrsLastArg);
}
作者: mifa    时间: 2006-6-16 17:05
标题: 问楼上的,所说的第6条
第六条:修改WinSock协议生成的代码,参数化
请问比较两个脚本后,是不是两个脚本相同的部分是可进行参数化的,不同的的部分是垃圾数据马?如何确定哪些可以参数化?
谢谢
作者: Babby    时间: 2006-7-25 13:10
标题: 强烈关注中
最近也要测试类似的东西,希望有谁能详细说明一下啊~~!
作者: rubydove    时间: 2009-3-9 22:43
原因是录制时recv_buff接收的内容和回放时的内容不一致,系统会自动去检查。
改善方法:
在recv_buf前,设置recv buf的超市timeout时间

有两种方法:

(1)lrs_set_recv_timeout(sec, microsec);
(2)lrs_set_recv_timeout2(sec, microsec);

for example:
lrs_set_recv_timeout2(0, 0);
lrs_receive("socket0", "buf1", LrsLastArg);

具体请参考LR帮助




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2