vscode的python開發環境搭建,環境變數支援終端命令列(執行當前
阿新 • • 發佈:2021-08-11
ddt安裝命令通過pip install ddt 進行安裝
ddt.ddt裝飾類。在指令碼嘴上方進行匯入ddt框架後,可以使用裝飾類ddt,來裝飾
自定義的測試用例,被ddt裝飾的類可以直接使用ddt測試框架
ddt.data :用來拆分data的資料。通常data中包含的每一個值都會作為一個單獨的
引數傳給測試方法,如果這些值是用元組或者列表傳進來的,可以用unpack方法將其
自動分解成多個引數
ddt_file_data:裝飾測試方法,引數是檔名,檔案可以是json或者yaml型別
注意:檔案是以 .yml 或者是 .yaml 結尾。ddt都會作為yaml的型別進行處理。
其他檔案都會作為json檔案處理
如果檔案是列表:列表的值會作為測試用例引數,同時,會作為測試用例方法字尾顯示
如果檔案是字典:字典的key會作為測試用例方法的字尾顯示,字典的value會作為測試用例引數
'''
from ddt import ddt,data,unpack
import unittest
@ddt
class case(unittest.TestCase):
def setUp(self):
print('---用例開始----')
def tearDown(self):
print("---用例結束----")
@data("武漢","荊門","石牌")
#使用字串的形式單個引數進行傳入,
# data可以重複進行呼叫這個函式所以列印了三次
def test01(self,values1):
print(values1)
if __name__ == '__main__':
unittest.main()
'''ddt 多個引數進行傳參 元組的形式進行傳參,使用unpack進行引數
分解'''
@ddt
class case(unittest.TestCase):
def setUp(self):
print('---用例開始----')
def tearDown(self):
print("---用例結束----")
@data(("湖北","武漢"),("湖南","長沙"))
@unpack
#使用字串的形式單個引數進行傳入,
# data可以重複進行呼叫這個函式所以列印了三次
def test01(self,values1,values2):
print(values1,values2)
if __name__ == '__main__':
unittest.main()
'''
多個引數進行傳參,列表的形式進行傳參
'''
@ddt
class case(unittest.TestCase):
def setUp(self):
print('---用例開始----')
def tearDown(self):
print("---用例結束----")
@data(["湖北","武漢"],["湖南","長沙"],)
@unpack
#使用字串的形式單個引數進行傳入,
# data可以重複進行呼叫這個函式所以列印了三次
def test01(self,values1,values2,values3):
print(values1,values2,values3)
# if __name__ == '__main__':
unittest.main()
'''
多個引數進行傳參,字典的格式進行傳參
'''
#
@ddt
class case(unittest.TestCase):
def setUp(self):
print('---用例開始----')
def tearDown(self):
print("---用例結束----")
@data({"values1":"湖北","values2":"武漢"},{"values1":"湖南","values2":"長沙"},)
#使用字典進行傳參的時候必須前面帶上引數名稱進行傳參
@unpack
#使用字串的形式單個引數進行傳入,
# data可以重複進行呼叫這個函式所以列印了三次
def test01(self,values1,values2):
print(values1,values2)
if __name__ == '__main__':
unittest.main()
import unittest
from api_demo.get_values import get_value
from ddt import ddt,data,unpack
import requests
import json
url = "http://cms.duoceshi.cn/cms/manage/loginJump.do"
header ={"Content-Type":"application/x-www-form-urlencoded"}
data1 = {
"userAccount":"cary","loginPwd":"123456"}
res = requests.request('post',url=url,headers=header,data=data1)
print(res.text)
print(get_values("cms_api.xlsx", "cmsapi", "cms_login"))
'''
方式1:
使用json的loads函式
方式2:
使用eval函式
方式3:
使用literal_eval函式
例:'''
@ddt
class Cms_Api(unittest.TestCase):
'''
使用xlrd進行傳參時,檢查文件格式是否正確是否清除前後空格符
為什麼使用unitest要繼承unitestTestcase基類
DDT資料驅動(data driver test(資料驅動測試))
斷言:===將實際記過與預期結果進行對比成功pass
失敗就是bug