概念
引用一個別博主的:
https://zhuanlan.zhihu.com/p/30588403
感覺像是更高級的參數驅動,等待專門的數據驅動我們再深入瞭解.
特點
- 數據和代碼分離
- 數據控制過程.(比如很多數據去訪問不同業務.瀏覽下單等)
- 減少測試代碼量
- 降低腳本開發維護成本
- 便於測試用例的修改
我們要做什麼
- 能操作excel(csv)文件,或者數據庫,或者其他文件
- 分層架構設計思維
- 用面向對象進行測試用例的開發
- 測試框架的瞭解
使用場景
- 複雜的業務流程
- 業務場景分流
- 符合條件的併發場景
單接口這類的沒有必要.
電商業務模型
這時候我們根據業務經驗或者同行等, 將測試數據進行控制分流,
比如90%的人瀏覽商品,8%的人登錄,剩下的人註冊.
然後90%的人裏面又有50%下單.
等等…
實現方法
- 參數化(csv或者數據庫)
- 邏輯控制器
csv文件用在分佈式測試的時候就有點麻煩,需要在每臺機器都要有文件.
但是數據庫不需要,而且數據結構化程度高,便於修改操作.
通過邏輯控制器if,可以分流等.
比如偶數客戶幹啥,奇數顧客去幹啥.
邏輯控制器循環結構,可以模擬秒殺等操作,不停的刷新界面.
Demo
男人瀏覽電子商品.
女人瀏覽化妝品.
創建表
我們用postgres做測試數據存儲.
create table userinfo(userid bigint, username varchar, sex smallint, createtime timestamp(6) without time zone,PRIMARY KEY(userid));
插入測試數據:
我們sex用0表示女人. 插入1000條
insert into userinfo
SELECT generate_series(1,1000),md5(random()::text),0,clock_timestamp();
我們sex用1表示女人. 插入1000條
insert into userinfo
SELECT generate_series(1001,2000),md5(random()::text),1,clock_timestamp();
jmeter創建數據庫連接
我本地有DBever,所以我直接把DBever的JDBC驅動cpoy過去.
C:\Users\10142234\AppData\Roaming\DBeaverData\drivers\maven\maven-central\org.postgresql\
copy到安裝目錄下的lib目錄
或者在測試計劃中添加環境變量指向驅動
配置數據庫連接
數據抽取
https://www.cnblogs.com/liu-xiaoliu/p/9146449.html
https://blog.csdn.net/zhu940923/article/details/94446276
select userid,username,sex from userinfo where userid > ? and userid < ?
簡單打印一下
https://www.cnblogs.com/wz123/p/11353570.html
取出來是個結果集, 所以你要指定用哪個.