SOAP Over JMS 服務(wù)調(diào)用的各個(gè)屬性說(shuō)明:
QueueConnectionFactory:連接工廠的默認(rèn) JNDI 實(shí)體
JNDI name Request queue:JNDI 請(qǐng)求隊(duì)列名字
JNDI name Receive queue:JNDI 接收隊(duì)列名字
Timeout:請(qǐng)求超時(shí)設(shè)置
Communication style:通訊形式(包括僅僅請(qǐng)求和請(qǐng)求應(yīng)答)
Content:請(qǐng)求信封
JMS Properties:JMS 的一些屬性設(shè)置(對(duì)于 IBM WAS 必須要有 targetService 屬性)
Initial Context Factory:JNDI 的初始會(huì)話工廠
Provider URL:服務(wù)提供地址
下面是一次完整的 JMS 請(qǐng)求與 JMS 響應(yīng) SOAP 數(shù)據(jù):
JMS Request
<soapenv:Envelope>
<soapenv:Body>
<tns0:getAuEmpPositionId>
<ev_id>6098</ev_id>
</tns0:getAuEmpPositionId>
</soapenv:Body>
</soapenv:Envelope>
JMS Response
<soapenv:Envelope>
<soapenv:Header/>
<soapenv:Body>
<p150:getAuEmpPositionIdResponse>
<getAuEmpPositionIdReturn xsi:nil="true"/>
</p150:getAuEmpPositionIdResponse>
</soapenv:Body>
</soapenv:Envelope>
設(shè)計(jì)高效的測(cè)試用例集
壓力測(cè)試或者系統(tǒng)測(cè)試不同于功能測(cè)試,測(cè)試的重點(diǎn)不在系統(tǒng)產(chǎn)品是不是滿足設(shè)計(jì)需求。它所看重的是系統(tǒng)在大的用戶量和負(fù)載情況下的可靠性以及系統(tǒng)響應(yīng) , 它目標(biāo)是測(cè)試系統(tǒng)的執(zhí)行效率,特別是在較短時(shí)間內(nèi)系統(tǒng)負(fù)載快速增長(zhǎng)時(shí)系統(tǒng)的相應(yīng)速度。在實(shí)際的測(cè)試過(guò)程中,大量用戶同時(shí)訪問(wèn)的系統(tǒng)節(jié)點(diǎn)也可能成為產(chǎn)品潛在的效率瓶頸。因此 , 壓力測(cè)試和系統(tǒng)測(cè)試也往往是在功能測(cè)試之后進(jìn)行。
對(duì)于普通的軟件系統(tǒng) , 產(chǎn)品的瓶頸可能會(huì)在數(shù)據(jù)庫(kù)服務(wù)器上,Web 服務(wù)器上,而對(duì)于 SOAP 服務(wù)系統(tǒng)測(cè)試,Web Services 服務(wù)器和 JMS 服務(wù)器是客戶端請(qǐng)求的主要節(jié)點(diǎn) , 同時(shí),主要業(yè)務(wù)邏輯的處理也都分布在這些節(jié)點(diǎn)上,它們很有可能成為系統(tǒng)訪問(wèn)的瓶頸,如果這些節(jié)點(diǎn)出現(xiàn)問(wèn)題,那么對(duì)整個(gè)系統(tǒng)的效率會(huì)有致命的影響,也是壓力測(cè)試和系統(tǒng)測(cè)試要優(yōu)先考慮的。
改進(jìn)測(cè)試策略、測(cè)試方法、測(cè)試過(guò)程,使用高效的測(cè)試用例集,從而保證產(chǎn)品質(zhì)量。這個(gè)是主要目的,也是直接的目的。一個(gè)高效的測(cè)試用例集應(yīng)包含以及適應(yīng)如下要素:
在什么時(shí)候確定要執(zhí)行系統(tǒng)測(cè)試
如何去檢測(cè)并解決系統(tǒng)性能和負(fù)載問(wèn)題
收集監(jiān)視服務(wù)器性能數(shù)據(jù)(I/O,CPU,MEM)
盡量減少因?yàn)閭(gè)人配置和某些測(cè)試用例而造成系統(tǒng)出現(xiàn)錯(cuò)誤和瓶頸
所有測(cè)試工作都得到有效協(xié)調(diào)并目標(biāo)一致
當(dāng)已經(jīng)確定了所需的 JMeter Samplers,并且在此基礎(chǔ)上設(shè)計(jì)出一個(gè)通用的測(cè)試計(jì)劃,那么可以構(gòu)建我們的測(cè)試腳本了。本文的測(cè)試用例以及終的測(cè)試計(jì)劃也是建立在這些要素之上。
測(cè)試計(jì)劃(Test Plan)描述了測(cè)試運(yùn)行過(guò)程中 JMeter 的執(zhí)行順序、過(guò)程以及步驟,一個(gè)完整的測(cè)試計(jì)劃包括一個(gè)或者多個(gè)線程組 (Thread Groups)、循環(huán)控制器(Loop Controllers)、監(jiān)聽(tīng)器 (Listener)、邏輯控制器(Logic Controller)、定時(shí)器(Timer)、斷言(Assertions)、配置信息(Config Elements)等。
在測(cè)試計(jì)劃中添加一個(gè)用戶定義變量配置元素(User Defined Variables), 可以在里面定義服務(wù)器地址,日志路徑,超時(shí)限制等變量,提供腳本重用。同時(shí)添加兩個(gè)用戶組,一個(gè)是 SOAP Over HTTP Group,一個(gè)是 SOAP Over JMS Group。在每個(gè)用戶組下面分別添加一個(gè)總的循環(huán)控制器(Loop Controller),用以控制腳本循環(huán)次數(shù)。在總循環(huán)控制器下面添加隨機(jī)選擇器(Random Selector)用以隨機(jī)選擇運(yùn)行測(cè)試腳本。下圖是我們整個(gè)的 Test Plan。
圖 4. 設(shè)計(jì)完成之后的 SOAP 測(cè)試計(jì)劃