最近做了一個(gè)月的服務(wù)器壓力測(cè)試,廢話不多說,講一講使用的軟件tsung,若有不足或錯(cuò)誤之處還望提出。
tsung簡(jiǎn)介:tsung是基于erlang語言的,tsung現(xiàn)只能運(yùn)行在linux版本下,是在erlang虛擬機(jī)上創(chuàng)建大量的虛擬用戶,來對(duì)服務(wù)器進(jìn)行壓力測(cè)試,1.5.1版本后開始支持mqtt,最新版本1.6.0,1.6.0版本開始支持mqtt的用戶名密碼認(rèn)證。tsung也支持http、mysql。
tsung工作原理:(1)Tsung的每一個(gè)虛擬用戶就是一個(gè)erlang的輕量進(jìn)程。這點(diǎn)和loadrunner有很大的區(qū)別。(2)虛擬用戶完成session后就消失。(3)大量的虛擬用戶(erlang輕量進(jìn)程)建立在erlangVM上。(4)一臺(tái)測(cè)試機(jī)可以啟多個(gè)erlangVM,目前按照1個(gè)cpu啟動(dòng)1個(gè)erlangVM
tsung安裝,我就不多說了,網(wǎng)上都是可以搜索到的
tsung的配置使用:
1、在root下新建.tsung文件,在.tsung文件新建log文件夾。.tsung文件用于存放log和xml文件
2、復(fù)制/usr/local/tsung/share/doc/tsung/examples/目錄下的xml文件到.tsung文件下(http壓力測(cè)試http_simple.xml,mqtt壓力測(cè)試mqtt.xml,mysql壓力測(cè)試mysql.xml),并重命名為tsung.xml
3、運(yùn)行默認(rèn)執(zhí)行腳本~/.tsung/tsung.xml配置,修改tsung.xml文件,如下
4、clients:

可指定多個(gè)client,若指定多個(gè)client,則要保證各個(gè)client之間可以ssh無密碼登錄,并且erlang版本需一致。host為本地ip指定的域名(此處不能用ip地址),use_controller_vm為true時(shí),當(dāng)用戶量增加到maxusers時(shí),就是終止程序,當(dāng)為false時(shí),當(dāng)用戶量增加到maxusers時(shí),會(huì)重新創(chuàng)建一個(gè)虛擬機(jī),然后繼續(xù)在新虛擬機(jī)上運(yùn)行腳本 。(若主機(jī)為單核,請(qǐng)?jiān)O(shè)置use_controller_vm為true)
注:host大多數(shù)情況下為localhost,若運(yùn)行tsung時(shí)出現(xiàn)“Host key verfication failed”,可對(duì)/etc/hosts進(jìn)行查看

可以添加localhost字段,如上圖,或者在xml文件中host后的域名改為"iZ23netdpp7Z"。
5、servers mqtt服務(wù)器的ip地址,端口號(hào),默認(rèn)協(xié)議為tcp
6、monitor 用了監(jiān)控服務(wù)器信息(國(guó)內(nèi)各大服務(wù)器廠商都要自己的監(jiān)控工具,如阿里的云監(jiān)控控制臺(tái),因此這里可以不進(jìn)行設(shè)置)
7、load 加載用戶信息,加載用戶分為兩種方式。1、靜態(tài)加載用戶;2、隨機(jī)加載用戶
? ? 1、靜態(tài)加載用戶:
? ? ? ? <user session="session_name" start_time="10" unit="second"></user>
? ? ? ? 產(chǎn)生一個(gè)用戶,該用戶執(zhí)行名為session_name的session,10s后執(zhí)行。
? ? 2、隨機(jī)加載用戶
? ? ? <arrivalphase phase="1" duration="3" unit="second">
? ? ? ? <users maxnumber="5" arrivalrate="1" unit="second"/>
? ? ? </arrivalphase>
? ? ? 其中產(chǎn)生用戶速度配置有兩種:1、arrivalrate:每s產(chǎn)生多少用戶
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2、interarrival:每多少s產(chǎn)生一個(gè)用戶
? ? ? 注:可配置多個(gè)arrivalphase,按照phase排序來順序執(zhí)行。
8、session 用戶的行為
tsung的使用介紹就到此為止,這里只是把網(wǎng)上的內(nèi)容以及對(duì)自己在測(cè)試時(shí)遇到的問題做了個(gè)總結(jié)。我相信,多使用幾次tsung后,還是挺傻瓜式的。
??