測試腳本
A. 測試中如何使用自動化腳本
從畢業到現在,經歷了軟體開發,
軟體測試,
1)QTP工具。QTP是一個快速測試專業工具。它的優點是可以快速建立企業自動化框架,但不是一個全能的工具,因為利用QTP並不能幫助用戶找出更多的 BUG,只能提高執行測試用例的效率。 QTP的價格也較貴。 QTP主要應用於較穩定的測試項目的回歸測試,UI的變化不明顯,功能較穩定的項目。它可以節省回歸測試的成本,但相對手工測試來說,QTP對測試人員的要求較高,比如要掌握VB腳本,掌握函數調用等技術;另外,建立QTP框架前期需要投入較大的人力寫測試用例,加上調試的時間,是一筆不小的開銷,所以企業在選用QTP測試工具時一定要三思而後行。
2)Loadrunner是一個企業級性能測試工具,應用十分廣泛。對於WEB應用,Loadrunner的優勢十分明顯。但與QTP一樣,lr的 License十分昂貴,所以很多企業都使用破解版。並且真正掌握LR精髓的人員並不多,很多人都會使用這個工具,但能用這個工具找出系統瓶頸的人並不多,所以,會使用Loadrunner和會性能測試是兩碼事。懂腳本語言的性能測試人員當然最好。
3)python和Tcl/tk腳本語言。在我之前的經驗中,我用到過PYTHON和TCL。他們都是腳本語言,不需要編譯。兩種語言的特點如下:Python開發java方面的http介面比較方便;tcl/tk開發C++方面的介面更容易一些。PYTHON寫的程序可讀性強,TCL寫的程序的可讀性不好。
4)在需要產生一些大批量數據時,如一個表需要插入100萬條數據,然後這100萬條數據屬於100個不同的類別,如果是手工輸入的話,估計10個人一個月都輸不完,但如果利用腳本,如PB,VB或者Tcl/tk,可以通過產生批量sql腳本的方式,來產生SQL腳本,這樣不到半小時就可以搞定全部的數據。看來腳本的威力不小!
5)另外,就是Linuxshell腳本了,我們通常說「事半功倍」,shell腳本的確可以幫助你實現這個目的。我們平時在LINUX部署一個應用會用到很多的命令如 Checkout,ps,vi,kill等等,如果能把這個操作流程寫成一個SHELL腳本讓機器自動執行,那該是省了多少事?另外,作為 UNIX/LINUX管理員,平時可以要監控較多的PC終端,他完全可以在UNIX/LINUX上定製各種任務(如備份,刪除臨時文件,檢查磁碟空間等等),所以,掌握Shell腳本(如Sed,awk,grep等)對一個測試人員來講是十分必要的!
6)另外一個就SQL腳本了,要能寫存儲過程(SP)和觸發器(Trigger),還有游標(Cursor)的使用,掌握這些的話對於測試資料庫方面的用例是相當有幫助的。SQL腳本對系統性能和功能都起著十分重要的作用。
作為一名有6年測試經驗的工程師,我堅定地認為腳本測試技術是以後的發展方向,包括白盒測試,也是將來的一個發展方向,對於測試人員來講,核心競爭力是能完整的測試開發人員的程序,盡可能找出更多的BUG。黑盒測試只能從系統的角度去完成功能測試,但作為軟體本身,應該作更深層次的測試。
B. 如何使用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])
C. 測試新人如何寫好軟體測試腳本
1.會代碼的話就直接寫
2.不會代碼的就看要求是需要寫什麼類型的腳本
3.新手的話我覺得好不好不重要,能夠達到目的的腳本就可以了。比如我用python可能就幾行代碼,但是用到bat就可能會復雜一點,但有什麼關系。達到目的就好了呀
ps.現在這么牛批了么,一上來就讓寫。難道都沒有人帶帶的嘛
D. 請問什麼是測試腳本
http://www.ianywhere.com/developer/proct_manuals/sqlanywhere/0902/zh/html/dbmlzh9/00000226.htm
你可以到這個地方去查看一下.
E. 測試用例、測試數據、測試腳本之間的關系
支持測試用例與業務組件之間的關系管理,通過測試業務組件和數據「搭建」測試用例, ...
測試出錯的情況下執行錯誤處理腳本,保證出錯後的測試用例腳本能夠繼續被執行。 ...
F. 測試腳本的工作
1.腳本語言的特點,通過下面tcl/tk與C++和java的比較就可見一斑。
2.C++,Tcl/Tk 和 Java 的性能比較高
3.C++
4.Tcl/Tk
5.Java
6.運行程序速度
7.快
8.與 C++ 可比
9.慢
10.調試難易程度
11.復雜 每次修改完代碼需重新編譯
12.簡單 修改完代碼可直接運行
13.比較簡單 修改完代碼需重新編譯成 ByteCode, 而且編譯速度很慢
14.程序代碼復雜程度
15.復雜
16.簡明
17.比較簡單
18.系統資源佔用情況
9.1200MB HD 32MB Memory
20.3MB HD 4MB Memory
21.20MB HD 4MB Memory
22.代碼可維護性
有一定難度,需要有面向對象程序設計的概念 腳本解釋器是腳本語言工作的核心,所有具體指令或是函數的執行都由它來完成,擴展項實現了與其它語言的介面,使腳本語言運行C/C++,java等函數成為可能;同時在用戶具體應用中可以定義命令和函數,應用更加靈活;作為解釋器它也提供了基本的內建指令或是函數,不同廠商、版本的解釋器提供的內建命令(函數)可能不同。
G. 我做的是軟體測試,我該學哪種腳本語言
那要看你打算像那個方面發展了。如果以做網站自動化測試的話建議你學習下LoadRunner測自動化測試腳本的編寫方式,LoadRunner中的腳本語言中可以使用C 語言中比較標準的函數和數據類型,語法和C 語言相同。
當然,他也附加有自己的函數語言。
如果是發展成純java項目測試的話建議學習下Rational Functional Tester的自動化腳本語言,是以java或。Net為主的語言。
H. 什麼是測試腳本!它和測試用例有什麼關系
測試腳本是一段代碼不假。但是這段代碼可能是為了執行某一條,或很多條測試用例而寫的。
也有可能 ,本身就是一條用例。
用例本身並不局限在基於功能。
腳本和用例沒有並列的可比性。
腳本可能是用例,也可能是執行用例用的功能。用例也可能是腳本。明白了么
I. 測試腳本的定義
測試腳本語言(test scripting language)是腳本語言的一種,准確地講是腳本語言在測試領域地一個分支,是自動化軟體測試設計的基礎。要理解測試腳本語言就不能不對腳本語言進行一些了解。
腳本語言(scripting language) 就是在執行時以解釋(interpreting) 為主的編程語言,比如常見的perl,python,php,tcl,guile,ruby以及UNIX系統的各種shell都是腳本語言,它的執行效率比不上編譯後再執行的程序,如以C,C++, Java,Pascal等語言編寫的程序。
腳本語言應用到測試領域就可以稱之為測試腳本語言,以上提到的腳本語言都可以作為測試腳本語言來使用,特別是tcl語言更是被業界稱為事實上的測試腳本語言標准。隨著軟體測試的發展,各種測試工具也相繼推出,為了保護知識產權或者說是保護商業秘密,這些商業化的軟體大多使用自己的測試腳本語言,比如MI的TSL語言等。
J. 測試腳本的分類
線性腳本:是錄制手工執行的測試實例得到的腳本。這種腳本包括所有的擊鍵、功能鍵、箭頭、控制測試軟體的控制鍵及輸入數據的數字鍵。
結構化腳本:類似於結構化程序設計,結構化腳本中含有控制腳本設計的指令。這些指令或為控制結構或為調用結構。
共享腳本:腳本可能被多個測試事例使用。
數據驅動腳本技術:將測試輸入存儲在獨立的文件中,而不是存儲在腳本中。
關鍵字驅動腳本:較復雜的數據驅動技術的邏輯擴展。