建立資料夾,把tpc工具放入
cd /tpcds/v2.1.0/tools/
./dsdgen -dir /opt/3t_data -scale 3000-parallel 20 -child 20 -terminate n
[root@node2 /]# mkdir tpcds_3t
[root@node2 /]# ls
bin boot cgroups_test dev etc hadoop home lib lib64 lost+found media mnt opt proc root sbin selinux srv sys tmp tpcds_3t usr var
[root@node2 /]# cd tpcds_3t
[root@node2 tpcds_3t]# ls
dstools.zip
[root@node2 tpcds_3t]#
解壓工具包,進入tools編譯
[root@node2 tpcds_3t]# unzip dstools.zip
[root@node2 tpcds_3t]# ls
dstools.zip tpcdsversion1.3.1
[root@node2 tpcds_3t]# cd tpcdsversion1.3.1/
[root@node2 tpcdsversion1.3.1]# ls
answer_sets dbgen2 query_templates query_variants specification tools
[root@node2 tpcdsversion1.3.1]# cd tools
[root@node2 tools]# make
[root@node2 tools]# ./dsqgen –help
多執行緒生成資料,後台執行
nohup ./dsdgen -dir /opt/3t_data -scale 3000 -parallel 30 -child 1 -terminate n &
檢視後台程序
jobs –l
修改query_template下query1-99模板,在行尾加define _end = "";
#!/bin/bash
counter=1
while [ $counter -lt 100 ]
doecho $counter
echo "define _end = \"\";">>query$counter.tpl
counter=`expr $counter + 1`
done
生成查詢語句
./dsqgen -output_dir /opt/tpc_3t_queries/ -input /tpcds_3t/tpcdsversion1.3.1/query_templates/templates.lst -scale 3000 -dialect ansi -directory /tpcds_3t/tpcdsversion1.3.1/query_templates -rngseed 05092045000
[root@node2 tools]# su gpadmin
[gpadmin@node2 tools]$ psql
psql (8.2.15)
type "help" for help.
gpadmin=#
gpadmin=# create database tpcds_3t;
create database
gpadmin=# \l
list of databases
name | owner | encoding | access privileges
gpadmin | gpadmin | utf8 |
postgres | gpadmin | utf8 |
template0 | gpadmin | utf8 |
template1 | gpadmin | utf8 |
tpcds | gpadmin | utf8 |
tpch | gpadmin | utf8 |
(6 rows)
gpadmin=# \c tpcds
you are now connected to database "tpcds" as user "gpadmin".
tpcds=#
生成表tpcds=# \d
list of relations
schema | name | type | owner | storage
(16 rows)
拷貝yaml檔案到資料路徑
[root@node2 ds_data]# pwd
/opt/ds_data
[root@node2 ds_data]# ls –s
批量修改yaml檔案(資料庫名、埠號,資料路徑,資料檔名等)
[root@node2 ds_data]# sed -i 's/5432/5430/g' *.yaml
載入表[root@node2 ds_data]# gpload -f call_center.yaml
2016-05-06 16:14:39|info|gpload session started 2016-05-06 16:14:39
2016-05-06 16:14:39|info|setting schema 'public' for table 'call_center'
2016-05-06 16:14:39|info|started gpfdist -p 8081 -p 8082 -f "data1g/call_center.dat" -t 30
2016-05-06 16:14:46|info|running time: 6.75 seconds
2016-05-06 16:14:46|info|rows inserted = 6
2016-05-06 16:14:46|info|rows updated = 0
2016-05-06 16:14:46|info|data formatting errors = 0
2016-05-06 16:14:46|info|gpload succeeded
[root@node2 ds_data]#
批量載入指令碼
#!/bin/bash
for f in *.yaml
dogpload -f $f
done
載入後檢視表大小
select relname,
pg_size_pretty(pg_relation_size(relname))
from pg_stat_user_tables
where schemaname = 'public'
order by pg_relation_size(relname) desc;
生成99條sql的日誌檔案
#!/bin/bash
counter=1
while [ $counter -lt 100 ]
doecho $counter
touch query$counter.log
chown gpadmin query$counter.log
counter=`expr $counter + 1`
done
在每一條sql之前加入\timing
[root@node2 query_templates]#
sed -i -e '1i\\\timing' query*
執行sql批處理
#!/bin/bash
time
for f in query*
dolog=$".log"
echo $log
psql -d tpcds -f $f > $log;
done
[gpadmin@node2 query_templates]$ ./sql.sh
合併測試結果
[root@node2 query_templates]# cat query*.log > 1g_result.log
執行完成後清除快取
free –m
echo 3 > /proc/sys/vm/drop_caches
表載入,載入機傳送速率約120mb,接收速率約50mb(這樣至少要
8個小時,為什麼不切割加?)
對多執行緒進行測試
在junit下,很難對多執行緒的 進行測試,因此需要借助其他的方式,比如executor service框架.最近要對乙個監控類的輸出情況寫乙個測試,簡單的跑一下輸出格式是否跟預期一致.我這裡借助了threadpoolexecutor completionservice.即在結束前,需要從執行緒池中...
如何對測試物件進行定位
首先,謝謝的分享。花了2周時間,看了幾本關於這方面的書,基本走完了selenium python webdriver的第一遍,目前能夠搭建環境,做到對任何網頁的控制項定位以及進行自動化測試,並能夠實現將測試結果生成測試報告以及資料引數化等知識點。前面幾篇博文是親自動手反覆實現過。通過實踐練習,對we...
用MockMvc對介面進行測試
為什麼使用mockmvc?業務角度 在基於springboot開發介面的過程中,測試時必不可少的,起初我們開發人員常用的測試工具是 postman swagger 在我們公司一般使用的是swagger測試,通過構造param引數,請求頭傳參等,請求目標介面獲取返回的content,一般都是肉眼去檢視...