LoadRunner測試MQTT 協議
VuGen 的 MQTT 協議支持使用機對(duì)機 (M2M) 和物聯網 (IoT) 通信的網絡測試。
在本主題中:
關于 MQTT
創建 MQTT 腳本
MQTT 腳本向(xiàng)導
使用多協議腳本
即用型 MQTT 腳本模闆
關于 MQTT
MQTT 是一種(zhǒng)爲受約束的設備和低帶寬、高延遲或不可靠網絡而設計的簡單的輕型發(fā)布/訂閱消息協議,。
MQTT 是 M2M 和 IoT 通信以及帶寬和電池電量極爲寶貴的移動應用程序的理想選擇。MQTT 緻力于最大程度地減少網絡帶寬和設備資源要求,同時(shí)嘗試确保可靠性和一定程度的交付保證。
MQTT 使用發(fā)布者-訂閱者操作來進(jìn)行客戶端和服務器之間的通信。MQTT 服務器是控制客戶端之間通信的消息代理。
客戶端或“内容”可以是發(fā)布者或訂閱者。
“發(fā)布者”是發(fā)送消息的客戶端。消息將(jiāng)轉到消息代理,并指定一個主題。
“訂閱者”是接收消息的客戶端。要接收有關主題的消息,訂閱者必須訂閱它。
創建 MQTT 腳本
您可以使用 MQTT 腳本向(xiàng)導爲腳本生成(chéng)屬性,也可以使用定義的 MQTT 函數手動對(duì)其進(jìn)行腳本編寫。
腳本的客戶端變量在“額外文件”> globals.h 文件中進(jìn)行聲明,可以從解決方案資源管理器訪問該文件。
要創建 MQTT 腳本,請執行以下操作:
通過(guò)選擇“新建腳本和解決方案”>“MQTT 協議”創建新腳本。
1.一個即用型腳本在編輯器中打開(kāi),其中使用了所有可用的 MQTT 函數。此外,“腳2.本向(xiàng)導”會(huì)在單獨的對(duì)話框中自動打開(kāi)。
3.按下列方法之一設計腳本:
使用腳本向(xiàng)導生成(chéng)腳本。
單擊“取消”關閉腳本向(xiàng)導,然後(hòu)根據需要修改即用型腳本模闆.。
注: 如果要創建多協議腳本,則可以將(jiāng) MQTT 步驟集成(chéng)到錄制的 Web - HTTP/HTML 腳本中。
配置運行時(shí)設置。這(zhè)些設置會(huì)影響 Vuser 腳本的運行方式。
在解決方案資源管理器中,雙擊“運行時(shí)設置”。
在“<測試名稱>:運行時(shí)設置”視圖中,根據需要配置運行時(shí)設置。要查看各個運行時(shí)設置的描述,請將(jiāng)光标懸停在運行時(shí)設置字段名稱上。
MQTT 腳本向(xiàng)導
連接設置選項卡 |
|
代理 URL |
代理服務器的地址,采用以下格式: tcp://host:port 或 ssl://host:port,其中 host 是域名、IPv4 地址或 IPv6 地址,位于方括号中。IPv6 地址示例: [2001:0db8:85a3:0000:0000:8a2e:0370:7334]。 如果未指定端口,則使用以下默認端口: tcp://host:1883 ssl://host:8883 |
客戶端 ID |
定義連接的客戶端 ID。該字符串是網絡中客戶端的唯一标識符。將(jiāng)該字段留空則使用自動生成(chéng)的 ID。 客戶端标識如下: 如果新建客戶端 (由“客戶端 ID”标識),則在生成(chéng)腳本時(shí),將(jiāng)使用向(xiàng)導中的所有屬性將(jiāng)新客戶端附加到現有腳本中。 自動生成(chéng)的 ID 始終會(huì)新建一個客戶端。 如果“客戶端 ID”在腳本中已經(jīng)具有連接,則將(jiāng)其視爲現有客戶端。在這(zhè)種(zhǒng)情況下,僅將(jiāng)其他屬性附加到現有客戶端。 |
身份驗證設置 |
如果需要,定義用戶名和密碼以登錄代理服務器。 |
啓用 TLS |
選擇是否需要通過(guò) TLS (SSL) 進(jìn)行安全通信,然後(hòu)從下拉列表中選擇相關的“TLS 版本”。如果選擇“默認值”,則使用運行時(shí)設置中定義的版本。 |
使用客戶端證書 |
選擇以使用客戶端證書,然後(hòu)定義證書文件和私鑰的路徑以及密鑰的密碼 (如果密鑰未加密,則將(jiāng)密碼字段留空)。 |
檢查連接 |
單擊以檢查 VuGen 是否可以使用定義的憑據成(chéng)功連接到代理。如果連接成(chéng)功,將(jiāng)顯示一個綠勾;如果連接失敗,將(jiāng)顯示一個紅叉。 |
針對(duì)新腳本顯示向(xiàng)導 |
如果不希望在新建 MQTT 腳本時(shí)自動打開(kāi)腳本向(xiàng)導,則清除該複選框。 提示: 如果腳本向(xiàng)導沒(méi)有自動打開(kāi),則可以通過(guò)單擊 VuGen 工具欄中的“設計腳本”來打開(kāi)它。 |
全部清除 |
單擊以清除所有選項卡中的所有設置。 |
生成(chéng)代碼 |
如果啓用了該按鈕,則單擊以將(jiāng)相關步驟添加到腳本代碼中;否則,繼續前進(jìn)到後(hòu)續選項卡以定義可選設置。 |
客戶端設置選項卡 |
|
發(fā)布者/訂閱者 |
爲這(zhè)些選項之一定義值。使用單選按鈕在它們之間切換: 發(fā)布者: 定義發(fā)布消息的設置。 訂閱者: 爲訂閱者定義主題。 |
要發(fā)布的主題 |
用于發(fā)布消息的目标主題,例如: myhome/kitchen/temperature/1。 |
負載 |
以字節格式設置要發(fā)布的消息。 |
保留消息 |
選中後(hòu),指示代理將(jiāng)主題中最後(hòu)保留的消息及其 QoS 一起(qǐ)存儲。每個主題僅存儲一條消息,因此最後(hòu)保留的消息將(jiāng)始終替換任何先前存儲的消息。 這(zhè)對(duì)于在新訂閱者訂閱主題時(shí)向(xiàng)其提供最新狀态非常有用,因此他們無需等待下一個狀态更新。 |
服務質量 |
所需的服務質量 (QoS)。例如,如果在 QoS = 0 的情況下失去連接,則客戶端在重新連接後(hòu)不會(huì)嘗試再次發(fā)布,并且腳本輸出中將(jiāng)顯示警告。 值爲 0 到 2 和默認值 (在運行時(shí)設置中定義)。 |
要訂閱的主題 |
用于使客戶端訂閱一個主題或一組主題 (通過(guò)使用通配符)。代理自動發(fā)送有關這(zhè)些主題的消息。主題可以包含通配符。 示例: myhome/kitchen/temperature/1, region2/# region2/WeatherStation/+/temperature 使用在運行時(shí)設置中定義的默認 QoS。 |
Last Will 和 Testament 選項卡 |
|
主題 |
定義目标主題,以將(jiāng)某客戶端非正常斷開(kāi)連接的信息通知給其他客戶端。 |
負載 |
設置客戶端意外斷開(kāi)連接時(shí)代理發(fā)送給指定主題訂閱者的消息。 |
保留消息 |
選中後(hòu),指示代理將(jiāng)最後(hòu)保留的消息存儲在此主題中。每個主題僅存儲一條消息,因此最後(hòu)保留的消息將(jiāng)始終替換任何先前存儲的消息。 |
客戶端的其他屬性
您可以使用 MQTT 腳本向(xiàng)導爲現有客戶端 (在腳本中已有連接的客戶端) 定義其他屬性。客戶端由向(xiàng)導中提供的“客戶端 ID”定義。
可能(néng)的其他屬性有:
發(fā)布者。一個客戶端可以有多個發(fā)布者。如果爲現有客戶端創建了發(fā)布者,則新發(fā)布者添加到相應客戶端的 Actions.c 文件中。
訂閱者。客戶端一次隻能(néng)訂閱一個主題。如果爲現有客戶端創建了訂閱者,則代碼生成(chéng)將(jiāng)驗證現有客戶端是否已經(jīng)訂閱。如果它有一個訂閱者,則忽略向(xiàng)導中的訂閱者。否則,將(jiāng)訂閱者添加到 vuser_init.c 文件中的 client_settings() 函數中,并在 vuser_end.c 文件中相應的客戶端斷開(kāi)連接之前添加相應的取消訂閱。
Last Will 和 Testament。一個客戶端隻能(néng)有一條 Last Will 和 Testament (LWT) 消息。如果爲現有客戶端創建了 LWT 消息,則代碼生成(chéng)將(jiāng)驗證現有客戶端是否已有 LWT。如果已有,則忽略向(xiàng)導中的 LWT 消息。如果沒(méi)有,則新的 LWT 函數添加到 vuser_init.c 文件的 client_settings() 函數中的相應客戶端。
使用多協議腳本
您可以測試腳本同時(shí)使用以下兩(liǎng)個協議的場景:
MQTT 在客戶端和代理之間進(jìn)行通信
Web - HTTP/HTML 以在代理和 Web 應用程序之間進(jìn)行通信
您可以通過(guò)在 Web 應用程序上錄制步驟來準備腳本。然後(hòu)根據需要手動添加 MQTT 步驟。使用多協議腳本時(shí)不包括預填充的 MQTT 腳本,但是您可以從即用型 MQTT 腳本模闆中複制/粘貼。
要啓用支持,請執行以下操作:
創建一個包含 MQTT 和 Web - HTTP/HTML 的多協議腳本。
錄制 Web 腳本。
注: 錄制 Web 腳本會(huì)覆蓋 globals.h,從而移除對(duì) MQTT 步驟的默認支持。
恢複對(duì) MQTT 步驟的支持:
打開(kāi) globals.h (位于解決方案資源管理器中的“額外文件”下)。
將(jiāng) #include "MqttApi.h" 添加到 Include Files 部分。
將(jiāng) MQTT 步驟添加到腳本中。
多協議腳本示例
即用型 MQTT 腳本模闆
默認的單協議 MQTT 腳本包含預先填充帶注釋步驟的操作 (如下所示)。
在使用多協議腳本時(shí),首先要在 Web 應用程序上錄制步驟。然後(hòu)根據需要添加 MQTT 步驟。可以從下面(miàn)的模闆複制/粘貼相關步驟。
有關這(zhè)些函數的詳細信息,請參閱函數參考。
操作
vuser_end
關于蘇州華克斯信息科技有限公司
聯系方式:400-028-4008 0512-62382981
專業的測試及安全産品服務提供商
Fortify | Webinspect | AppScan | SonarQube | 極狐GitLab
LoadRunner | UFT(QTP) | ALM(QC)
Micro Focus 鉑金合作夥伴 | SonarQube中國(guó)總代理
極狐GitLab鉑金級合夥伴 | HCL中國(guó)合作夥伴
掃二維碼用手機看
更多資訊