




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
TSUNG压力测试工具简要教程 最近做项目,接触了TSUNG压测工具,为什么要用这个工具呢?主要是要测xmpp协议,而loadrunner不支持xmpp协议的脚本录制及回放,Tsung则可以很好的支持。现将使用过程中的一些经验归纳下来,以作积累,如果有说得不清楚的地方,欢迎大家提出意见!1.TSUNG简介tsung基于erlang语言,支持多种协议如xmpp,http,mysql,支持集群,高效率(可以用一台普通的机器压垮几台性能强大的服务器)。这次在公司压测xmpp消息推送服务器时,就使用了tsung来轻松达到同时摸拟10000个OTT客户端在线的效果。2.TSUNG 测试环境搭建 TSUNG 是linux环境下的压测工具,因此所有的安装配置在linux下进行。需要准备的安装包有以下几个: UNIXODBC.tar.gz 搭建erlang语言环境的依赖包,有的linux版本不需要装 Erlang语言环境 (otp_src_R16B.tar.gz) Git 安装TSUNG的依赖包 Tsung 压测工具 Gnuplot 生成测试报告的图形工具包 Template 图形模板包2.1安装unixODBC首先将unixODBC包用ftp工具传到 /home 目录下进入home目录:cd /home然后解压 tar zxvf unixODBC.tar.gz进入目录Cd unixODBC配置./configure编译Make安装Make install2.2安装git流程与安装unixODBC 一样2.3安装erlang 语言环境包解压后进入目录,到./configure时有可能会报javac 错误,这是因为机器没有配置jdk的原因,此时可以在配置时加参数忽略。./configure -without-javac 如果机器已经装了jdk,就不会报这个配置错误了安装完以后注意使用命令whereis erlang 查看erlang的安装路径,这一步很重要,因为在配置TSUNG的时候 需要引用erlang的路径2.4安装TSUNG压力测试工具 解压进入目录后 配置的时候需要加上erlang的路径参数,否则配置的时候会失败 ./configure with-erlang=/././ (将whereis erlang 查到的erlang路径写在这里) 按照我的erlang的路径的话 是这么配置的 ./configure with-erlang=/usr/local/lib/erlang 配置好后再编译安装就行了。2.5安装gnuplot 同unixODBC的安装,中间没有其它特殊的环节2.6安装template Template 的安装使用下列命令解压: tar zxf Template-Toolkit-2.24.tar.gz进入目录 cd Template-Toolkit-2.24配置 perl Makefile.PL编译 make测试 make test 安装 sudo make installOk到此,TSUNG 测试环境所需的安装包就装完了。2.7调试及测试准备输入tsung ,如果显示如下,则证明安装成功: 如果显示的是commond not found ,则是环境变量没自动加上。 根据linux版本的不同及用户的不同,有时候安装好后会自动加上TSUNG的环境变量,有的需要手动添加 Vi /etc/profile 在文件的最后加上 REPORT_HOME=/usr/local/lib/tsung/binTSUNG_HOME=/usr/local/binERLANG_HOME=/usr/local/lib/erlangPATH=$PATH:$ERLANG_HOME:$TSUNG_HOME:$REPORT_HOMEexport PATH 保存后使用source命令立即生效Source /etc/profile注意:report_home 指向的命令其实是tsung_stats.pl,该命令用于生成html格式的图形化测试报告,路径如图:Tsung 安装完毕后,一般会在当前用户主目录下自动生成一个隐藏工作文件夹,可通过 cd /.tsung/ 进入,如图(注意:有的linux版本安装好后在没有 /.tsung/目录,这时候就需要手动新建,否则tsung运行时会提示找不到tsung.xml文件,导致无法运行。cd mkdir .tsung)其中tsung.xml文件是配置场景运行参数的文件,非常重要,下文会对这个配置文件作详细注解。安装好TSUNG 后 ,会有一些常用协议的配置文件案例,这些配置文件可以直接拷贝到tsung的 工作目录中,替换掉默认的tsung.xml文件即可。比如我现在需要采用tsung进行HTTP协议的压力测试(http测试一般采用LR 可以了,这里仅举例)可以将例子中的http_simple.xml文件复制到tsung的工作目录,替换掉原来的tsung.xml文件cp /usr/local/share/doc/tsung/examples/http_simple.xml /.tsung/tsung.xml如果是xmpp协议的压测,则将jabber.xml拷贝命名为tsung.xml即可注意:tsung运行时读取的配置文件名一定是tsung.xml,如果复制过来的例子没有重命名为tsung.xml,则无法正确读取。好了到这一步,tsung的测试前期准备工作基本上就算配置好了,现在就开始踏上TSUNG测试之旅吧。首先录制一下我们比较熟悉的HTTP协议的注册模块。注意:TSUNG 只支持录制HTTP协议,其他协议必须通过手写tsung.xml脚本。3 使用TSUNG进行HTTP协议压力测试3.1 编辑tsung.xml文件,准备录制 从前文所述,如果要录制http协议,从案例文档中复制一份http协议的xml 文件到tsung的工作目录,并改名为tsung.xml即可cp /usr/local/share/doc/tsung/examples/http_simple.xml /.tsung/tsung.xml有可能会提示是否覆盖,输入y 就行了。cat /.tsung/tsung.xml 看看这份xml的配置文件。 Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050513 Galeon/1.3.21 Mozilla/5.0 (Windows; U; Windows NT 5.2; fr-FR; rv:1.7.8) Gecko/20050511 Firefox/1.0.4 3.2 配置端口转发进行代理录制 Tsung录制http协议需要通过8090端口,因此在录制前需要配置一下本机端口转发。 使用secureCRT 进行端口转发设置,如图,按照如图进行设置就好了 设置浏览器代理,如图3.3录制脚本、进行参数调整、与tsung.xml 配置文件进行整合按照上述进行配置后,现在可以开始进行录制了。 输入命令,启动录制:tsung-recorder start注意:如果输入命令提示commond not found ,需要把tsung的主目录加到环境变量里面,可参考前述添加环境变量的方法。可看到,是通过8090端口(TSUNG 默认)进行录制的。 打开浏览器,进行会话操作在151 开发者论坛页面注册用户,注册过程结束后,在scrt 中输入回车,再输入tsung-recorder stop 停止录制 编辑录制的脚本从录制时的命令行提示我们知道了录制脚本的路径:/.tsung/tsung_recorder20130411-1559.xmlVi /.tsung/tsung_recorder20130411-1559.xml对脚本进行编辑,因为录制的是注册用户,肯定需要对用户名跟邮箱进行一定的处理,否则回放会失败。来看一下录制的脚本,这个脚本也就是一些HTTP的get,post请求,和LR的脚本差不多,就不多说了,重点是要把用户名密码改一下这里因为user002是录制时候已经用过的,回放的时候需要改变一下,为简单起见,就设置为user003,邮箱也换成.保存退出。注:这里只设置了一个值,因此需要在tsung.xml配置文件中设置最大用户数为1 。手册中也有描述怎么进行参数化,我没有细细研究,待有时间的话作个补充。可将Tsung帮助手册下载下来学习:sz /usr/local/share/doc/tsung/user_manual.html 将脚本插入tsung.xml配置文件中vi /.tsung/tsung.xml红色字体的是需要修改的!DOCTYPE tsung SYSTEM /usr/local/share/tsung/tsung-1.0.dtd Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050513 Galeon/1.3.21 Mozilla/5.0 (Windows; U; Windows NT 5.2; fr-FR; rv:1.7.8) Gecko/20050511 Firefox/1.0.4 ®user; 其中reguser 是自己随便起的会话的名称,因为我录制的是注册,因此就起了个reguser ,你也可以起其它的名字。后面把脚本文件的路径加进去就行了在标签中,将原有的都删掉,换成上述格式的就好了。注意:标签内前面的地址符跟后面的分号不可少。 运行脚本配置好tsung.xml文件后,就可以开始进行压力测试了脚本运行完以后,切换到log目录中生成测试报告cd /.tsung/log/20130411-1713小技巧:生成测试报告需要进入20130411-1713目录,然后使用tsung_stats.pl 命令,如果tsung_stats.pl未加入环境变量,则需要使用绝对路径,不太方便,因此我在log目录下为/usr/local/lib/tsung/bin/tsung_stats.pl 作了个软链接:ln -s /usr/local/lib/tsung/bin/tsung_stats.pl report这样的话,进入到要生成测试报告的日期目录中,直接使用./report 命令就可以生成测试报告了。运行后经验证,论坛成功新增了一个user003用户,证明脚本运行成功。3.4 形成测试报告执行完./report 命令后,将20130411-1713目录 整个打包下载到windows 操作系统环境下:tar -cvf 1.tar 20130411-1713sz 1.tar将下载的1.tar再解压,进入目录,打开report.html 文件即可测试报告分为stats report(状态报告) 和graphs Report(图形化报告),其中stats repor是测试的总体数据,有平均值、最高值等;graph report 为测试中各指标随时间变化的曲线。 TSUNG 的report指标与loadrunner有所不同,因时间有限,也未对这些指标的作深入研究,有时间的话我会加以研究,推出个升级版对TSUNG的report指标含义作解释。4 使用TSUNG进行XMPP协议压力测试 Loadrunner不支持xmpp协议的录制及回放,TSUNG对于xmpp协议有很好的支持方案,因此采用TSUNG进行xmpp协议的压测。 业务环境模拟:模拟在10000个OTT在线的情况下,服务器向指定的一个OTT推送消息,观察消息推送是否成功及OTT接收到的时间。4.1测试环境及测试数据准备 OTT一台该OTT主要用于接收推送的消息。TSUNG应该能够模拟向任意一个甚至是成千上万个虚拟的OTT不断地大并发的发送消息,并在log中显示出来。但因对向虚拟OTT推送消息的验证机制不了解,测试时间也很紧迫,这部分没有细细研究。因此暂时采用在10000OTT在线情况下,人工向实体OTT推送消息并计算响应时间的“笨”办法。随着OTT开发的深入,OTT好友之间的相互聊天即将变为可能,因此仅仅模拟在线还不够,还需要模拟聊天过程,因此还是要深入掌握消息推送服务器向虚拟OTT推送消息的机制。 消息推送服务器一台由开发部署在132服务器上(32), 机器别名是m132。 虚拟OTT负载生成机一台也就是安装TSUNG的机器,我已经安装在100上了(00),机器别名是localhost。为了学习一下安装的过程,建议大家在自己的虚拟机上再装一遍。 监控页面开发已经提供一个显示在线OTT的页面,地址是:32:9981/pn/session.do 可看到目前有2个实体OTT挂在132服务器上,一会要模拟1000个OTT挂在上面。应该就显示1000个online状态的用户。(我测试的时候是生成10000个,但刷这个页面的时候卡的要死,建议1000个好了)。 推送消息页面开发提供了一个向指定OTT推送消息的页面,地址是:32:9981/pn/send2OTT.html我在测试中尝试过在虚拟OTT online的情况下,向指定的一台虚拟OTT发送推送消息,但是遇到两个瓶颈:一是推送的时候页面显示“该OTT不在线”;二是不晓得从哪里验证虚拟OTT收到了服务器推送的消息。因此在测试中,也就直接采用在10000OTT在线情况下,采用人工方式向实体OTT发送推送消息,检验推送服务器在大用户在线情况下消息推送的准确性和稳定性。 数据库中虚拟OTT用户准备推送服务器向OTT推送消息需要填写username字段,因此需要事先向推送服务数据库(51)中插入10000条数据,也就是注册10000个用户。数据库是android,表是apn_user,字段是username,password插入语句:insert into apn_user(username,password)values(user1001,pass1001);我的用户名是从user1-user10000;密码pass1-pass10000。注意:用户名,密码必须采用这种格式,如果是100个用户,就是user1-user100;pass1-pass100(用户名、密码的前缀随意,但后面必须要加数字,且数字前面不需要补0,直接从1开始) 插入10000条记录直接在eclipse中采用for循环,并输出到txt文件,然后将10000条Insert into 语句 插入到数据库中。类似这样:(这个方法好像比较笨,不晓得有没有更好的方法)。4.2配置tsung.xml 文件 准备就绪后,就可以编辑TSUNG的场景参数配置文件来准备测试了。按照前文所述,可以直接从案例中拷贝xmpp协议的xml配置文件(jabber.xml)到TSUNG的工作目录中,替换原来的tsung.xml文件。 cp /usr/local/share/doc/tsung/examples/jabber.xml /.tsung/tsing进入tsung 的工作目录,看一下刚拷贝过来的tsung.xml文件,并进行编辑(编辑的内容用红色字体显示)vi /.tsung/tsung.xml . 4.3配置client及server之间相互无密码登录配置无密码登录主要是为了实现对服务器资源cpu、memory、 load 的监控。具体步骤: 在本机上实现无密码登录 分别在100,132上进行以下操作:1):更改SSH的配置文件 vi/etc/ssh/sshd_config 进行如下设置: RSAAuthenticationyes#启用RSA认证 PubkeyAuthenticationyes#启用公钥私钥配对认证方式 AuthorizedKeysFile.ssh/authorized_keys#公钥文件路径 重启SSH服务:servicesshdrestart 2):生成密钥文件: ssh-keygen-trsa执行完之后在/.ssh中看到如下文件:将id_rsa.pub加到授权的key里面去:catid_rsa.pubauthorized_keys执行该命令后会创建一个authorized_keys的文件,默认权限为644。修改authorized_keys权限为600:chmod 600 authorized_keys 执行完之后,检查一下本机是否可以无密码登录:ssh localhost 实现100到132及132到100的相互无密码登录1) 首先配置100到132的无密码登录在100的机器上执行以下操作:将100的公钥传到132的根目录下:scp /.ssh/id_rsa.pub root32:/ 切换到132,查看主目录下是否有.ssh 隐藏文件夹且权限为700,如果没有,创建并查看是否接受到100传来的公钥文件id_rsa.pubcd 将id_rsa.pub 追加到authorized_keys 中,并设置权限为600cat/id_rsa.pub/.ssh/authorized_keys chmod 600 /.ssh/authorized_keys在100的机器上ssh 32 看看是否实现无密码登录Ok,100已经能成功实现无密码登录132了2)配置132到100的无密码登录按照相同的步骤实现132到100的无密码登录:修改132的 sshd_config文件并重启sshd 服务 在132上生成公钥文件 将132的公钥文件传到100-在100上将132的公钥文件加入授权文件4.4运行测试脚本配置好tsung.xml文件后,就可以运行脚本了。运行脚本的时候注意监控一下132的日志,看有没有报错。rootm132 # tail -f /bestv/tomcat1/logs/catalina.out当1000 虚拟OTT加载完后,打开监控在线用户的页面,可看到TSUNG已经成功的模拟了1000个ONLINE状态的OTT。(这是Loadrunner所无法模拟的)。 此时通过消息推送页面,可以采用人工方式向OTT发送个消息,看看是否正确收到,以及响应时间。经过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨栏考试题及答案
- 中级财务会计(北方工业大学)知到智慧树答案
- 新安全生产法培训试题(含答案)
- 天津历年教师招聘考试教育公共基础知识真题及答案
- 实验动物助理技师模拟题+参考答案
- 中学生心理健康与道德教育知到智慧树答案
- 化妆品相关法规考核试题(附答案)
- 2025年度税务单证审核及报税合同
- 2025年食品级储存空间租赁合同
- 2025年度道路拓宽土方运输合同范本
- GB/T 21220-2024软磁金属材料
- 《数字媒体技术导论》全套教学课件
- 吉林大学介绍
- 卫浴设备安装技能的培训与认证
- NB-T+10488-2021水电工程砂石加工系统设计规范
- 废气处理工程协议
- SH/T 3158-2024 石油化工管壳式余热锅炉(正式版)
- QCSG1204009-2015电力监控系统安全防护技术规范
- 学校幼儿园消防安全风险自查检查指南
- 厚积落叶听雨声
- 《机械能及其转化》名师教案
评论
0/150
提交评论