多语言展示
当前在线:1788今日阅读:103今日分享:49

小灰灰分享:[1]Tsung工具性能测试

Tsung压力测试工具openfire+Spark服务器性能测试,吐血励作!一、简介:关于Tsung我相信很多软件测试的同行新人会感到很陌生,在国内这方面资料很少,由于当初我也是遇到这样的问题久攻不下,花费了很长一段时间才初窥门径,这次分享作为一个系列我将分享我遇到问题的一个解决思路和心路历程,不足之处希望前辈留言指正,互相学习。二、需要的知识:①少量的编程语言基础②基础的linx系统命令三、遇到问题的解决思路:①接到需求,了解需求信息,其中包括测试对象,测试对象的协议,测试目标。通过查找资料和思考,确定了两款测试工具,Tsung和loadrunner,通过了解tsung为部署在服务器上的测试工具,相对来说比较复杂。Loadrunner在测试C/S程序时相对于Web项目来说要复杂得多,对于协议的选择,我选择的是winsnock协议(没得办法的选择),该协议为底层协议,应用相对来说比较麻烦。②首先当然就是录制脚本拉,启动loadrunner选择winsnock协议,选择win32应用程序,选择Spark客户端,录制脚本。录制完了脚本发现运行的时候报错:与软件冲突导致终止。(思考:第一:可能是服务器的http最大线程数限制,服务器默认的最大线程数为100<修改为10000,问题依然存在,多愚蠢的思考,这次录制的C/S结构的程序,怎么想到http连接数,我服了自己了>)③问题依然存在。接着客户端向服务器发送数据(send),服务器在接到客户端向他要数据的请求返回receive信息,其中服务器每次所返回的信息不一样(动态信息)这样我们就需要关联了。(想到关联就是好啊,小僧已经泪流满面了,切记以后录制win32程序首先想到的就是关联)那么我接着对动态数据进行关联,一般服务器返回的动态数据都为sessionid我们需要找到这个sessionid对他做关联,然后找到他的左右边界,打开录制的脚本,查看出错的action行是action15,找到action15然后点击进入“data.ws”消息详情页面,哎呀,我的妈啊,坑爹啊!居然是程序乱码,但是我怎么能够放弃呢。④通过查找资料我知道了这个经过了ASCII转换,也就是转换成了16进制的信息,这比二进制的01坑人多了,我试着按F7将乱码中的数字翻译出来,这个过程相当辛苦啊,最要命的是毫无所获!那么咱们继续想办法,小僧已经出现了看到屏幕恶心的症状了。⑤这个时候我似乎又想到了办法,我为什么如此纠结的用LR呢,我可以尝试Jmeter工具,我下载并配置了JDK和环境变量,安装了Jmter,发现不要钱的就是怂啊,不自带浏览器,好吧,哥认栽了,接着我又到官网填写了自己的姓名,Email,国家下载了badboy录制插件(自带浏览器)我想小样这次肯定没问题了吧,接着我就使用badboy录制Spaik客户端,结果这注定是个悲剧,不要钱的就支持Web,这时候小僧已经不能在继续入定了。⑥既然不能录制脚本,那么OK我去直接运行程序源代码总OK了吧,接着我又尝试了在Jmter集成到eclipse企图通过与eclipse集成,来通过Jmeter控制台进行负载,命运就是这么会搞,我肯定又失败了萨。⑦接着我把注意力重新放回了LR上面,企图与乱码做斗争,这次我聪明了,我从网上下了一个WinDidd文件比对工具,找出脚本中不同的信息(这里忽略thinktime)不同的信息找是找到了,但是还是不能将乱码汉化,我开始崩溃了。⑧我在百度提问找大虾,大虾给我说要么找id关联要么自己写脚本,我选择了自己写脚本,脚本调试好了以后,运行报序列号错误,坑我啊。⑨接着我消除了LR的序列号使用C/S架构的100个user测试后发现,100根本达不到我的要求,没关系想象力倒转一下,好了,我有办法了,在网上找到一个序列号,采用了非常恶心的办法将电脑时间设置回2003年2月因为该序列号支持那个时间,设置好了,不行?为什么,我重启一下,结果发现现在能跑200了,也算一点进步吧,但是事情并没有结束,这个结果并不能让人满意,怎么办呢,使用Tsung吧,在linux下直接建立连接,测试在线和并发吧。四、注意事项:新的征程……(嘻嘻,大家看了我的心得是不是觉得我特傻帽呀,小灰灰悄悄的告诉你这个时候我刚毕业呢,写这一篇技术文章第一是想跟大家分享一下我解决问题的思路;第二是想告诉大家遇到问题绝不放弃,各种办法需要自己去尝试,当然闭门造车是不行的,必要的求助是少不了的哟。请关注小灰灰Tsung2:Tsung工具的配置和脚本)
推荐信息