這篇文件接著上篇的查詢粉私,因為自動測試要輸入一些數(shù)據(jù)顽腾,再請求后驗證返回數(shù)據(jù)的正確性。
如何做好測試數(shù)據(jù)的初始化呢诺核?
準(zhǔn)備工作抄肖,可以先做一步清數(shù)久信,避免干擾。
第一步:先向測試數(shù)據(jù)庫中插入測試數(shù)據(jù)
第二步; 調(diào)用被測試系統(tǒng)發(fā)送請求 (參相應(yīng)的參數(shù)漓摩。也就是剛剛出入數(shù)據(jù)庫的值)
第三部:通過斷言? 裙士,驗證返回的結(jié)果。
以上:總結(jié)幌甘,這個可以理解為偏向接口的測試文章潮售,以及實現(xiàn)自動的思路。
實現(xiàn)步驟:
思考數(shù)據(jù)的隨機(jī)性:也就是jmeter 的參數(shù)」纾現(xiàn)在既然要隨機(jī)了酥诽,就應(yīng)該想到使用隨機(jī)函數(shù)。這個在各語言里面都有的皱埠,在jmeter 里面也有肮帐。
如下,選項——》調(diào)查函數(shù)助手边器,現(xiàn)在我用的是jmeter5.0 ,用如下的數(shù)據(jù)函數(shù):
隨機(jī)生成數(shù)字:${__Random(1,20,u_var1)? ?--最小值1? 最大值20? 把生成的值保存到u_var1
隨機(jī)生成字符串:${__RandomString(5,'abcdsfjfjfllsakda;',)}? ?--生成長度5的字符串训枢。
${__RandomString(2,中國館管理論,)? ? ?--生成中文
隨機(jī)生成日期:${__RandomDate(,,2099-12-31,,)? ? --第一個參數(shù)是日期格式 ,默認(rèn)是yyyy-MM-DD
第二個參數(shù)是起始實際忘巧,默認(rèn)是now? ?,第三個參數(shù)是結(jié)束實際恒界,2099-12-31?
生成現(xiàn)在的時間戳:?${__time(,)}? ? --?1553339608722? 跟系統(tǒng)的變量START.MS=1553334247549 是一樣的。有時候網(wǎng)址會判斷30分鐘內(nèi)客戶沒有操作砚嘴,就強(qiáng)制退出十酣。請求的時候就會用上這個參數(shù)。另外還是如下的系統(tǒng)變量际长。
START.HMS=174407? ? ?--多少小時
START.YMD=20190323? ? ?--年月日
JMeterThread.last_sample_ok=true? ? ? --線程最后的采樣是否正確耸采。
IP:?${__machineIP()}
主機(jī)名:${__machineName()}?
線程號:${__threadNum}
線程組的名字:${__threadGroupName}
以上的函數(shù)先總結(jié)這些,參數(shù)化一般用隨機(jī)函數(shù)工育。
另外還有一種方法的參數(shù)化方法?
就是使用 配置元件——》隨機(jī)變量? 產(chǎn)生隨機(jī)數(shù)? ?在輸出格式出可以連接虾宇,這樣就可以方便的產(chǎn)生變量,供使用如绸。
使用隨機(jī)變量產(chǎn)生的變量最為值嘱朽,插入數(shù)據(jù)庫≌樱可以使用循環(huán)控制器燥翅,插入批量的數(shù)據(jù)。
最后結(jié)合ForEach 控制器蜕提,做批量的請求查詢驗證森书。
總結(jié),以上的操作,完美的將jmeter的JDBC請求凛膏,和接口請求杨名,數(shù)據(jù)參數(shù)化和好的關(guān)聯(lián)到以前,如果是做性能測試的化猖毫,就少使用斷言台谍,如做接口測試的化,就可以加上斷言吁断。