即时通讯软件(Openfire+Spark)怎么测试?
我要测试一个类似QQ和MSN的局域网通讯软件Openfire(服务器) 和 Spark(客户端)都是用JAVA 开发的
用sniffer抓包,发现之间通讯使用的是TCP协议
用LoadRunner的Sockets协议录制Spark
Spark 登陆后LoadRunner出现错误
自动退出
用Sockets 和Http两个协议录制时
有代码产生,但回放不成功
也没有错误提示
——————Action内容————————
Action()
{
lrs_create_socket("socket0", "TCP", "LocalHost=0", "RemoteHost=172.16.14.100:5222", LrsLastArg);
lrs_send("socket0", "buf0", LrsLastArg);
lrs_receive("socket0", "buf1", LrsLastArg);
lrs_send("socket0", "buf2", LrsLastArg);
lrs_receive("socket0", "buf3", LrsLastArg);
lrs_send("socket0", "buf4", LrsLastArg);
lrs_receive("socket0", "buf5", LrsLastArg);
lrs_send("socket0", "buf6", LrsLastArg);
lrs_receive("socket0", "buf7", LrsLastArg);
lrs_send("socket0", "buf8", LrsLastArg);
lrs_receive("socket0", "buf9", LrsLastArg);
lrs_send("socket0", "buf10", LrsLastArg);
lrs_receive("socket0", "buf11", LrsLastArg);
lrs_send("socket0", "buf12", LrsLastArg);
lrs_receive("socket0", "buf13", LrsLastArg);
lrs_send("socket0", "buf14", LrsLastArg);
lrs_receive("socket0", "buf15", LrsLastArg);
lrs_send("socket0", "buf16", LrsLastArg);
lrs_receive("socket0", "buf17", LrsLastArg);
lrs_send("socket0", "buf18", LrsLastArg);
lrs_receive("socket0", "buf19", LrsLastArg);
lrs_send("socket0", "buf20", LrsLastArg);
lrs_receive("socket0", "buf21", LrsLastArg);
lrs_send("socket0", "buf22", LrsLastArg);
lrs_receive("socket0", "buf23", LrsLastArg);
lrs_send("socket0", "buf24", LrsLastArg);
lrs_receive("socket0", "buf25", LrsLastArg);
lrs_send("socket0", "buf26", LrsLastArg);
lrs_receive("socket0", "buf27", LrsLastArg);
lrs_send("socket0", "buf28", LrsLastArg);
lrs_receive("socket0", "buf29", LrsLastArg);
lrs_send("socket0", "buf30", LrsLastArg);
lrs_receive("socket0", "buf31", LrsLastArg);
lrs_send("socket0", "buf32", LrsLastArg);
lrs_receive("socket0", "buf33", LrsLastArg);
lrs_send("socket0", "buf34", LrsLastArg);
lrs_receive("socket0", "buf35", LrsLastArg);
lrs_send("socket0", "buf36", LrsLastArg);
lrs_receive("socket0", "buf37", LrsLastArg);
lrs_send("socket0", "buf38", LrsLastArg);
lrs_receive("socket0", "buf39", LrsLastArg);
lrs_send("socket0", "buf40", LrsLastArg);
lrs_receive("socket0", "buf41", LrsLastArg);
lrs_send("socket0", "buf42", LrsLastArg);
lrs_receive("socket0", "buf43", LrsLastArg);
lrs_send("socket0", "buf44", LrsLastArg);
lrs_receive("socket0", "buf45", LrsLastArg);
lrs_send("socket0", "buf46", LrsLastArg);
lrs_receive("socket0", "buf47", LrsLastArg);
lrs_send("socket0", "buf48", LrsLastArg);
lrs_receive("socket0", "buf49", LrsLastArg);
lrs_send("socket0", "buf50", LrsLastArg);
lrs_receive("socket0", "buf51", LrsLastArg);
lrs_send("socket0", "buf52", LrsLastArg);
lrs_receive("socket0", "buf53", LrsLastArg);
lrs_send("socket0", "buf54", LrsLastArg);
lrs_receive("socket0", "buf55", LrsLastArg);
lrs_send("socket0", "buf56", LrsLastArg);
lrs_receive("socket0", "buf57", LrsLastArg);
lrs_send("socket0", "buf58", LrsLastArg);
lrs_receive("socket0", "buf59", LrsLastArg);
lrs_send("socket0", "buf60", LrsLastArg);
lrs_receive("socket0", "buf61", LrsLastArg);
lrs_close_socket("socket0");
return 0;
———data.vs内容—————
;WSRData 2 1
sendbuf0 118
"<stream:stream to=\"172.16.14.100\" xmlns=\"jabber:client\" xmlns:stream=\""
"http://etherx.jabber.org/streams\" version=\"1.0\">"
recvbuf1 672
"<?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream=\"http:/"
"/etherx.jabber.org/streams\" xmlns=\"jabber:client\" from=\"172.16.14.100\""
" id=\"21b3ac33\" xml:lang=\"en\" version=\"1.0\"><stream:features><starttl"
"s xmlns=\"urn:ietf:params:xml:ns:xmpp-tls\"></starttls><mechanisms xmlns=\""
"urn:ietf:params:xml:ns:xmpp-sasl\"><mechanism>DIGEST-MD5</mechanism><mecha"
"nism>PLAIN</mechanism><mechanism>ANONYMOUS</mechanism><mechanism>CRAM-MD5<"
"/mechanism></mechanisms><compression xmlns=\"http://jabber.org/features/co"
"mpress\"><method>zlib</method></compression><auth xmlns=\"http://jabber.or"
"g/features/iq-auth\"/><register xmlns=\"http://jabber.org/features/iq-regi"
"ster\"/></stream:features>"
sendbuf2 51
"<starttls xmlns=\"urn:ietf:params:xml:ns:xmpp-tls\"/>"
recvbuf3 50
"<proceed xmlns=\"urn:ietf:params:xml:ns:xmpp-tls\"/>"
sendbuf4 100
"\x80"
"b"
"\x01\x03\x01\x00"
"9"
"\x00\x00\x00"
" "
"\x00\x00\x04\x01\x00\x80\x00\x00\x05\x00\x00"
"/"
"\x00\x00"
"3"
"\x00\x00"
"2"
"\x00\x00"
"\n"
"\a"
"\x00\xc0\x00\x00\x16\x00\x00\x13\x00\x00"
"\t"
"\x06\x00"
"@"
"\x00\x00\x15\x00\x00\x12\x00\x00\x03\x02\x00\x80\x00\x00"
"\b"
"\x00\x00\x14\x00\x00\x11"
"G}臻祴"
"\x13"
"薍]け嬟譌vl竦H曃"
"\xd3\x1f"
"4("
"\x10"
recvbuf5 570
"\x16\x03\x01\x02"
"5"
"\x02\x00\x00"
"F"
"\x03\x01"
"G}臻"
"\x0e"
"w 敁砉谛觇"
"\xf5\x12"
"\"n橇"
"\x15"
"玛el/\n"
"滝"
"\x16"
"M G}臻犂u粀"
"\xaf"
"\"贂"
"\x12"
"饱Wl轸珢"
"\xb3"
"'\r猒%D^檔"
"\x00\x04\x00"
"\v"
"\x00\x01\xe3\x00\x01\xe0\x00\x01\xdd"
"0"
"\x82\x01\xd9"
"0"
"\x82\x01"
"B"
"\xa0\x03\x02\x01\x02\x02"
"\b|尖"
"\x99"
"'"
"\xea"
"0\r"
"\x06"
"\t*咹嗺\r"
"\x01\x01\x04\x05\x00"
"0"
"\x18"
"1"
"\x16"
"0"
"\x14\x06\x03"
"U"
"\x04\x03"
"\f\r172.16.14.1000"
"\x1e\x17"
"\r080102092800Z"
"\x17"
"\r121206092800Z0"
"\x18"
"1"
"\x16"
"0"
"\x14\x06\x03"
"U"
"\x04\x03"
"\f\r172.16.14.1000仧0\r"
"\x06"
"\t*咹嗺\r"
"\x01\x01\x01\x05\x00\x03"
"亶"
"\x00"
"0亯"
"\x02"
"亖"
"\x00\xb2\x0e"
"じ97#"
"\x84"
":"
"\x1c"
"碞Dcm"
"\x14"
"\tng"
"\x89"
";躸d赏"
"\xbb"
".Rj迤f6.o艞閪"
"\x06\x19"
"\a旽"
"\xa4"
"\r拲z灰"
"\xaf"
"<a薩[柇R\r犺恐b溶7n"
"\x9e\x1c\xed"
"\v韦\\"
"\x85"
"?"
"\x92"
"(!挍柫'\t^繐徾詝課"
"\xac"
"(YE幛噣Y"
"\x05"
"`&="
"\x1a"
"G"
"\x1c"
"羪孤棱"
"\xab"
"(醿"
"\x02\x03\x01\x00\x01\xa3"
",0*0("
"\x06\x03"
"U"
"\x1d\x11\x04"
"!0"
"\x1f\xa0\x1d\x06"
"\b+"
"\x06\x01\x05\x05"
"\a\b"
"\x05\xa0\x11"
"\f"
"\x0f"
"*.172.16.14.1000\r"
"\x06"
"\t*咹嗺\r"
"\x01\x01\x04\x05\x00\x03"
"亖"
"\x00\x1c"
"'"
"\xa5\x12"
"]c"
"\xf2"
"\n"
"癣豿蓋U"
"\x91\x10"
"lz6l"
"\xb6"
"\f\\"
"\xc3\xff"
"Y恣灯,伃婫涋蟖獚喝y伂q抆"
"\x1b"
"8U綹u劰h誰特"
"\x8b"
" 9c&v"
"\x0f"
"e玙"
"\x1b"
"茆Q"
"\xd5"
"<裋朸"
"\x80"
"闂擊"
"\x1f"
"B"
"\xca"
"1景鼴竭V.v"
"\x05"
"\v"
"\x96\x18"
"麜M位嶼NgH"
"\x9e"
"$;"
"\x88"
"?A绀BU"
"\x0e\x00\x00\x00"
…… Openfire+Spark+Spark Web安装配置(一)
http://sun-snowfox.blog.sohu.com/74538502.html
Openfire+Spark+Spark Web安装配置(二)
http://sun-snowfox.blog.sohu.com/74541019.html
Openfire+Spark+Spark Web安装配置(三)
http://sun-snowfox.blog.sohu.com/74542147.html 怎么没人回答了,我也想这方面的问题!麻烦知道的朋友说下!!!! LZ你好,后来这个你C/S结构,你测试了吗?我现在遇到和你一样的问题,也打算测试openfire+spark,望LZ赐教. 谢谢.
求兼职openfire +spark开发
求兼职openfire +spark开发了解 spark的原理
了解spark与QQ MSN 通信的原理!
了解jecat 等webim即时通!
联系QQ:147858017
手机:13472478590 LZ,你好。我也遇到和你一样的问题,现在解决了吗?望赐教! 改用loadrunner 8.1 请教各位一下,你们的问题都解决了嘛?能不能说以下解决方法呀? 我也遇到了这样的问题。。麻烦大虾们解决下。。 各位大哥大姐,此问题你们是如何解决的,小弟在此跪谢!!! 回复 10# testforphone
我做过openfire+Spark的性能测试,
方案一:建议找开发将通信过程中的发送和接收的日志打印出来,xml格式的,然后按照此格式替换到data.ws中,手写脚本,此方式要求很细心,工作量较大!
方案二:openfire有现成的性能测试工具,Tsung,开源的,只是要运行在linux环境下,可以找找tsung相关资料看看就懂了! xiongyijz 发表于 2014-7-24 17:18
回复 10# testforphone
我现在也在做openfire的性能测试,我想了解一下你都测了哪些场景? spark这个是客户端登陆吧,Loadrunner的用户登录之后应该会把spark的用户挤下来,另外你抓包填进data.ws里面的数据有乱码,这个应该是不对的吧。我之前抓XMPP协议的报文全部是字符串的,还是说你这个系统是加密过的 TristaHan 发表于 2015-5-15 10:03
我现在也在做openfire的性能测试,我想了解一下你都测了哪些场景?
同求,,想要知道哪些测试用例以及场景 本帖最后由 joe45 于 2015-12-1 15:52 编辑
loadrunner压不上10万的在线。 如果使用socket协议,TPS会很慢。可能还会有base64加密需要绕过去,或者decode结果,但是不同的软件, 加密规则会不同。 我用过lr 的 socket的协议压测。 也用过jmeter 加上调用java的 base64加密 jar包压测。
最好的还是用 tsung 来压测。 可以测试心跳,报文,在线,发消息等等。 tsung还支持多台并发。
页:
[1]