日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WebBenchmark动态测试Webapi

發布時間:2023/12/4 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WebBenchmark动态测试Webapi 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

????????在編寫Webapi測試用例的時候都是定義固定的測試數據,但這樣的測試只能針對單一數據。為了更好的模擬實際情況,往往需要進行動態數據測試;通過動態數據測試可以更好的測出服務在不同數據情況下的處理能力。

??????? WebBenchmark支持動態數據函數,通過動態數據函數可以讓測試用例在每次測試所提交的數據都可以動態產生,從而達到更符合現實應用的壓力測試。

數據函數

????????進入WebBenchmark后可以通過配置的變量配置里查看軟件默認提供的值和函數

值以@開頭的是數據函數,軟件提供了數據函數有

  • date

????????根據當前日志返回一個日期格式

  • number

    返回一個隨機數值

  • guid

    創建一個guid值

  • nextlist

    從一個字符列表中隨機返回一個字符項

軟件提供的函數不多,但基于這幾個函數即可方便地完成動態數據構建并進行測試。

訂單查詢

????????接下來針對一個訂單查詢功能進行一個動態數據測試。

public?object?Orders(EFCoreDB<NorthwindContext>?db,?int?index,?int?product,?int?employee,?string?customer) {Console.WriteLine($"jwt_info:{jwt_user}/{jwt_role}");SQL sql = @"select orders.*,(employees.FirstName || ' ' || employees.LastName) Employee,customers.CompanyName Customer from orders inner join employeeson orders.EmployeeID = employees.EmployeeID innerjoin customerson orders.CustomerID = customers.CustomerID where 1=1";if (employee > 0)sql.And().Where<Employee>(e => e.EmployeeID == employee);if (!string.IsNullOrEmpty(customer))sql.And().Where<Customer>(c => c.CustomerID == customer);if (product > 0){sql += " and orders.OrderID in(select orderid from 'Order Details' where ProductID=@p1)";sql += ("@p1", product);}DBRegionData<ExpandoObject> result = new DBRegionData<ExpandoObject>(index, 10);result.Execute(db.DBContext, sql);foreach (dynamic item in result.Items){sql = @"select [Order Details].*, Products.ProductName from [Order Details] inner join Productson [Order Details].ProductID= Products.ProductID Where [Order Details].OrderID=" + item.OrderID;item.Details = sql.List<ExpandoObject>(db.DBContext);}return result; }

以上是一個訂單查詢webapi接口,提供的參數有查詢的頁數,客戶,和雇員等。

雇員和客戶定義

????????為了可以動態構建這兩個查詢項,需要針對這兩個數據定義一個列表變量。

針對這兩個參數構建對應的列表變量,后面就可以通過使用nextstr函數對這兩個列表隨機獲取數據用于測試。

構建測試用例

以上先定義了一個隨機在1-10的index參數,可以多次測試看對應的結果

接下來可以加入客戶端查詢參數

加入客戶參數后的測試結果

接下來以同樣的方式添加雇員參數

壓力測試

????????測試用例定義完成后就可以對它進行壓力測試,針對該用例定義一個性能測試用例?

以上是針對sqlite上訂單查詢的壓力測試結果。

軟件安裝使用

使用WebBenchmark對webapi進行管理和性能測試

(注意:以上功能在免費版本并不提供)

【BeetleX通訊框架代碼詳解】 【WebApi示例擴展】 BeetleX

開源跨平臺通訊框架(支持TLS)
輕松實現高性能:tcp、http、websocket、redis、rpc和網關等服務應用

https://beetlex.io

如果你想了解某方面的知識或文章可以把想法發送到

henryfan@msn.com|admin@beetlex.io

總結

以上是生活随笔為你收集整理的WebBenchmark动态测试Webapi的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。