日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

unittest+discover批量处理自动化脚本

發(fā)布時(shí)間:2025/3/20 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 unittest+discover批量处理自动化脚本 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

自動(dòng)化的目的就是批量執(zhí)行腳本代替手動(dòng)測(cè)試的繁重勞動(dòng),單個(gè)腳本的執(zhí)行較為容易,但是事實(shí)上自動(dòng)化腳本時(shí)很多的,因此需要批量執(zhí)行,這個(gè)時(shí)候需要用到unittest模塊里的discover方法進(jìn)行多個(gè)自動(dòng)化腳本的加載了。 首先建立一個(gè)工程。


在Mytest工程下創(chuàng)建一個(gè)case的package,并依次在case下創(chuàng)建baidu、blog和report的package


在baidu和blog兩個(gè)包(package)下建立測(cè)試用例,命名為test_01.py到test_04.py,4個(gè)腳本中唯一不同的是在腳本中序號(hào)依次遞增,以test_01.py為例

#test01.py #coding:utf-8import unittest import timeclass Test1(unittest.TestCase):@classmethod#def setUp(self):def setUp(cls):print "startup"@classmethod#def tearDown(self):def tearDown(cls):time.sleep(1)print "endup"def test01(self):print "執(zhí)行測(cè)試用例01"def test03(self):print "執(zhí)行測(cè)試用例03"def test02(self):print "執(zhí)行測(cè)試用例02"if __name__ == '__main__':unittest.main()

這里實(shí)用類(lèi)方法初始化數(shù)據(jù),避免了每次在調(diào)用測(cè)試用例時(shí)頻繁的初始化環(huán)境和環(huán)境恢復(fù),使用類(lèi)級(jí)別的方法初始化數(shù)據(jù),使得各個(gè)測(cè)試方法共享這些初始化數(shù)據(jù)。在test_02.py中的類(lèi)為T(mén)est2,相應(yīng)的用例為test04,test06,test05,在模塊blog中相應(yīng)的為T(mén)est3,相應(yīng)的用例為test07,test09,test08.依次類(lèi)推。

#test03.py #coding:utf-8import unittest import timeclass Test3(unittest.TestCase):def setUp(self):print "startup"def tearDown(self):time.sleep(1)print "endup"def test07(self):print "執(zhí)行測(cè)試用例07"def test09(self):print "執(zhí)行測(cè)試用例08"def test08(self):print "執(zhí)行測(cè)試用例08"if __name__ == '__main__':unittest.main()

這樣兩個(gè)模塊中共有12個(gè)測(cè)試用例

在模塊report下建立一個(gè)執(zhí)行所有腳本的模塊run_all_case.py

#coding:utf-8import unittest import os#測(cè)試用例的路徑 case_path = os.path.join(os.getcwd(),"case") #報(bào)告存放路徑 report_path = os.path.join(os.getcwd(),"report") def call_case():discover = unittest.defaultTestLoader.discover(case_path,pattern="test*.py",top_level_dir=None)print discoverreturn discoverif __name__ == '__main__':runner = unittest.TextTestRunner()runner.run(call_case())

發(fā)現(xiàn)輸出結(jié)果為:


ImportError: Start directory is not importable

說(shuō)這個(gè)目錄不能導(dǎo)入,其實(shí)發(fā)現(xiàn),要導(dǎo)入的是目錄\case而不是\case\case,所以存在問(wèn)題,這里先查看一下目錄

case_path = os.path.join(os.getcwd(),"case") print case_path

其實(shí)我們想獲取的是目錄:D:\\Python2.6.6\\Project\\imooc\\case\,因此這里使用方法如下:

#coding:utf-8import unittest import os#測(cè)試用例的路徑 case_path = os.path.dirname(__file__) print case_path #報(bào)告存放路徑 report_path = os.path.join(os.getcwd(),"report") def call_case():discover = unittest.defaultTestLoader.discover(case_path,pattern="test*.py",top_level_dir=None)print discoverreturn discoverif __name__ == '__main__':runner = unittest.TextTestRunner()runner.run(call_case())

輸出結(jié)果:


總結(jié)

以上是生活随笔為你收集整理的unittest+discover批量处理自动化脚本的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。