測試腳本需要
Ⅰ 軟體測試常用shell腳本
一 循環
#!/bin/bash
mv perf.log perf.log_bak
while (( "1"=="1" ))
do
java -cp 'conf/:apps/*:lib/*' org.bcos.channel.test.db.PerfomanceOk trans 50000 100 >碰畢譽> perf.log
sleep 550
done
二 預期輸入
#!/bin/bash
set -x
set -e
ethconsole ${node_path}/nodedata-1/data/geth.ipc <<EOF
web3.admin.getPeers(console.log);web3.eth.getBlock(2,console.log)
EOF
/usr/bin/expect << EOF
set timeout 500
spawn ./install_node.sh install
expect "gavin:"
send "Aa12345!\r"
expect "Installing eth environment success"
EOF
三 函數調用
running(){
sleep 1
old_count=`grep +++++ ${host_path}/build/nodedir$1/log/info*|wc -l`
sleep 7
new_count=`grep +++++ ${host_path}/build/nodedir$1/log/info*|wc -l`
if((${old_count}<${new_count}))
then
echo "****** success, node$1 is running normally ******"
#return true
else
echo "****** fail,node$1 is not running ******"
#return false
fi
}
running 3
四 curl命令借口測試
curl -X POST --data '{"jsonrpc":"2.0","method":"admin_nodeInfo","params":[],"id":83}' 127.0.0.1:8545
curl -s -l -H "Content-type: application/json" -X POST -d '{"seqNo":"1067","orgNo":"123","chainId":"100120043","chainName":"he43","chainContent":"test43","extId":"ex43"}' http://10.107.105.143:9000/api/chain/new
五 根據日誌統計
grep '2018-09-06 19:1' appmonitor.log|grep New |awk -F 數散'"' '{a+=$8;b+=1} END {print a,b,a/b}' 統計19:10-19:19分,所有上鏈的次數和平均耗笑段時
Ⅱ 進行軟體測試需要的腳本是什麼啊
首先我覺得lz你沒說清楚是什麼腳本,
軟體測試腳本包括很多,單測腳本,介面參數腳本,自動化測試腳本,性能測試腳本。
其實也就是代碼,測試代碼而已。
Ⅲ 什麼是測試腳本!它和測試用例有什麼關系
測試腳本是一段代碼不假。但是這段代碼可能是為了執行某一條,或很多條測試用例而寫的。
也有可能 ,本身就是一條用例。
用例本身並不局限在基於功能。
腳本和用例沒有並列的可比性。
腳本可能是用例,也可能是執行用例用的功能。用例也可能是腳本。明白了么
Ⅳ 自動化測試實例二:腳本開發(上)
完成測試用例後就可以開發測試腳本,一般包括自動化測試框架的開發和功能腳本的開發。在本節中不介紹如何開發自動化測試框架,有興趣的讀者可以參考《 QTP 自動化測試與框架模型設計 》一書中第 19 章和第 20 章的自動化測試框架的內容。本章介紹該實例中需要調用到的函數。
(1)公用函數封裝。
在本實例中需要封裝的函數主要包括: 讀取測試用例、輸入每個測試用例的測試結果。
通過獲取單元格中數據的行數,可以確定測試用例文檔中有多少條測試用例, 代碼如下:
讀取單元格中的數據,即獲得測試用例值, 代碼如下:
在該實例中還需要記錄每個測試用例執行的結果, 封裝的代碼如下:
由於在本實例中需要連接資料庫,檢查資料庫中的數據是否正確,所以將連接資料庫的代碼進行封裝, 代碼如下:
(2)單一模式腳本開發。
自動化測試腳本開發完成後,開始錄制腳本,這個階段主要是將自動化測試的需求轉換為一個簡單的腳本。
1)錄制登錄過程的腳本如下:
2)錄制訂票流程的腳本如下:
3)錄制航班信息的腳本如下:
4)錄制查詢訂票信息的腳本如下:
(3)腳本增強。
錄制好的單一模式腳本的功能很弱,只完成了一個簡單的功能,不具備可擴展性,無法兼容不同的測試數據,所以需要對上面的腳本進行增強。在錄制單一模式的腳本時,其實有一個功能是通用的,就是登錄功能,每個操作的功能都需要先登錄系統,所以可將一個正確登錄的腳本封裝成一個過程,這樣可以節約腳本量,也便於維護腳本。在封裝登錄過程時,需要使用到描述性編程, 封裝的代碼如下:
接著對登錄的腳本進行增強操作,增強的原因是腳本需要能正確處理當輸入用戶名或密碼出錯的情況。 主要需要處理的情況有: 輸入的用戶名為空、輸入的用戶名少於 4 個字元、輸入的密碼為空、輸入的密碼少於 4 個字元。 登錄功能增強後的腳本如下:
訂票流程腳本的增強主要需要處理訂票日期未輸入和輸入錯誤的情況, 訂票流程功能增強後的腳本如下:
航班信息查詢腳本的增強主要是需要檢查當選擇出發城市和到達城市後,顯示出來的航班信息是否正確,腳本增強時需要獲取所有航班信息。 增強後的腳本如下:
查詢訂票信息腳本增強主要是需要檢查該航班號是否存在,如果航班號不存在,會彈出相應的對應信息;如果查詢的訂單號存在,就會顯示出該訂單的相關信息。 增強後的腳本如下:
Ⅳ 如何使用python編寫測試腳本
1)doctest
使用doctest是一種類似於命令行嘗試的方式,用法很簡單,如下
復制代碼代碼如下:
def f(n):
"""
>>> f(1)
1
>>> f(2)
2
"""
print(n)
if __name__ == '__main__':
import doctest
doctest.testmod()
應該來說是足夠簡單了,另外還有一種方式doctest.testfile(filename),就是把命令行的方式放在文件里進行測試。
2)unittest
unittest歷史悠久,最早可以追溯到上世紀七八十年代了,C++,Java里也都有類似的實現,Python里的實現很簡單。
unittest在python里主要的實現方式是TestCase,TestSuite。用法還是例子起步。
復制代碼代碼如下:
from widget import Widget
import unittest
# 執行測試的類
class WidgetTestCase(unittest.TestCase):
def setUp(self):
self.widget = Widget()
def tearDown(self):
self.widget.dispose()
self.widget = None
def testSize(self):
self.assertEqual(self.widget.getSize(), (40, 40))
def testResize(self):
self.widget.resize(100, 100)
self.assertEqual(self.widget.getSize(), (100, 100))
# 測試
if __name__ == "__main__":
# 構造測試集
suite = unittest.TestSuite()
suite.addTest(WidgetTestCase("testSize"))
suite.addTest(WidgetTestCase("testResize"))
# 執行測試
runner = unittest.TextTestRunner()
runner.run(suite)
簡單的說,1>構造TestCase(測試用例),其中的setup和teardown負責預處理和善後工作。2>構造測試集,添加用例3>執行測試需要說明的是測試方法,在Python中有N多測試函數,主要的有:
TestCase.assert_(expr[, msg])
TestCase.failUnless(expr[, msg])
TestCase.assertTrue(expr[, msg])
TestCase.assertEqual(first, second[, msg])
TestCase.failUnlessEqual(first, second[, msg])
TestCase.assertNotEqual(first, second[, msg])
TestCase.failIfEqual(first, second[, msg])
TestCase.assertAlmostEqual(first, second[, places[, msg]])
TestCase.failUnlessAlmostEqual(first, second[, places[, msg]])
TestCase.assertNotAlmostEqual(first, second[, places[, msg]])
TestCase.failIfAlmostEqual(first, second[, places[, msg]])
TestCase.assertRaises(exception, callable, ...)
TestCase.failUnlessRaises(exception, callable, ...)
TestCase.failIf(expr[, msg])
TestCase.assertFalse(expr[, msg])
TestCase.fail([msg])