根據出現(xiàn)的困難狮杨,解決后總結思路
參數(shù)化
? 上次有了整體的測試框架之后,大家可能發(fā)現(xiàn)參數(shù)化并沒有運用得很到位版扩,如你每次想調用“SSH Command”控件的時候喉童,你都要用你記性好的腦袋去填寫難記住的ip地址、用戶名和密碼
這個時候呻袭,你就可以嘗試想想眨八,面向對象的思想,把這些東西抽離出來復用左电!
【“用戶定義的變量”這個控件就可以幫你實現(xiàn)】
那么之后就可以在后面復用【下圖為例】
按照這個思路你還可以將復雜的廉侧、需要復用多次的路徑或者指令,安排得明明白白篓足。
if控件
在這里順便講解一下段誊,為什么會用到這么多if條件的控件?
?? 在此還需要注意的是栈拖,我創(chuàng)建這個if條件控件的時候连舍,是默認勾選了一個選項“interpert Condition as Variable Expression?”,這個是想把你的條件化作變量表達式涩哟,顯然你不需要(因為表達式就必須讓你得出true or false了)
否則索赏,線程運行會出錯盼玄!
??? 如圖上,如此的設置参滴,是因為我可能在執(zhí)行完十條用例之后就想實現(xiàn)自動停止强岸,那么就得有一個判斷的依據,“Is_Execute”就是這個依據砾赔。下圖演示蝌箍。
多個執(zhí)行腳本放在用例
??? 還有當你遇到需要在csv用例體現(xiàn)執(zhí)行多個腳本程序,應該怎么辦暴心?比如我需要在一條用例里面既執(zhí)行check.sh去檢查文件名是否正確妓盲,也要執(zhí)行start.sh經過文件名檢查后的日志文件的內容是否進入數(shù)據庫,這個時候我應該怎么辦呢专普?
??? 有些同學就會說悯衬,你可以在csv用例里面多整一個字段存啊檀夹!當然筋粗,最開始你可以這樣設計,但是后面又需求改動的時候炸渡,怎么辦呢娜亿。。蚌堵。
??? 那么我這里采用的方式是把check.sh和start.sh寫在一起买决,使用分隔符,在調用的時候吼畏,使用代碼進行分開【大家有其他方法可以分享】
csv用例中:
圖中督赤,我是寫成了“check.sh&start.sh”,那么在腳本如何處理呢泻蚊?
此處我寫了java代碼進行分割躲舌,順便用腳本語言打印一下觀察是否分割成功。
分割之后藕夫,當然要學以致用噻孽糖!
這樣,按照這個思路毅贮,你甚至可以分割多個sql語句進行查詢办悟、分割多個預期結果進行比對等等......
【知識點,學的是這個思路】【大家有其他更好的方法均可分享】
這里可能還有一個問題滩褥,關于SSH Command控件
測試中病蛉,你怎么確定你的機器能夠正常連上,或者機器剛剛啟動,但SSH還未加載完?
那么在這里可以參考一位大神的做法:(歡迎大家分享更多好方法)
說明:通過一個循環(huán)搞定铺然。
當你遇到用例里面出現(xiàn)隨時變化的參數(shù)時俗孝,應該如何應對?
??? EX:我需要去判斷報警日志里面是否出現(xiàn)相應的內容魄健,但是內容里面包含當天的時間赋铝,這種情況難道你還在每一條用例上去修改嗎?
如圖
測試中我需要匹配這段樣例沽瘦,但是時間卻會變化革骨,此時在用例里面可以先用符號代替。
可以在腳本中獲取系統(tǒng)時間進行替換
運行的結果:
看完以上的問題和參考方法之后析恋,倒回來給你們解釋一下我設計的csv用例上面的字段含義良哲,你們就會大概明白我為什么會這樣設計。
【大家有更好的建議助隧,別忘了提供窩筑凫!】
需要操作多個sql語句的時候,應該怎么辦并村?
其實很簡單巍实,只需要在控件里面URL輸入?? ?allowMultiQueries=true??? 即可,如圖所示
之后就可以在輸入sql的地方操作多個sql語句:(注意輸入哩牍;蔫浆,并且注意是否自動提交)
下次我會接著講解數(shù)據比對的問題窩!