LoadRunner脚本中的协议选择
内容简介
LoadRunner脚本开发过程中的协议选择作为脚本开发的第一个步骤,相当重要,只有选择了合理的正确的协议才能开发出好的测试脚本。在协议选择过程中需要注意选择与被测对象相应的脚本,比如Web系统一般选择HTTP./HTML协议,FTP服务器一般选择FTP协议的脚本,另外在协议选择之前需要确认被测系统使用了什么协议,这里说到的协议指的是应用层的协议。
一一般有以下几种方法:
1)可以直接确认
这种情况下你可以通过你的测试常识直接判读系统使用了什么样的协议,比如前面说的Web系统使用了HTTP./HTML协议,Ftp服务使用了FTP协议等;
2)通过研发人员了解被测系统使用了什么样的协议
如果通过你的判断不能确定使用了什么样的协议这个时候,你可以跟研发人员进行沟通,确认他在开发的过程中使用了什么样的协议。
3)使用常用的数据监听工具进行数据包分析
有的时候可能你的研发人员也不能确定他在开发过程中使用了什么协议,这个确实是有可能的特别是现在的研发人员特别喜欢用别人的插件,或者开发环境封装的很好,导致他们没有开发底层的协议栈,这个时候就需要你自己去判断,自己判断过程中可以借助协议分析工具,常用的协议分析工具如:sniffer Pro,ethreal等;这些工具可以通过抓取数据然后对数据包进行分析的方法分析出现在常用的协议。能力还是相当的强的。
4)万能协议Winsocket协议
如果上述方法都不行,但是你还想用LR完成你的性能测试,没有办法这个时候可以拿出这个Winsocket协议进行脚本的开发,这个协议只要是在 Windows上的通信的软件都可以将脚本开发出来,但是脚本调试的难度相当到,需要看大量的16进制的数据,并且有的时候还需要复杂的管理,本人建议能不用,最好不用。
另外可以通过以下的这些文章对协议选择进行更深入的了解:
1. LoadRunner的协议选择
1)LR支持多种协议,请大家一定要注意,这个地方协议指的是你的Client端通过什么协议访问的Server,Client一般是面向最终使用者的,Server是第一层Server端,因为现在的体系架构中经常Server层也分多个层次,什么应用层,什么数据层等等,LR只管Client如何访问第一层Se rver.
2)特别要注意某些应用,例如一个Web系统,这个系统是通过ActiveX控件来访问后台的,IE只是一个容器,而ActiveX控件访问后台是通过 COM/DCOM协议的,这种情况就不能使用Web协议,否则你什么也录制不到,所以,LR工程师一定要了解应用程序的架构和使用的技术。
3)谈谈多协议LR是支持在一个脚本里面使用多协议的,不过这个多协议是有一定的限制的,我有一个LR7.6上哪些协议支持多协议,LR8.0是不是取消了这些限制我不清楚。象HTTPS,一般来讲一定要选择多协议,但在选择具体协议的时候一定只选Web协议,这时候才能作那个端口映射。
4)谈谈Web协议中Option Web协议里面有一些Option,具体我记不清楚了,但有一个地方很重要:就是选择URL方式还是HTM方式录制,这里有一些原则a. 尽量使用HTM方式录制b.如果使用了Javascrīpt,并且javascrīpt里面与后台有交互,那一定要使用URL方式,例如 javascrīpt用于判断用户名和密码是否正确(与后台一定会有交互),那么就要使用URL方式录制;但如果Javascipt只是判断用户名或密码的格式,那一般不会与后台发生交互,就不需要使用URL方式。至于什么情况下一定要用URL方式,我曾经写过一个文档,但现在我不记得了不好意思。
5)谈谈并发点和结果检查很多人喜欢使用并发点和结果检查,我谈谈我自己的看法。第一我基本上从来不使用结果检查,压力测试的结果我一般是去后台检查存储层的数据是否正确的。LR只能检查协议层上的错误,但如果在大量并发用户的情况下使用返回结果检查例如reg_text_check,会极大的占用客户端的资源,我一般不这么作;至于并发点,我只有在客户强烈要求的情况下才会使用,否则基本不用。
2.LoadRunner的协议选择、Winsocket、CS应用程序
很多时候一提到不是基于浏览器的应用,很多人就会想到用WinSocket协议来录制,仿佛Form窗体都可以用Winsocket 。
从道理上讲网络通讯的底层都是基于Socket的,例如TCP、UPD等,似乎所有的程序都可以用Socket协议来录制。但是事实不是这样的,因为选择的协议决定了LoadRunner如何捕获数据包。否则会多捕获很多无用的数据。
因此,不是所有的程序都是适合WinSocket协议的。实际上,那些基于Socket开发的应用才真正适合Socket协议来进行录制。其他的,例如基于数据库的应用,就不太时候Socket协议,甚至可能录制不到脚本。
很多C/S程序,一定要选择合适的协议。根据作者的经验,C/S的程序多数需要手工开发很多脚本,因为录制的很多回放时候或多或少都会有些问题,但是可以参考录制的结果。
所以测试一个程序,一定要搞清楚开发人员用了什么技术、数据流是什么协议封装的。
附件是我们自己开发的Controller,我们自己用面向对象实现了并发测试架构(目前支持并发、迭代、thinktime、参数文件、启动时间间隔,集合点功能正在开发中)。借助我们自己开发的Agent,能很好的测试我们的C/S架构的程序。
这个工具和LoadRunner配合起来,可以完成大多数性能测试。
这个工具主要为我们测试视频播放效果而开发,呵呵。这是LoadRunner不太擅长的。
3.使用LoadRunner如何更好的选择协议
LoadRunner支持的协议和应用非常广泛,测试B/S系统选择Web(Http/Html)。
本文转载:性能测试之道
---------------------------------------
您的支持是我前进的动力!!!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点球球“推荐”哦,博主在此感谢!
万水千山总是情,打赏一分行不行。若要你的心情好,请便右侧赏博主。哈哈哈(っ•̀ω•́)っ✎⁾⁾