【性能測試】性能測試各知識第2篇:【附代碼文檔】

来源:https://www.cnblogs.com/yinuo112/p/18077473
-Advertisement-
Play Games

概述:在WPF中使用`WpfAnimatedGif`庫展示GIF動畫,首先確保全裝了該庫。通過XAML設置Image控制項,指定GIF路徑,然後在代碼中使用庫提供的方法實現動畫控制。這簡化了在WPF應用中處理GIF圖的過程,提供了方便的介面來管理動畫播放和暫停。 當使用 WpfAnimatedGif  ...


性能測試完整教程(附代碼資料)主要內容講述:性能測試大綱。。。。。。。。。。。。。。

全套筆記資料代碼移步: 前往gitee倉庫查看

感興趣的小伙伴可以自取哦,歡迎大家點贊轉發~


性能測試工具-LoadRunner

學習目標

1. 理解基於VuGen的腳本錄製
2. 掌握參數化的使用方法
3. 掌握關聯的使用方法
4. 掌握檢查點的使用方法
5. 掌握事務的使用方法
6. 掌握集合點的應用

VuGen操作

一、VuGen介紹

VuGen(Virtual User Generator)錄製客戶端和伺服器之間的相關交互活動,它將自動生成相關模擬 實際情況的API(Application Programming Interface)函數。

提示:
    1. LR錄製腳本功能由於相容性問題,非常不好使,所以我們平時在工作中也不建議使用錄製的方式;
    2. 由於相容性問題和錄製會產生多餘的操作,因此一般都是手寫腳本;
    3. 為了更好的學習VuGen,我們基於LR11自帶的訂票系統為案例,練習使用VuGen。

案例1

需求:1. 錄製機票網站的登錄、退出腳本
使用:
    1. 啟動網站服務程式
    2. 訪問地址:
    3. 登錄賬戶:用戶名:jojo 密碼:bean

【案例】-啟動服務程式

創建腳本

位置:開始菜單 -> HP LoadRunner -> Samples -> Web -> Start Web Server
提示:WebTours項目預設使用1080埠,如果啟動失敗,看是否埠被占用或者是否有許可權;

創建腳本

啟動成功界面

二、案例1-實施步驟分析

1. 啟動VuGen
2. 創建腳本
3. 選擇錄製協議 Web(HTTP/HTML)【重要】
4. 錄製設置
5. 腳本錄製
6. 運行腳本
2.1 啟動VuGen

方式一:直接運行VuGen圖標啟動【推薦】

開始菜單 -> HP LoadRunner -> Applications -> Virtual User Generator VuGen啟動

方式二:通過LoadRunner管理器啟動

開始菜單 -> HP LoadRunner -> LoadRunner

VuGen啟動02

VuGen啟動03

點擊:Create/Edit Scripts

2.2 創建腳本

創建腳本

1. 菜單欄(File) -> New 快捷鍵(Ctrl + N)
2. 常用工具欄 -> 第一個圖標新建
3. Start Page:點擊快捷創建腳本圖標(new Script)【推薦】
2.3 選擇協議

選擇協議

1. New Single Protocol Script:單一協議
2. Popular Protocols:主流協議
3. Web(HTTP/HTML):HTTP協議【選擇】
2.4 錄製設置

錄製選項

1. Application type:Internet Applications【選擇】(Internet Applications:HTTP協議使用)
2. Program to record:選擇瀏覽器
    1). IE8:(提示:64位操作系統必須選擇32位IE8!)【選擇】
    2). 火狐瀏覽器v24版本;
3. URL Address:
4. Working directory:工作目錄(預設即可)
5. Record into Action:錄製腳本存放的計劃名
    1). vuser_init:首先執行;迭代運行時候,只會運行一次
    2). Action:可迭代運行、可新增【選擇】
    3). vuser_end:最後執行;迭代運行時候,只會運行一次
6. 點擊OK -> 開始錄製
2.5 腳本錄製

WebTours

1. Recording...(xxx events):錄製事件
2. 用戶名:jojo 密碼:bean
3. 點擊Login
4. 點擊Sign Off退出登錄
5. 停止錄製
6. 生成腳本

退出登錄

WebTours

停止錄製

WebTours

生成腳本

WebTours

2.6 運行(回放)腳本

驗證錄製腳本是否能正常運行

WebTours

1. 點擊 Run 按鈕
2. 快捷鍵:F5鍵

查看回放腳本的運行結果

WebTours

菜單(View) -> Test Results...

三、總結

1. 啟動VuGen方式
2. 錄製HTTP項目協議
3. 錄製設置各選項含義
    1). Application type
    2). Program to record
    3). URL Address
    4). Working directory
    5). Record into Action
4. 如何運行腳本
5. 如何查看運行腳本的結果

VuGen-擴展(錄製、回放)

目標

1. 瞭解錄製模式和腳本類型
2. 瞭解 Run-time Settings(運行時設置)

一、錄製選項-擴展

WebTours

1.1 錄製設置Options選項

WebTours

  1. HTML-based script: 所有請求放到一個函數內(這裡所有請求是指,每步操作所產生的請求)

  2. URL-based script: 每個請求放到一個函數

提示:

1). 基於瀏覽器的應用程式推薦使用 HTML-based script
 2). 不是基於瀏覽器的應用程式推薦使用 URL-based script
 3). 基於瀏覽器的應用程式中使用了 HTTPS 安全協議,使用 URL-based script 方式錄製
1.2 HTML Advanced選項

WebTours

1. web_submit_form: 依賴上下文才能提交。
2. web_submit_data: 不依賴上下文,每個函數都指定了具體的 URL 地址,可以直接提交成功。【推薦】

提示:沒有特殊的場景需求,推薦使用:web_submit_data

二、運行設置

Run-time Settings

(菜單-Vuser -> Run-time Settings) 快捷鍵:F4

2.1 Run-time Settings
1. Run Logic      腳本運行迭代次數
2. Think Time     運行時思考時間處理方式
1. RunLogic 迭代次數

WebTours

提示:
    1. 迭代就是腳本要執行的次數
    2. Init 與 End 由於只會運行一次,迭代次數設置不會生效
2. Think Time 思考時間

WebTours

提示:
1. Ignore think time 預設(忽略思考時間)
2. Replay think time (回放思考時間)
    1). As recorded        (錄製多少秒,就等待多少秒)
    2). MuItiply recorded think time by     (錄製時間的倍數)
    3). Use random percentage of recorded think time
    ( Min(錄製時間的最小百分比) Max(錄製時間的最大百分比))
    4). Limit think time to(限制最高時間)
2.2 常用函數
1. lr_output_message()
2. lr_think_time()
1) 函數 lr_output_message()
輸出到運行日誌  如:lr_output_message("hello Action");
參數:要輸出的文本信息
2) lr_think_time()
思考時間 最大可能模仿用戶真實操作 如:lr_think_time(4);
參數:停頓多少秒

練習

1. 輸出Action被執行10次,使用迭代次數完成;
2. 輸出Action1被執行暫停3秒後,輸出Action2被執行;

練習腳本

Action()
{
    lr_output_message("Action1被執行");
    lr_think_time(3);
    lr_output_message("Action2被執行");
return 0;
}

2.3 擴展 編譯

編譯

C語言屬於高級語言,不能直接被電腦識別,需要進行編譯成電腦可執行語言,在編譯的時候如果腳本語法有錯,會直接提示。
使用:點擊編譯圖標或使用快捷鍵:Shift + F5

提示:

編譯提示:No errors detected 代表通過;

VuGen-手動編寫腳本

目標

1. 掌握C語言的註釋方法
2. 掌握基於LR手動編輯腳本的方法

首先科普下C語言中的註釋;

1. //:單行註釋  如://登錄             
2. /**/:多行註釋  如:/*多行    註釋*/    

提示:
    1). Ctrl + Alt + C 為單行註釋快捷鍵;
    2). Ctrl + Alt + U 為取消單行註釋快捷鍵;

一、手動編寫腳本

1.1 為什麼要手寫腳本
  1. 避免LR由於相容性導致錄製異常或失敗;

  2. 手寫腳本無冗餘代碼,更有利於腳本的增強(插入事務、參數化)和維護
1.2 手動編寫腳本使用編寫語言
  1. JAVA

  2. C語言【推薦】

提示:

1. LoadRunner中雖然預設是使用C語言錄製/編寫腳本,但我們無需專門去學C語言;
2. 只需註意下基礎語法和掌握LR中常用的幾個請求函數的用法就可以編寫常用的腳本;
1.3 腳本請求 函數
  1. web_url()
  2. web_submit_data()
  3. web_custom_request()

提示:

1. web_url:GET請求使用
2. web_submit_data:GET、POST請求
3. web_custom_request:定製請求(GET\POST\PUT\DELETE)等,介面請求使用此函數
1.3.1 web_url() 函數【重點】

只能做GET請求;

語法:

web_url("request name","URL= 
1). request name:標記請求名稱,比如:首頁
2). URL=
3). LAST結束標誌;
1.3.2 web_submit_data()函數【重點】

預設設置是POST請求;也可以做GET請求。

語法:

web_submit_data(StepName, Action= <List of Attributes>, 
ITEMDATA,<List of data>, LAST); 
1). StepName:標記請求名稱, 比如:登錄
2). Action=
3). List of Attributes:其他屬性 如:"Method=POST"
4). List of data:其他參數 如:"username=jojo"
5). LAST:結束符

提示:

1. POST提交參數比較多,但我們不需用一個個記,使用插入函數方法,在函數對話框內輸入即可;
2. 錄製HTML頁面時,Mode推薦使用HTML;
1.3.3 web_custom_request() 函數【掌握】

自定義請求方法(GET/POST/PUT/DELETE),用於實現介面測試。

語法:

web_custom_request(RequestName, <List of Attributes>,LAST); 
1). RequestName:請求名稱
2). List of Attributes:屬性列表,如:"Method=POST"
3). LAST:結束符

提示:

一般做介面壓測時使用;

練習

手動編寫 iWebShop 的登錄腳本;

未完待續, 同學們請等待下一期

全套筆記資料代碼移步: 前往gitee倉庫查看

感興趣的小伙伴可以自取哦,歡迎大家點贊轉發~


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、引言 在.NET開發中,操作Office文檔(特別是Excel和Word)是一項常見的需求。然而,在伺服器端或無Microsoft Office環境的場景下,直接使用Office Interop可能會面臨挑戰。為瞭解決這個問題,開源庫NPOI應運而生,它提供了無需安裝Office即可創建、讀取和 ...
  • 一、引言 在現代應用程式開發中,尤其是在涉及I/O操作(如網路請求、文件讀寫等)時,非同步編程成為了提高性能和用戶體驗的關鍵技術。C#作為.NET框架下的主流開發語言,提供了強大的非同步編程支持,通過async/await關鍵字,可以讓開發者以同步的方式編寫非同步代碼,極大地簡化了非同步編程的複雜性。本文將 ...
  • 支持.Net/.Net Core/.Net Framework,可以部署在Docker, Windows, Linux, Mac。 常見的ORM技術(比如:Entity Framework,Dapper,SqlSugar,NHibernate,等…),它們不是在做Sql語句的程式化變種,就是在做Sq ...
  • Nuget包 Microsoft.Extensions.Telemetry.Abstractions 包含的新的日誌記錄source generator,它支持使用[LogProperties]將整個對象作為State與日誌一起記錄。 我將展示一種方法來控制如何使用[LogProperties]對象 ...
  • 概述:以上內容詳細介紹了在C#中如何從另一個線程更新GUI,包括基礎功能和高級功能。對於WinForms,使用`Control.Invoke`;對於WPF,使用`Dispatcher.Invoke`。高級功能使用`SynchronizationContext`實現線程間通信,確保清晰、可讀性高的代碼 ...
  • using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Windows.Forms; namespace OOP { pub ...
  • 本章將和大家分享如何通過 Elasticsearch 實現自動補全查詢功能。 一、自動補全-安裝拼音分詞器 1、自動補全需求說明 當用戶在搜索框輸入字元時,我們應該提示出與該字元有關的搜索項,如圖: 2、使用拼音分詞 要實現根據字母做補全,就必須對文檔按照拼音分詞。在 GitHub 上恰好有 Ela ...
  • 您是否曾經訪問過一個網站,它需要很長時間載入,最終你敲擊 F5 重新載入頁面。 即使用戶刷新了瀏覽器取消了原始請求,而對於伺服器來說,API也不會知道它正在計算的值將在結束時被丟棄,刷新五次,伺服器將觸發 5 個請求。 為瞭解決這個問題,ASP.NET Core 為 Web 伺服器提供了一種機制,就 ...
一周排行
    -Advertisement-
    Play Games
  • C#TMS系統代碼-基礎頁面BaseCity學習 本人純新手,剛進公司跟領導報道,我說我是java全棧,他問我會不會C#,我說大學學過,他說這個TMS系統就給你來管了。外包已經把代碼給我了,這幾天先把增刪改查的代碼背一下,說不定後面就要趕鴨子上架了 Service頁面 //using => impo ...
  • 委托與事件 委托 委托的定義 委托是C#中的一種類型,用於存儲對方法的引用。它允許將方法作為參數傳遞給其他方法,實現回調、事件處理和動態調用等功能。通俗來講,就是委托包含方法的記憶體地址,方法匹配與委托相同的簽名,因此通過使用正確的參數類型來調用方法。 委托的特性 引用方法:委托允許存儲對方法的引用, ...
  • 前言 這幾天閑來沒事看看ABP vNext的文檔和源碼,關於關於依賴註入(屬性註入)這塊兒產生了興趣。 我們都知道。Volo.ABP 依賴註入容器使用了第三方組件Autofac實現的。有三種註入方式,構造函數註入和方法註入和屬性註入。 ABP的屬性註入原則參考如下: 這時候我就開始疑惑了,因為我知道 ...
  • C#TMS系統代碼-業務頁面ShippingNotice學習 學一個業務頁面,ok,領導開完會就被裁掉了,很突然啊,他收拾東西的時候我還以為他要旅游提前請假了,還在尋思為什麼回家連自己買的幾箱飲料都要叫跑腿帶走,怕被偷嗎?還好我在他開會之前拿了兩瓶芬達 感覺感覺前面的BaseCity差不太多,這邊的 ...
  • 概述:在C#中,通過`Expression`類、`AndAlso`和`OrElse`方法可組合兩個`Expression<Func<T, bool>>`,實現多條件動態查詢。通過創建表達式樹,可輕鬆構建複雜的查詢條件。 在C#中,可以使用AndAlso和OrElse方法組合兩個Expression< ...
  • 閑來無聊在我的Biwen.QuickApi中實現一下極簡的事件匯流排,其實代碼還是蠻簡單的,對於初學者可能有些幫助 就貼出來,有什麼不足的地方也歡迎板磚交流~ 首先定義一個事件約定的空介面 public interface IEvent{} 然後定義事件訂閱者介面 public interface I ...
  • 1. 案例 成某三甲醫預約系統, 該項目在2024年初進行上線測試,在正常運行了兩天後,業務系統報錯:The connection pool has been exhausted, either raise MaxPoolSize (currently 800) or Timeout (curren ...
  • 背景 我們有些工具在 Web 版中已經有了很好的實踐,而在 WPF 中重新開發也是一種費時費力的操作,那麼直接集成則是最省事省力的方法了。 思路解釋 為什麼要使用 WPF?莫問為什麼,老 C# 開發的堅持,另外因為 Windows 上已經裝了 Webview2/edge 整體打包比 electron ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...