DDT資料驅動性能測驗(一)
一、csv資料檔案設定
1、使用場景:測驗程序中需要使用手機號碼等大量資料時,用random函式隨機生成數字;也可以使用Excel拖動生成一批手機號,也有可以從資料庫中匯出一批手機號,把準備好的資料,放到txt檔案,或者csv檔案中,使用csv資料檔案設定直接呼叫,
2、txt檔案、csv檔案:都是文本檔案,只是csv檔案是用逗號分割列的文本檔案
3、使用csv資料檔案設定,建議使用 txt檔案,有兩點原因
3.1 csv檔案被打開時,占用的系統資源要多于txt,從性能測驗角度分析,要盡可能使用不會影響到性能得檔案
3.2 csv檔案默認使用Excel來編輯,Excel的默認保存檔案編碼不是utf8,那么,在檔案中有中文的時候,可能就會出現中文亂碼
4、檔案名:在執行緒組中添加csv資料檔案設定后,必須匯入檔案,因為檔案名為空,jmeter工具就會報錯,整個腳本就不能運行
4.1 相對路徑:相對的起始點
4.1.1 jmeter的bin檔案夾 ----這個是jmeter的腳本默認的保存路徑
4.1.2 jmx腳本保存的路徑
4.2 csv檔案放置位置:放在jmx路徑相同的位置,相對路徑使用'.\'反斜杠
4.2.1 這個.\ 可以在linux系統中被使用------也就是說,這個路徑可以跨平臺(兼容window、 mac、linux)
4.2.2 做性能測驗時,我們的jmx腳本可能要放到linux 系統中來運行,所以,我們建議這個相對路徑的 斜杠 用 '.\'
4.3 在使用CLI命令進行性能測驗時,建議把csv的檔案放在 jmeter命令執行的位置
5、變數名稱:定義的變數名稱,會接收對應列的值,啟動運行,就會從第一行開始取值,默認: 如果你啟動運行之后,會回圈運行多次,那么,就會自動的從第一行開始往下取值,如果總的運行次數,超過我們檔案行數量,就會從第一行開始,再從上往下取值, 多個變數名稱之間,用固定逗號來分割
6、忽略首行:選擇 false不忽略首行; true忽略首行,從第二行開始
7、分隔符: 默認為“,”這個是csv的默認分割符合 這個可以根據你自己的檔案中的分割符來改變,
8、遇到檔案結束符再次回圈?(T1):默認為TRUE
8.1 檔案結束符:檔案的最后一行的結束標記
8.2 true:是的,我會繼續回圈,從頭開始回圈,檔案第一行;false:停止回圈
9、遇到檔案結束符停止執行緒?(T2):默認false
9.1 停止回圈:停止做某件事情,不再從檔案開頭進行回圈
9.2 false 不,我不會停止腳本的運行;true 是的,我會停止腳本的運行
10、T1+T2
10.1 T1 true + T2 false == 不會停止運行,繼續運行,又從頭開始取值,
10.2 T1 true + T2 true === 發生沖突,導致T2無效,會繼續運行,從頭開始回圈
10.3 T1 false + T2 true ===我會停止運行,T1也沒用了
10.4 T1 false + T2 false ===不會停止運行,T1就一直在最后一個空值 上回圈
11、執行緒共享模式
11.1 所有執行緒: 所有的并發用戶都共享一個csv檔案,所有執行緒取這個檔案中的值的時候,回圈取值
11.2 當前執行緒組: 只在這個執行緒組內共享檔案資料
11.3 當前執行緒: 執行緒組中每個執行緒都有一個獨立csv檔案
11.4 后置處理器、csv資料檔案設定等等一些元件中定義的變數,都是 jmeter 的引數變數,不能直接跨執行緒組,
二、邏輯控制器
1、邏輯控制器是用來控制腳本執行的邏輯順序,控制的主體為取樣器
2、if條件控制:if條件滿足才會去執行下面的取樣器
2.1 默認請求下,必須使用jexl3 或 groovy這個函式,把運算式的結果計算出來,為真,才執行邏輯控制器下的取樣器,如果為假,則不執行,輸入框填寫計算式:${__groovy(${jcode} == 0,)}
2.2 去掉 Interpret condition as variable expression的復選框,輸入框填寫運算式{jcode} == 0
3、foreach控制器:對一個明確串列資料來進行回圈
3.1 使用場景一:后置處理器提取出多個值的時候,多個值,就會自動帶上_數字
3.2 使用場景二:用一個變數來接收,從資料庫中回傳資料,當這個變數的值有 多個時,這個變數名稱后面也會跟上_數字,你要用這些值,
4、回圈控制器:控制取樣器執行次數
5、僅一次控制器:啟動運行之后,每個執行緒只會運行一次
6、事務控制器
6.1 jmeter中,默認,一個取樣器執行一次請求,就是一個事務
6.2 jmeter中,也可以通過事務控制器,把多個介面合并在一起,發起 一次完整的請求,當做一個事務,
6.3 用jmeter做介面的性能測驗, 先對單介面進行性能測驗,然后,再 試多介面構成業務進行性能測驗, 再多業務一起性能測驗,系統的性能測驗,
6.3.1 全鏈路:發起請求的資料流的各個環節都需要測驗,
6.3.1.1 常規理解:使用jmeter先對1個介面進行測驗,再擴展到2-3個,最后慢慢的把整個產品中, 非常多個多的介面,都進行性能測驗,對于中小微企業,或者完全還沒有性能測驗部門的公司,這就是全鏈路測驗
6.4.1.2 真正意義上的全鏈路:多個介面都需要做性能測驗;對應服務器的各個環境,都需要進行監控;流量回放;壓測工具 ;全鏈路監控;全鏈路性能分析
三、其他協議腳本撰寫
1、soap協議 = = http協議 + xml資料
1.1 用jmeter寫soap協議腳本, 使用http取樣器 + xml,資料放在訊息體資料中
1.2 soap協議介面版本 1.1版本與1.2版本的區別
1.2.1 訊息頭: 1.1中 SOAPAction, Content-Type不一樣
1.2.2 請求體中,節點的標簽名不一樣
2、jdbc協議:java語言連接資料庫執行sql的api介面協議
2.1 jmeter呼叫jdbc協議: 需要資料庫的驅動
2.1.1 了解資料庫的型別dbms: mysql、oracle、 postgresql、sqlite
2.1.2 獲取java語言呼叫資料庫的驅動包:通過maven倉庫
2.1.2.1 http://mvnrepository.com/ 搜索mysql
2.1.2.2 確認自己的mysql的版本:如果自己的mysql版本為5.7.x的版本,你的驅動包,可以選擇大于等于資料庫版本的包;如果你的mysql是8.x的版本, 你選擇的驅動包, 就要與你的資料庫版本一致
2.1.3 把下載的驅動包,放到jmeter的lib\ext檔案夾中,然后,重啟 jmeter
2.1.4 jmeter連接mysql資料庫
2.1.4.1 資料庫的ip、port、賬號、密碼
2.1.4.2 在jmeter中,添加資料庫配置資訊:JDBC Connection Configuration
Variable Name for created pool: 自定義
DatabaseURL(mysql寫法):jdbc:mysql://msyql_ip:port/dbname
JDBC Driver class:當你的資料庫版本為5.7.x版本,可以直接 選擇 com.mysql.jdbc.Drvier;資料庫版本為8.x版本: com.mysql.cj.jdbc.Driver
用戶名,密碼
2.1.5 執行sql腳本 -----取樣器
2.1.5.1 jdbc request
pool: 填寫Configuration中自定義 pool名稱
SQL Query: 寫腳本
query type: select statement
2.1.6 SQL Query:在執行查詢陳述句時不建議查全表,因為jmeter影像界面工具,默認只能支持10m的回應;查看結果樹中,默認只會顯示最新的500回應,超過了會導致 jmeter卡死,后面程式有部分資料會看不到;在jmeter.properties組態檔中可以修改但是不建議改,因為,我們性能測驗不用影像界面,也不用查看結果樹,
2.1.6.1 撰寫sql時這個結尾的分號可以不寫,因為,jmeter默認不支持 一個取樣器中寫多個sql
2.1.6.2 怎么定義變數來接收資料庫查詢結果:如果想使用特定的引數,則將不使用的引數用一個逗號隔開
2.1.6.3 在sql中參考變數:1、直接變數參考 ${變數} ---這種用法,可能存在安全風險不建議使用;2、使用 ? 來占位,占用一個變數參考的位置:parameter values: 填寫 ${變數};parameter type: 填寫 varchar, 如果要傳入整數 integer;注意: query type 修改為 prepared select statement ;帶有 prepared 開頭是在腳本中,可以傳入引數;多個變數時,用逗號分割
2.2 sqlite資料庫
2.2.1 是一個關系型資料庫,這個資料庫,只需要你有影像界面系統,然后有瀏覽器, 這個資料庫在你電腦里已經應用,
2.2.2 使用:下載jar檔案 mvn倉庫中下載-放入jmeter的lib\ext檔案夾, 重啟jmeter
2.2.3 JDBC Connection Configuration:pool: 自定義;DatabaseURL: jdbc:sqlite:sqlitefile.db;Drvier class: 選擇 org.sqlite.JDBC;賬號密碼: 空
2.2.4 這個資料庫,不用建庫,只需要建表;sqlite 資料庫是一個記憶體資料庫,但是,這個資料庫,不支持多執行緒并發
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/463519.html
標籤:其他
上一篇:MongoDB 分片規則
下一篇:游戲測驗相關-測驗一個英雄的技能
