python之yaml模塊和ddt模塊


aml文件是專門用來寫配置文件的語言,非常簡潔和強大,遠比json格式方便。

在PC中新建一個yml/yaml為為縮略名的文件,輸入信息見下圖

新建一個py文件處理yml文件,直接處理成字典格式

縮進為二維數組:

import yaml
f = open('mpp.yml')
print(yaml.load(f))

yml文件信息和運行結果如下圖:

 

 

ddt相當於參數化一個東西

只傳入一個參數:

 

 傳入多個參數:

 

 使用ddt+yml+unittest實現自動化接口測試,代碼如下:

import ddt
import unittest,requests
from BeautifulReport import BeautifulReport

@ddt.ddt
class MyCase(unittest.TestCase):
@ddt.file_data('login.yml')
@ddt.unpack
def test_run(self,**kwargs):#不確定有多少參數,用**kwargs獲取用例的所有信息
method = kwargs.get('method')
url = kwargs.get('url')
data = kwargs.get('data')
header = kwargs.get('header',{}) #從用例里獲取header,如果沒有這個字段返回空
is_json = kwargs.get('is_json',0) #從用例里獲取json,如果沒有這個字段返回空
cookie = kwargs.get('cookie',{}) #同上
check = kwargs.get('check')
if method == 'post':
if is_json:
r = requests.post(url, json=data, headers=header,
cookies=cookie)
else:
r = requests.post(url,data=data,headers=header,
cookies=cookie)
else:
r = requests.get(url,params=dataa,headers=header,
cookies=cookie)#params是直接把傳參拼接到url后
# self.assertEquals(check.get('error_code'),r.json().get('error_code'))
#判斷check中的預期結果和響應參的error_code是否一樣

for c in check:#實際check中不止一個error_code,還有其他多個響應參
self.assertIn(c,r.text)

if __name__ == '__main__':
# unittest.main() #自動運行全部用例
suite = unittest.TestSuite()
suite.addTests(unittest.makeSuite(MyCase))
result = BeautifulReport(suite)
result.report(filename='mpp的測試報告0318', description='描述B', log_path='')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM