ngrinder混合場景壓測例子
原理簡單就是通過隨機演算法進行分配
1.進行50% 50%請求。根據具體的請求進行混合。這裡作為例子進行
具體按照比例可以根據實際情況獲取。比例。或者是根據請求的次數進行比例換算
2.通過定義2個Gtest。進行50% 介面的互相混合;
要求 | 命中率 |
test1 | 50% |
test2 |
50% |
3.想出多線的報表,需要配置間隔
這裡配置一下;
.......
@RunWith(GrinderRunner)
class TestRunner {
public static GTest test1
public static GTest test2
public static GTest test3
public static HTTPRequest request
public static NVPair[] headers = []
public static NVPair[] params = []
public static Cookie[] cookies = []
public static String[] basic
Random random = new Random()
@BeforeProcess
public static void beforeProcess() {
HTTPPluginControl.getConnectionDefaults().timeout = 6000
//test = new GTest(2, "****.com")
test1 = new GTest(1, "test1") // 引數為 ID、顯示名
test2 = new GTest(1, "test2")
test3 = new GTest(1, "test3")
request = new HTTPRequest()
basic = new File("./resources/cityandversion.csv") as String[]
grinder.logger.info("before process.");
}
@BeforeThread
public void beforeThread() {
//test.record(this, "test")
test1.record(this, "test1")
test2.record(this, "test2")
test3.record(this, "test3")
grinder.statistics.delayReports=true
grinder.logger.info("before thread.");
}
@Before
public void before() {
request.setHeaders(headers)
cookies.each { CookieModule.addCookie(it, HTTPPluginControl.getThreadHTTPClientContext()) }
grinder.logger.info("before thread. init headers and cookies");
}
//核心程式碼
@Test
public void test(){
int n =(int)new java.util.Random().nextInt(100)
grinder.logger.info(String.valueOf(n))
/***/
switch (n) {
case 0 .. 50: // n為90-97之間時
this.test1()
break;
case 51 .. 100: // n為70-89之間時
this.test2()
break;
}
}
public void test1(){
HTTPResponse result = request.GET("https://xxx.com/api/nearby/v3/nearbyBikeInfo?longitude=116.46723372&latitude=39.94815657&platform=1&bikenum=100&biketype=4", params)
if (result.statusCode == 301 || result.statusCode == 302) {
grinder.logger.warn("Warning. The response may not be correct. The response code was {}.", result.statusCode);
} else {
assertThat(result.statusCode, is(200));
}
}
public void test2(){
HTTPResponse result = request.POST("https://xxx.com/api/v2/api/config/v1.do?version=010&citycode=010", params)
if (result.statusCode == 301 || result.statusCode == 302) {
grinder.logger.warn("Warning. The response may not be correct. The response code was {}.", result.statusCode);
} else {
assertThat(result.statusCode, is(200));
}
}
public void test3(){
HTTPResponse result = request.GET("https://xxx.com/api/v2/rentmgr/getriding.do", params)
if (result.statusCode == 301 || result.statusCode == 302) {
grinder.logger.warn("Warning. The response may not be correct. The response code was {}.", result.statusCode);
} else {
assertThat(result.statusCode, is(200));
}
}
}
相關推薦
ngrinder混合場景壓測例子
原理簡單就是通過隨機演算法進行分配 1.進行50% 50%請求。根據具體的請求進行混合。這裡作為例子進行 具體按照比例可以根據實際情況獲取。比例。或者是根據請求的次數進行比例換算 2.通過定義2個Gtest。進行50% 介面的互相混合; 要求 命中率
JMeter壓測例子
【後臺測試】手把手教你jmeter壓測 ◆版權宣告:本文出自胖喵~的部落格,轉載必須註明出處。 轉載請註明出處:http://www.cnblogs.com/by-dream/p/5611555.html 我知
Cephfs & Ceph RBD 在k8s中的適用場景討論及資料庫效能壓測
前言 測試發現cephfs的小檔案讀寫效能一般,且寫入延遲偏高,效能不甚滿意,但是滿足於日常應用環境的讀寫是沒有問題的,但是在面對資料庫的應用場景,是否能滿足效能要求呢?本篇主要結合kubernetes,針對資料庫應用場景,對cephfs 和 ceph rbd
LoadRunner 壓測場景制定
問題 bubuko 兩種 以及 sts image 利用 adr runner 這裏,我們利用 LoadRunner 來制定場景 前提:準備好沒問題的腳本以及數據 進入壓測場景的方式有兩種,這裏,我們示範兩種方式的進入手工設定場景1、直接進入 Run Load Test
01 . OpenResty簡介部署,優缺點,壓測,適用場景及用Lua實現服務灰度釋出
#### 簡介 > OpenResty® 是一個基於 [Nginx](http://openresty.org/cn/nginx.html) 與 Lua 的高效能 Web 平臺,其內部集成了大量精良的 Lua 庫、第三方模組以及大多數的依賴項。用於方便地搭建能夠處理超高併發、擴充套件性極高的動態 Web 應
java 生成壓測數據
frame 數據 exce object 計劃 list ++ reat ktr public static void main(String[] args) throws IOException { List<Object[]> rows = new A
接口壓測工具--jmeter
cto linux下 一點 不一致 文件讀取 coo 並發 bin 文檔 jmeter jmeter是apache公司基於java開發的一款開源壓力測試工具,是一個較輕量的測試工具。運行需要安裝jdk環境,jmeter為免安裝軟件, 解壓後直接運行j
【原】shell編寫一個簡單的jmeter自動化壓測腳本
image tac vbo 用戶數 osx dot png das uvc 在公司做壓力測試也挺長時間了,每次測試前環境數據準備都需要話費較長時間,所以一直在考慮能不能將整個過程實現自動化進行,於是就抽空寫了一個自動化腳本,當然這個腳本目前功能十分簡陋,代碼也不完善,很有很
壓測mysql連接數
ces class 支持 col num images 運行 image 配置 Mysql server 支持的最大連接數 主機的性能直接影響到Mysql server端支持的最大並發連接數,如內存不足會造成連接創建失敗。 /etc/my.conf 配置Mysql ser
使用bender對thrift接口進行壓測
hadoop class facebook 創建 二進制格式 體積 代碼生成 憂傷 程序 背景:Facebook 開發的遠程服務調用框架 Apache Thrift,它采用接口描述語言定義並創建服務,支持可擴展的跨語言服務開發,所包含的代碼生成引擎可以在多種語言中創建高效的
基於Dubbo的壓測調優實例
aso clas 是不是 服務 查詢參數 底層 cti gem 數據庫連接池 不久前參與開發了一個基於dubbo分布式框架的底層賬單系統,並實現了其中的一部分業務接口,目前需對這些接口進行壓測,以評估生產環境所能承受的最大吞吐量。筆者以其中一個查詢接口為例來回顧此次壓測
技術文章 | 系統穩定性保障核武器——全鏈路壓測
tps alt 系統 f11 技術文章 無限 通過 技術分享 center 為什麽要做全鏈路壓測? 對阿裏巴巴而言,每年最重要的一天莫過於雙11。這是因為在雙11的零點,系統會遭遇史無前例的巨大洪峰流量沖擊,保證雙11當天系統的穩定性對高可用團隊來說是巨大的挑戰。在這個
apache ab壓測快速使用(天下沒有難學的技術,只有LJ的教程)
cmd命令 單位 color 結果 返回 window 常用 教程 apach 目錄(沒有你想要的直接掠過,這裏以window為例) 如何下載ab 如何使用ab ab常用參數介紹 ab壓測遇到坑看這裏 一、如何下載ab 1.從官網下載(htt
分布式測試工具Beetle.DT的部署並進行HTTP,SQL,TCP壓測
-- req web har 內測 測試用例 ray beetl 安裝 由於Beetle.DT是一個分布式壓力測試工具,所以在使用上並不像普通工具那樣安裝運行這麽簡單;由於工具涉及到測試管理中心,節點和管理端等工具; 所以必須要進行相應的部署才能運行。接下來詳解一下如果安裝
想做iPhoneX搶購活動?壓測大師先教你優化網站後臺
app get 了解 頁面 報告 好的 騰訊 智能手機 如果 北京時間9月13日淩晨1點,iPhone 10周年,在Apple Park喬布斯劇院,蘋果發布了三款新iPhone。全面屏iPhone X來襲,這款被定義為未來的智能手機黑科技滿滿:全面屏,無線充電、面部識別“F
sysbench性能壓測以及mysql性能壓測
sysbench性能壓測以及mysql性能壓測 mysql基準測試 mysql性能測試 sysbench性能壓測以及mysql性能壓測一、Sysbench是一個模塊化的、跨平臺、多線程基準測試工具,主要用於各種不同系統的參數下的數據庫負載情況。 主要測試方式cpu性能磁盤i
雙十一臨近,怎樣讓買家流暢地秒殺? ——騰訊WeTest獨家開放電商產品壓測服務
img 高峰 大促 做出 開始 認證 class display 購物車 WeTest 導讀 十一月臨近,一年一度的電商大戲“雙十一”又將隆重出場,目前各大商家已經開始各類優惠券的發放,各類大促的商品表單也已經提前流出,即將流入各個用戶的購物車中。 作為
壓測過程中網絡帶寬瓶頸案例分析
strong edi mon 單位 內存占用 err 一個 網絡傳輸 src 近期在做一個項目的性能測試時,在打壓時發現壓力達到100hps後就一直打不上去,同時還會報讀redis服務器超時的錯誤。 查看了下打壓服務器的cpu和內存占用,沒有發現什麽異常。 通過nmon監控
壓測過程中故障排查之一:高CPU占用問題分析案例
一段 運行 應用 進行 返回 sco close 找到 java 說明: 一個應用占用CPU很高,除了確實是計算密集型應用之外,通常原因都是出現了死循環 以我們最近出現的一個實際故障為例,介紹怎麽定位和解決這類問題。 根據top命令,發現PID為28555的Java進程占
磁盤IO高和線程切換過高性能壓測案例分析
cnblogs 左右 系統 stp tex clas ++ class tap 案例現象: 壓力測試的時候,發現A請求壓力80tps後,cpu占用就非常高了(24核的機器,每個cpu占用率全面飆到80%以上),且設置的檢查點沒有任何報錯。 1、top命令如下: 2、