查看完整版本: 闲论LoadRunner的协议选择、Winsocket、C/S应用程序

peaksoftchen 2007-9-5 17:24

闲论LoadRunner的协议选择、Winsocket、C/S应用程序

很多时候一提到不是基于浏览器的应用,很多人就会想到用WinSocket协议来录制,仿佛Form窗体都可以用Winsocket 。

         从道理上讲网络通讯的底层都是基于Socket的,例如TCP、UPD等,似乎所有的程序都可以用Socket协议来录制。但是事实不是这样的,因为选择的协议决定了LoadRunner如何捕获数据包。否则会多捕获很多无用的数据。

       因此,不是所有的程序都是适合WinSocket协议的。实际上,那些基于Socket开发的应用才真正适合Socket协议来进行录制。其他的,例如基于数据库的应用,就不太时候Socket协议,甚至可能录制不到脚本。

        很多C/S程序,一定要选择合适的协议。根据作者的经验,C/S的程序多数需要手工开发很多脚本,因为录制的很多回放时候或多或少都会有些问题,但是可以参考录制的结果。

         所以测试一个程序,一定要搞清楚开发人员用了什么技术、数据流是什么协议封装的。


         注:其实这也是测试人员为什么要懂得开发才更适合做性能测试,因为很多复杂的性能测试都需要很厚的基础。例如我们公司的性能测试所有代码都是自己手工开发的。

peaksoftchen 2007-9-5 17:33

附件是我们自己开发的Controller,我们自己用面向对象实现了并发测试架构(目前支持并发、迭代、thinktime、参数文件、启动时间间隔,集合点功能正在开发中)。借助我们自己开发的Agent,能很好的测试我们的C/S架构的程序。
        这个工具和LoadRunner配合起来,可以完成大多数性能测试。
        这个工具主要为我们测试视频播放效果而开发,呵呵。这是LoadRunner不太擅长的。

smallmark 2007-9-6 15:16

菜鸟也能论英雄?sdlkfj5

Spark.lee 2007-9-6 15:32

你个菜鸟 人家可是很NB的人物啊

他的书是相当的不错啊
晕死

423799223 2007-9-7 08:10

[size=4]楼主的书我等着购书呢
早点出版呀  
[color=Magenta][b]另外再请教一下  许多同行都是苦于不会测试视频播放的测试
能不能将您的这个软件共享一下  谢谢了楼主[/b][/color]
[color=Blue][size=7]再次支持[/size][/color][/size]

晴耕雨读 2007-9-7 09:00

请问楼主:2楼有附件么?

莫非您说的是一个截图……汗,我可不希望您的书中谈到截图时都说成附件。

peaksoftchen 2007-9-7 10:55

书中详细介绍了并发结构(在单机上如何并发)的设计过程以及部分源码,也就是Vugen部分。
但是我们自己开发的Controller部分没有进行介绍。倒是介绍了如何用LoadRunner的Controller来把我们自己开发的多线程程序送到客户端去并发执行。

peaksoftchen 2007-9-7 11:03

[quote]原帖由 [i]423799223[/i] 于 2007-9-7 08:10 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=704654&ptid=89417][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
楼主的书我等着购书呢
早点出版呀  
另外再请教一下  许多同行都是苦于不会测试视频播放的测试
能不能将您的这个软件共享一下  谢谢了楼主
再次支持 [/quote]

源代码限于版权目前还不能公布,但是我可以公布设计思想!

顺便说一句,我是怎么带着部门兄弟做到这一点的:

1、首先学懂LoadRunner,搞明白他的工作原理;
2、学会面向对象基本思想,明白继承、多态、抽象等如何实现;
3、学会一门开发语言,我最好选择了C#、其实VB也可以,但是.NET上的核心是C#。java界面设计太弱,而且windows程序最好还是跟着微软混。
4、然后重写了播放器、自己开了并发相关抽象类,我们部门的弟兄们就可以继承我的类来写程序了(相当于在vugen中开发脚本);
5、然后集中精力开发了自己的并发架构。

顺便说一句,这不是一件容易的工作,因为不是一般的公司能投入的起的。我们部门写程序的加上我就有7个。大断断续续家干了将近3个月。我们公司做视频领域的,所以必须得做这种测试。
不过不要灰心,认真学习,自己慢慢研究,努力提高自己,找个好的环境来进行测试开发。

423799223 2007-9-7 14:41

[quote]原帖由 [i]peaksoftchen[/i] 于 2007-9-7 11:03 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=705127&ptid=89417][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]


源代码限于版权目前还不能公布,但是我可以公布设计思想!

顺便说一句,我是怎么带着部门兄弟做到这一点的:

1、首先学懂LoadRunner,搞明白他的工作原理;
2、学会面向对象基本思想,明白继承、多态 ... [/quote]


[color=Red][size=4]感谢楼主的介绍
正如楼主所说  这个不是一般公司投入的起的
不光说是投入的起  连技术要求上也很高
在如今测试领域来说  有这样开发水平的测试人员少得可怜
[color=Magenta][b][size=6]如果你为了保护源码  你可以不开放源代码 大家也应该尊重你  但是能不能把程序拿出来给测试同行们一起研究[/size][/b][/color]
毕竟C/S和视频领域这样的测试  会的人较少  我想大家都会感激你的[/size][/color]


[size=7][color=Red]等楼主的回复  谢谢[/color][/size]

[[i] 本帖最后由 423799223 于 2007-9-7 15:16 编辑 [/i]]

peaksoftchen 2007-9-7 16:11

[quote]原帖由 [i]423799223[/i] 于 2007-9-7 14:41 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=705576&ptid=89417][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]



感谢楼主的介绍
正如楼主所说  这个不是一般公司投入的起的
不光说是投入的起  连技术要求上也很高
在如今测试领域来说  有这样开发水平的测试人员少得可怜
如果你为了保护源码  你可以不开放源代码 ... [/quote]

这个产品下一步是要卖给客户进行测试的,所以抱歉不能公布出来。

423799223 2007-9-7 17:25

卖给客户  是不是卖测试这方面的人员
能不能说个价格  不会是像Mercury似的吧  依据License、协议、时间、用户数定价格吧?
能不能提供一个Demo版的给我们

peaksoftchen 2007-9-8 13:11

[quote]原帖由 [i]423799223[/i] 于 2007-9-7 17:25 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=706131&ptid=89417][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
卖给客户  是不是卖测试这方面的人员
能不能说个价格  不会是像Mercury似的吧  依据License、协议、时间、用户数定价格吧?
能不能提供一个Demo版的给我们 [/quote]

不知道了,公司方面来做运营了。

leetc123 2007-9-8 17:01

自己开发测试工具,是我的目标!

corrine-li 2007-9-10 14:51

回复 #1 peaksoftchen 的帖子

我现在正在测试C/S结构的应用程序。我现在不知道该选何种协议,应用程序采用了C#,数据库采用了MS SQL Server。

peaksoftchen 2007-9-10 18:58

[quote]原帖由 [i]corrine-li[/i] 于 2007-9-10 14:51 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=708573&ptid=89417][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
我现在正在测试C/S结构的应用程序。我现在不知道该选何种协议,应用程序采用了C#,数据库采用了MS SQL Server。 [/quote]

搞到.NET插件,然后用.NET虚拟用户,LoadRunner支持C#语言来开发测试脚本。书里面详细论述了.NET平台产品的测试方法。

corrine-li 2007-9-11 09:13

[quote]

搞到.NET插件,然后用.NET虚拟用户,LoadRunner支持C#语言来开发测试脚本。书里面详细论述了.NET平台产品的测试方法。 [/quote]

是不是选择这个协议“[attach]32662[/attach]”呢?
我们公司现在的水平还是做不到自己开发测试脚本,因为就我一个人在做很多项目的测试。
目前要做这个项目的性能测试,感觉和你写的《web性能测试实战》中案例二很相似,只是用LR录制脚本、运行脚本、创建场景、运行场景,然后分析结果。

peaksoftchen 2007-9-11 13:04

[quote]原帖由 [i]corrine-li[/i] 于 2007-9-11 09:13 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=709551&ptid=89417][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]


是不是选择这个协议“32662”呢?
我们公司现在的水平还是做不到自己开发测试脚本,因为就我一个人在做很多项目的测试。
目前要做这个项目的性能测试,感觉和你写的《web性能测试实战》中案例二很相似,只 ... [/quote]

你说的这个协议在8.1中可以使用,但是适用于Fram1.0,也就是.NET2003.
不知道9.0怎么样。

我说的是.NET插件。

423799223 2007-9-11 13:21

.NET插件大家都没有
你书上有也没用呀 呵呵
估计是不会共享的  理解

RuisTar 2007-9-11 13:50

回复 #17 peaksoftchen 的帖子

以前就又碰到过.net2005开发的C/S模式系统,苦于LR8.1不支持Framwork2.0,所以不知道用什么协议,有办法解决吗?

corrine-li 2007-9-11 14:44

大家有什么好的办法呢?期待ing.

ebuluo 2007-9-11 15:06

lr9.0支持framework到3。0

corrine-li 2007-9-11 15:32

[quote]原帖由 [i]ebuluo[/i] 于 2007-9-11 15:06 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=710635&ptid=89417][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
lr9.0支持framework到3。0 [/quote]

我无法破解LR9.0,谁能告诉我呢?

peaksoftchen 2007-9-12 11:40

[quote]原帖由 [i]corrine-li[/i] 于 2007-9-11 15:32 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=710716&ptid=89417][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]


我无法破解LR9.0,谁能告诉我呢? [/quote]

目前江湖上好像没有什么破解方法吧。

peaksoftchen 2007-9-12 11:42

[quote]原帖由 [i]RuisTar[/i] 于 2007-9-11 13:50 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=710354&ptid=89417][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
以前就又碰到过.net2005开发的C/S模式系统,苦于LR8.1不支持Framwork2.0,所以不知道用什么协议,有办法解决吗? [/quote]


找些正版用户的朋友去要2005版本的。net插件吧。

peaksoftchen 2007-9-12 11:43

[quote]原帖由 [i]423799223[/i] 于 2007-9-11 13:21 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=710271&ptid=89417][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
.NET插件大家都没有
你书上有也没用呀 呵呵
估计是不会共享的  理解 [/quote]

我确实无法提供,但是2003插件也可以。以前好像是免费的。

网上应该能够找到吧。

beckham516 2007-9-12 11:57

.NET插件开发脚本太麻烦了,debug都不行

pplive 2007-9-12 17:11

看看

最近对loadrunner有兴趣

peaksoftchen 2007-9-12 18:04

[quote]原帖由 [i]beckham516[/i] 于 2007-9-12 11:57 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=712587&ptid=89417][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
.NET插件开发脚本太麻烦了,debug都不行 [/quote]

在.NET环境debug啊,lr的开发环境哪能和微软的比,而且开发完成后必须编译,你在lr里即使能修改脚本也不能编译。

corrine-li 2007-9-13 09:25

回复 #1 peaksoftchen 的帖子

你所说的“数据流是什么协议封装的”。

是指在网络中传送数据所使用的协议吗?

corrine-li 2007-9-13 10:21

我尝试选用LR8.1下socket协议录制C#开发的C/S结构的邮件系统,
可以录制,而且还有脚本。但是当运行的时候出现这样的错误:“socket0 - Software caused connection abort. Error code : 10053”。

是什么原因引起的呢?

兰色犹豫 2007-9-13 10:40

向高手致敬!!

peaksoftchen 2007-9-13 11:07

[quote]原帖由 [i]corrine-li[/i] 于 2007-9-13 09:25 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=714168&ptid=89417][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
你所说的“数据流是什么协议封装的”。

是指在网络中传送数据所使用的协议吗? [/quote]

指我们程序中直接用的协议——如果我们程序写的是Winsocket程序,那使用socket非常合适。
但是如果调用ODBC来访问数据库,这个用socket协议录制就不合适了。

不过一定要明白,所有的基于网络的应用程序程序员操作的最底层都是socket、再往下就是IP层了,再往下就快是硬件通讯了。

[[i] 本帖最后由 peaksoftchen 于 2007-9-13 14:11 编辑 [/i]]

peaksoftchen 2007-9-13 11:11

[quote]原帖由 [i]corrine-li[/i] 于 2007-9-13 10:21 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=714329&ptid=89417][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
我尝试选用LR8.1下socket协议录制C#开发的C/S结构的邮件系统,
可以录制,而且还有脚本。但是当运行的时候出现这样的错误:“socket0 - Software caused connection abort. Error code : 10053”。

是什么原 ... [/quote]

可以录制,但是能工作的可能性不高。可以选择邮件相关的协议来录制。
我的帖子已经说了,最适合socket协议就是的网络通讯程序。。。。。

建议这类程序自己来开发。

peaksoftchen 2007-9-13 11:13

[quote]原帖由 [i]兰色犹豫[/i] 于 2007-9-13 10:40 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=714386&ptid=89417][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
向高手致敬!! [/quote]


大家一起学习,都可以成为高手,只要努力付出就行了。

都做过菜鸟的!!!

corrine-li 2007-9-13 12:22

谢谢lz。

peaksoftchen 2007-9-13 14:12

[quote]原帖由 [i]corrine-li[/i] 于 2007-9-13 12:22 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=714763&ptid=89417][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
谢谢lz。 [/quote]
一起努力。

lijunwsp 2007-9-13 14:22

楼主只是说叫我们努力
没一点表示  具体怎么做多少也要给点代码呀

corrine-li 2007-9-13 14:57

公司又有一个项目,还是基于C/S结构下的结算系统。

1.应用程序在VS2005下开发的,使用C#,数据库用SQL Server2000。

2.LR8.1不支持framework2.0,当前的情况是我无法找到.net插件,2005的。

3.此程序是调用ado.net来访问数据库的。所以socket协议排除。

4.如果我选择MS SQL Server协议录制此结算系统,是否可行?此项目正在开发中,我现在再做性能测试的设计。

5.如果需要自己编写测试脚本的话,我现在又没有这个能力。

6.我现在该怎么办吧!此系统的需求说明中,还有包括性能测试。
是告诉领导LR8.1不支持Framework2.0还是怎么的?期望lz给予意见。

lytesting 2007-9-13 15:19

peaksoftchen 我非常想知道你的书里有没有写关于lr二次开发的部分,有没有类似模板的东西,一个思路也行,谢谢!!!

zhangj8826 2007-9-13 15:20

LZ你是我的偶像啊
页: [1] 2 3
查看完整版本: 闲论LoadRunner的协议选择、Winsocket、C/S应用程序